summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2015-06-09 16:02:24 -0500
committerWaldemar Brodkorb <wbx@openadk.org>2015-06-10 08:19:39 -0500
commit260703a97087db63a9fbaf72e4b6c5a0d337559f (patch)
treeaab3af2b62daadf2497f05810c9c1122c584169d
parente313b47683325dc679e99320a7bc8d7a76b61668 (diff)
add simulator target for h8/300, reorg no-MMU
Some no-MMU targets need uclinux in its triple, some not. Introduce a new symbol for noMMU to select correct software and configuration instead of using UCLINUX symbol.
-rw-r--r--mk/vars.mk11
-rw-r--r--package/busybox/Makefile2
-rw-r--r--package/libgcc/Makefile2
-rw-r--r--target/config/Config.in2
-rw-r--r--target/config/Config.in.binfmt9
-rw-r--r--target/config/Config.in.cpu60
-rw-r--r--target/config/Config.in.hardware5
-rw-r--r--target/config/Config.in.kernel1
-rw-r--r--target/h8300/kernel/sim-h8300h4
-rw-r--r--target/h8300/systems/sim-h8300h8
-rw-r--r--toolchain/gcc/Makefile2
11 files changed, 99 insertions, 7 deletions
diff --git a/mk/vars.mk b/mk/vars.mk
index 7c38b90d9..68953e14d 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -175,6 +175,17 @@ TARGET_CXXFLAGS+= -msep-data
endif
endif
+ifeq ($(ADK_TARGET_ARCH_H8300),y)
+ifeq ($(ADK_TARGET_BINFMT_FLAT),y)
+TARGET_CFLAGS+= -Wl,-elf2flt
+TARGET_CXXFLAGS+= -Wl,-elf2flt
+endif
+ifeq ($(ADK_TARGET_BINFMT_FLAT_SEP_DATA),y)
+TARGET_CFLAGS+= -msep-data
+TARGET_CXXFLAGS+= -msep-data
+endif
+endif
+
ifeq ($(ADK_TARGET_ARCH_M68K),y)
ifeq ($(ADK_TARGET_BINFMT_FLAT),y)
TARGET_LDFLAGS+= -elf2flt
diff --git a/package/busybox/Makefile b/package/busybox/Makefile
index c293e6d29..25dae3d21 100644
--- a/package/busybox/Makefile
+++ b/package/busybox/Makefile
@@ -41,7 +41,7 @@ do-configure:
symbol=$$(echo $$sym|sed -e "s#=y##"); \
printf "# CONFIG_$${symbol} is not set\n" >> ${WRKBUILD}/.config; \
done
-ifeq ($(ADK_TARGET_UCLINUX),y)
+ifneq ($(ADK_TARGET_WITH_MMU),y)
echo 'CONFIG_NOMMU=y' >> ${WRKBUILD}/.config
endif
$(SED) 's;@IDIR@;${WRKINST};' ${WRKBUILD}/.config
diff --git a/package/libgcc/Makefile b/package/libgcc/Makefile
index aa788b205..7be8defe1 100644
--- a/package/libgcc/Makefile
+++ b/package/libgcc/Makefile
@@ -38,7 +38,7 @@ ifeq ($(ADK_TARGET_ARCH_SH),y)
${CP} ${STAGING_TARGET_DIR}/lib/!m4/libgcc*.so* ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH)
else
ifeq ($(ADK_TARGET_ARCH_AVR32),)
-ifeq ($(ADK_TARGET_UCLINUX),)
+ifeq ($(ADK_TARGET_BINFMT_FLAT),)
ifeq ($(ADK_TARGET_USE_STATIC_LIBS),)
${CP} ${STAGING_TARGET_DIR}/lib/libgcc*.so* ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH)
endif
diff --git a/target/config/Config.in b/target/config/Config.in
index 67cd9cf1e..9fcf00786 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -17,8 +17,6 @@ config ADK_TARGET_TOOLCHAIN
config ADK_TARGET_UCLINUX
bool
select ADK_TARGET_WITHOUT_CXX
- select ADK_PACKAGE_SASH
- select ADK_PACKAGE_SIMPLEINIT
config ADK_TARGET_SIM
bool
diff --git a/target/config/Config.in.binfmt b/target/config/Config.in.binfmt
index 283885265..fb9b203a0 100644
--- a/target/config/Config.in.binfmt
+++ b/target/config/Config.in.binfmt
@@ -3,7 +3,11 @@
choice
prompt "Binary Format"
-depends on ADK_TARGET_ARCH_ARM || ADK_TARGET_ARCH_M68K || ADK_TARGET_ARCH_BFIN || ADK_TARGET_ARCH_C6X
+depends on ADK_TARGET_ARCH_ARM \
+ || ADK_TARGET_ARCH_BFIN \
+ || ADK_TARGET_ARCH_C6X \
+ || ADK_TARGET_ARCH_H8300\
+ || ADK_TARGET_ARCH_M68K
config ADK_TARGET_BINFMT_ELF
bool "ELF"
@@ -11,7 +15,8 @@ config ADK_TARGET_BINFMT_ELF
config ADK_TARGET_BINFMT_FLAT
bool "FLAT"
- depends on (ADK_TARGET_ARCH_ARM || ADK_TARGET_ARCH_BFIN || ADK_TARGET_ARCH_M68K) && ADK_TARGET_UCLINUX
+ depends on (ADK_TARGET_ARCH_ARM || ADK_TARGET_ARCH_BFIN || ADK_TARGET_ARCH_M68K) && ADK_TARGET_UCLINUX \
+ || ADK_TARGET_ARCH_H8300
config ADK_TARGET_BINFMT_DSBT
bool "DSBT"
diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu
index 716bbba94..9ccdb8021 100644
--- a/target/config/Config.in.cpu
+++ b/target/config/Config.in.cpu
@@ -61,130 +61,162 @@ config ADK_CPU_AVR32
config ADK_CPU_BFIN
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF512
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF514
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF516
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF518
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF522
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF523
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF524
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF525
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF526
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF527
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF531
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF532
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF533
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF534
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF536
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF537
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF538
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF539
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF542
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF544
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF547
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF548
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF549
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF542M
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF544M
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF547M
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF548M
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF549M
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF561
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_BF592
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_C6X
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF
bool
@@ -193,111 +225,133 @@ config ADK_CPU_CF_51
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5206
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5206E
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5208
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5211A
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5213
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5216
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_52235
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5225
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_52259
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5235
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5249
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5250
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5271
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5272
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5275
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5282
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_53017
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5307
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5329
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5373
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5407
bool
select ADK_CPU_CF
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CF_5475
bool
@@ -308,10 +362,12 @@ config ADK_CPU_CF_5475
config ADK_CPU_CORTEX_M3
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CORTEX_M4
bool
select ADK_TARGET_WITH_LT
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_CORTEX_A5
bool
@@ -384,6 +440,7 @@ config ADK_CPU_GEODE
config ADK_CPU_H8300
bool
+ select ADK_TARGET_WITHOUT_MMU
select ADK_TARGET_WITHOUT_THREADS
select ADK_TARGET_WITHOUT_CXX
@@ -508,12 +565,15 @@ config ADK_CPU_PPC64
config ADK_CPU_SH2
bool
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_SH2A
bool
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_SH3
bool
+ select ADK_TARGET_WITHOUT_MMU
config ADK_CPU_SH4
bool
diff --git a/target/config/Config.in.hardware b/target/config/Config.in.hardware
index 0016fcf0b..fb59a0d0e 100644
--- a/target/config/Config.in.hardware
+++ b/target/config/Config.in.hardware
@@ -101,3 +101,8 @@ config ADK_TARGET_WITH_SMP
config ADK_TARGET_WITH_MMU
bool
select ADK_KERNEL_MMU
+
+config ADK_TARGET_WITHOUT_MMU
+ bool
+ select ADK_PACKAGE_SASH
+ select ADK_PACKAGE_SIMPLEINIT
diff --git a/target/config/Config.in.kernel b/target/config/Config.in.kernel
index 0e256deee..4d81617d1 100644
--- a/target/config/Config.in.kernel
+++ b/target/config/Config.in.kernel
@@ -79,3 +79,4 @@ config ADK_TARGET_KERNEL_MINICONFIG
default "xilinx-kintex7" if ADK_TARGET_SYSTEM_XILINX_KINTEX7
default "pcengines-alix" if ADK_TARGET_SYSTEM_PCENGINES_ALIX
default "sim-bfin" if ADK_TARGET_SYSTEM_SIM_BFIN
+ default "sim-h8300" if ADK_TARGET_SYSTEM_SIM_H8300
diff --git a/target/h8300/kernel/sim-h8300h b/target/h8300/kernel/sim-h8300h
new file mode 100644
index 000000000..fc28f02f8
--- /dev/null
+++ b/target/h8300/kernel/sim-h8300h
@@ -0,0 +1,4 @@
+CONFIG_H8300H_SIM=y
+CONFIG_H8300_BUILTIN_DTB="h8300h_sim"
+CONFIG_SERIAL_SH_SCI=y
+CONFIG_SERIAL_SH_SCI_CONSOLE=y
diff --git a/target/h8300/systems/sim-h8300h b/target/h8300/systems/sim-h8300h
new file mode 100644
index 000000000..2ff18a514
--- /dev/null
+++ b/target/h8300/systems/sim-h8300h
@@ -0,0 +1,8 @@
+config ADK_TARGET_SYSTEM_SIM_H8300H
+ bool "Simulator"
+ select ADK_CPU_H8300
+ select ADK_TARGET_TOOLCHAIN
+ select ADK_TARGET_PACKAGE_TXZ
+ help
+ H8/300 simulator.
+
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index a485a7c28..6fdd62767 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -64,7 +64,7 @@ else
GCC_CONFOPTS+= --disable-tls --disable-threads --disable-libatomic
endif
-ifeq ($(ADK_TARGET_UCLINUX)$(ADK_TARGET_USE_STATIC_LIBS),y)
+ifeq ($(ADK_TARGET_BINFMT_FLAT)$(ADK_TARGET_USE_STATIC_LIBS),y)
GCC_FINAL_CONFOPTS+= --disable-shared
else
# uClibc/glibc uses libgcc_s.so.1 for pthread_cancel with dlopen