Browse Source

add experimental support for xtensa de212 core

Waldemar Brodkorb 8 years ago
parent
commit
f4570955a7

+ 4 - 0
mk/kernel-ver.mk

@@ -11,7 +11,11 @@
 # KERNEL_VERSION:  final kernel version how we want to identify a specific kernel
 
 ifeq ($(ADK_TARGET_KERNEL_VERSION_GIT),y)
+ifneq ($(ADK_TARGET_KERNEL_HASH),)
 KERNEL_FILE_VER:=	$(ADK_TARGET_KERNEL_HASH)
+else
+KERNEL_FILE_VER:=	git
+endif
 KERNEL_RELEASE:=	1
 KERNEL_VERSION:=	$(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
 endif

+ 4 - 0
mk/linux.mk

@@ -4,7 +4,11 @@
 PKG_NAME:=	linux
 PKG_RELEASE:=	$(KERNEL_RELEASE)
 ifeq ($(ADK_TARGET_KERNEL_VERSION_GIT),y)
+ifneq ($(ADK_TARGET_KERNEL_HASH),)
 PKG_VERSION:=	$(ADK_TARGET_KERNEL_HASH)
+else
+PKG_VERSION:=	git
+endif
 PKG_SITES:=	$(ADK_TARGET_KERNEL_REPO)
 else
 PKG_VERSION:=	$(KERNEL_FILE_VER)

+ 1 - 0
target/config/Config.in.binutils

@@ -5,6 +5,7 @@ choice
 prompt "Binutils version"
 default ADK_TOOLCHAIN_BINUTILS_2_20_1 if ADK_TARGET_ARCH_AVR32
 default ADK_TOOLCHAIN_BINUTILS_2_23_ARC if ADK_TARGET_ARCH_ARC
+default ADK_TOOLCHAIN_BINUTILS_GIT if ADK_TARGET_WITHOUT_MMU && ADK_TARGET_ARCH_XTENSA
 default ADK_TOOLCHAIN_BINUTILS_2_25_1
 
 config ADK_TOOLCHAIN_BINUTILS_GIT

+ 1 - 0
target/config/Config.in.gcc

@@ -11,6 +11,7 @@ default ADK_TOOLCHAIN_GCC_4_8_ARC if ADK_TARGET_ARCH_ARC
 default ADK_TOOLCHAIN_GCC_4_9_OR1K_UCLIBC_NG if ADK_TARGET_ARCH_OR1K && ADK_TARGET_LIB_UCLIBC_NG
 default ADK_TOOLCHAIN_GCC_5_2_OR1K_MUSL if ADK_TARGET_ARCH_OR1K && ADK_TARGET_LIB_MUSL
 default ADK_TOOLCHAIN_GCC_5_2_OR1K_MUSL if ADK_TARGET_ARCH_OR1K && ADK_TARGET_LIB_NEWLIB
+default ADK_TOOLCHAIN_GCC_GIT if ADK_TARGET_WITHOUT_MMU && ADK_TARGET_ARCH_XTENSA
 default ADK_TOOLCHAIN_GCC_5_3_0
 
 config ADK_TOOLCHAIN_GCC_GIT

+ 1 - 0
target/config/Config.in.kernelversion

@@ -8,6 +8,7 @@ default ADK_TARGET_KERNEL_VERSION_4_3_3 if ADK_TARGET_ARCH_ARC
 default ADK_TARGET_KERNEL_VERSION_4_3_3 if ADK_TARGET_ARCH_SPARC
 default ADK_TARGET_KERNEL_VERSION_4_3_3 if ADK_TARGET_ARCH_BFIN
 default ADK_TARGET_KERNEL_VERSION_4_3_3 if ADK_TARGET_ARCH_H8300
+default ADK_TARGET_KERNEL_VERSION_GIT if ADK_TARGET_WITHOUT_MMU && ADK_TARGET_ARCH_XTENSA
 default ADK_TARGET_KERNEL_VERSION_4_1_15
 
 config ADK_TARGET_KERNEL_VERSION_GIT

+ 1 - 0
target/config/Config.in.target

@@ -7,6 +7,7 @@ config ADK_TARGET_CMDLINE
 	default "geodewdt.nowayout=1" if ADK_TARGET_MODEL_PCENGINES_ALIX1C
 	default "kinetis_platform=k70-som" if ADK_TARGET_SYSTEM_KINETIS_K70
 	default "metag_da.console_poll=1" if ADK_TARGET_SYSTEM_QEMU_METAG
+	default "earlycon=uart8250,mmio32,0x9d050020,115200n8 console=ttyS0,115200n8" if ADK_TARGET_XTENSA_DE212
 	default ""
 
 config ADK_PACKAGE_SUFFIX

+ 10 - 8
target/config/Config.in.xtensa

@@ -13,13 +13,6 @@ config ADK_TARGET_XTENSA_DC233C
 	select ADK_TARGET_WITH_NPTL
 	select ADK_TARGET_WITH_MMU
 
-config ADK_TARGET_XTENSA_DC233C_NOMMU
-	bool "dc233c-nommu"
-	select ADK_KERNEL_XTENSA_VARIANT_DC233C
-	select ADK_TARGET_LITTLE_ENDIAN
-	select ADK_TARGET_WITH_LT
-	select ADK_TARGET_WITHOUT_MMU
-
 config ADK_TARGET_XTENSA_DC232B
 	bool "dc232b"
 	select ADK_KERNEL_XTENSA_VARIANT_DC232B
@@ -27,10 +20,19 @@ config ADK_TARGET_XTENSA_DC232B
 	select ADK_TARGET_WITH_NPTL
 	select ADK_TARGET_WITH_MMU
 
+config ADK_TARGET_XTENSA_DE212
+	bool "de212"
+	select ADK_KERNEL_XTENSA_VARIANT_CUSTOM
+	select ADK_KERNEL_XTENSA_VARIANT_CUSTOM_NAME
+	select ADK_KERNEL_BUILTIN_DTB
+	select ADK_TARGET_LITTLE_ENDIAN
+	select ADK_TARGET_WITH_LT
+	select ADK_TARGET_WITHOUT_MMU
+
 endchoice
 
 config ADK_TARGET_XTENSA
 	string
 	default "dc233c" if ADK_TARGET_XTENSA_DC233C
-	default "dc233c" if ADK_TARGET_XTENSA_DC233C_NOMMU
 	default "dc232b" if ADK_TARGET_XTENSA_DC232B
+	default "de212" if ADK_TARGET_XTENSA_DE212

+ 3 - 0
target/linux/config/Config.in.serial

@@ -66,6 +66,7 @@ config ADK_KERNEL_SERIAL_BFIN
 config ADK_KERNEL_SERIAL_8250
 	bool "8250 serial driver"
 	select ADK_KERNEL_SERIAL_OF_PLATFORM if ADK_TARGET_SYSTEM_XILINX_KINTEX7 \
+						|| ADK_TARGET_SYSTEM_QEMU_XTENSA \
 						|| ADK_TARGET_SYSTEM_QEMU_OR1K \
 						|| ADK_TARGET_SYSTEM_OR1K_SIM
 	select ADK_KERNEL_SERIAL_8250_PNP if ADK_TARGET_SYSTEM_PCENGINES_APU
@@ -78,6 +79,7 @@ config ADK_KERNEL_SERIAL_8250
 		|| ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO \
 		|| ADK_TARGET_SYSTEM_QEMU_X86 \
 		|| ADK_TARGET_SYSTEM_QEMU_X86_64 \
+		|| ADK_TARGET_SYSTEM_QEMU_XTENSA \
 		|| ADK_TARGET_SYSTEM_OR1K_SIM \
 		|| ADK_TARGET_SYSTEM_IBM_X40 \
 		|| ADK_TARGET_SYSTEM_GENERIC_X86 \
@@ -92,6 +94,7 @@ config ADK_KERNEL_SERIAL_8250
 	default y if ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO
 	default y if ADK_TARGET_SYSTEM_QEMU_X86
 	default y if ADK_TARGET_SYSTEM_QEMU_X86_64
+	default y if ADK_TARGET_SYSTEM_QEMU_XTENSA
 	default y if ADK_TARGET_SYSTEM_OR1K_SIM
 	default y if ADK_TARGET_SYSTEM_IBM_X40
 	default y if ADK_TARGET_SYSTEM_GENERIC_X86

+ 11 - 0
target/linux/config/Config.in.xtensa

@@ -9,3 +9,14 @@ config ADK_KERNEL_XTENSA_VARIANT_DC232B
 
 config ADK_KERNEL_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
 	bool
+
+config ADK_KERNEL_XTENSA_VARIANT_CUSTOM
+	bool
+
+config ADK_KERNEL_XTENSA_VARIANT_CUSTOM_NAME
+	string
+	default "de212" if ADK_TARGET_XTENSA_DE212
+
+config ADK_KERNEL_BUILTIN_DTB
+	string
+	default "kc705_nommu" if ADK_TARGET_XTENSA_DE212

+ 6 - 3
target/xtensa/Makefile

@@ -7,14 +7,17 @@ include $(ADK_TOPDIR)/mk/image.mk
 
 KERNEL:=$(LINUX_DIR)/arch/xtensa/boot/uImage
 
-QEMU_ARGS:=-M lx60 -monitor null
+QEMU_ARGS:=-M ml605 -monitor null
 QEMU_ARGS+=${ADK_QEMU_ARGS}
-ifeq ($(ADK_KERNEL_XTENSA_VARIANT_DC233C),y)
+ifeq ($(ADK_TARGET_XTENSA_DC233C),y)
 QEMU_ARGS+=-cpu dc233c
 endif
-ifeq ($(ADK_KERNEL_XTENSA_VARIANT_DC232B),y)
+ifeq ($(ADK_TARGET_XTENSA_DC232B),y)
 QEMU_ARGS+=-cpu dc232b
 endif
+ifeq ($(ADK_TARGET_XTENSA_DE212),y)
+QEMU_ARGS+=-cpu de212
+endif
 
 # target helper text
 ifeq ($(ADK_TARGET_FS),archive)

+ 0 - 3
target/xtensa/kernel/qemu-xtensa

@@ -1,5 +1,2 @@
 CONFIG_XTENSA=y
 CONFIG_XTENSA_PLATFORM_XTFPGA=y
-CONFIG_SERIAL_CONSOLE=y
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y

BIN
target/xtensa/overlay/xtensa_de212.tar


+ 3 - 0
toolchain/uclibc-ng/Makefile

@@ -96,6 +96,9 @@ endif
 ifeq ($(ADK_TARGET_UCLINUX),y)
 	$(SED) 's/.*\(ARCH_USE_MMU\).*/# \1 is not set/' ${WRKBUILD}/.config
 endif
+ifeq ($(ADK_TARGET_WITHOUT_MMU),y)
+	$(SED) 's/.*\(ARCH_USE_MMU\).*/# \1 is not set/' ${WRKBUILD}/.config
+endif
 ifeq ($(ADK_TARGET_LIB_UCLIBC_NG_GIT),y)
 ifeq ($(ADK_TARGET_WITH_NPTL),y)
 	$(SED) 's/.*\(UCLIBC_HAS_THREADS_NATIVE\).*/\1=y/' ${WRKBUILD}/.config