Browse Source

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.
Waldemar Brodkorb 9 years ago
parent
commit
260703a970

+ 11 - 0
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

+ 1 - 1
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

+ 1 - 1
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

+ 0 - 2
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

+ 7 - 2
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"

+ 60 - 0
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

+ 5 - 0
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

+ 1 - 0
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

+ 4 - 0
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

+ 8 - 0
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.
+

+ 1 - 1
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