diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2019-10-09 17:13:05 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2019-10-09 17:13:31 +0200 |
commit | 8afcd1092f3dc822aa255685b98c815eb3642819 (patch) | |
tree | 410423cf73a0e254e024e9624859ba4b9eb80365 | |
parent | 23650e556bd8eb37a0094ab7973603a1499ac8de (diff) |
lm32: try to build kernel for qemu
-rw-r--r-- | mk/kernel-build.mk | 4 | ||||
-rw-r--r-- | target/config/Config.in.compiler | 5 | ||||
-rw-r--r-- | target/config/Config.in.kernelfmt | 3 | ||||
-rw-r--r-- | target/linux/Config.in.kernelversion | 2 | ||||
-rw-r--r-- | target/linux/config/Config.in.serial | 12 | ||||
-rw-r--r-- | target/lm32/Makefile | 45 | ||||
-rw-r--r-- | target/lm32/systems/qemu-lm32 | 1 | ||||
-rw-r--r-- | toolchain/binutils/patches/2.32/lm32.patch | 25 | ||||
-rw-r--r-- | toolchain/elf2flt/Makefile.inc | 6 | ||||
-rw-r--r-- | toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0003-Makefile-fix-build-with-Binutils-2.31.patch | 34 | ||||
-rw-r--r-- | toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0001-lm32.patch (renamed from toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0001-lm32.patch) | 0 | ||||
-rw-r--r-- | toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0002-sh2.patch (renamed from toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0002-sh2.patch) | 0 | ||||
-rw-r--r-- | toolchain/gcc/Makefile.inc | 8 |
13 files changed, 104 insertions, 41 deletions
diff --git a/mk/kernel-build.mk b/mk/kernel-build.mk index bd6d511a1..e63802371 100644 --- a/mk/kernel-build.mk +++ b/mk/kernel-build.mk @@ -39,6 +39,10 @@ ifeq ($(ADK_TARGET_KERNEL_IMAGE),y) KERNEL_FILE:=vmlinux KERNEL_TARGET:=$(ADK_TARGET_KERNEL) endif +ifeq ($(ADK_TARGET_KERNEL_SIMPLEIMAGE),y) +KERNEL_FILE:=vmlinux.bin +KERNEL_TARGET:=simpleImage.milkymist_one +endif ifneq ($(KERNEL_MODULES_USED),) KERNEL_TARGET+=modules diff --git a/target/config/Config.in.compiler b/target/config/Config.in.compiler index bfd6138e1..0020e6b92 100644 --- a/target/config/Config.in.compiler +++ b/target/config/Config.in.compiler @@ -31,6 +31,7 @@ prompt "GCC version" depends on ADK_BUILD_COMPILER_GCC default ADK_TOOLCHAIN_GCC_ARC if ADK_TARGET_ARCH_ARC default ADK_TOOLCHAIN_GCC_AVR32 if ADK_TARGET_ARCH_AVR32 +default ADK_TOOLCHAIN_GCC_LM32 if ADK_TARGET_ARCH_LM32 default ADK_TOOLCHAIN_GCC_METAG if ADK_TARGET_ARCH_METAG default ADK_TOOLCHAIN_GCC_NDS32 if ADK_TARGET_ARCH_NDS32 default ADK_TOOLCHAIN_GCC_7 if ADK_TARGET_CPU_ARM_ARM11MPCORE @@ -84,6 +85,10 @@ config ADK_TOOLCHAIN_GCC_METAG bool "4.2.4-metag" depends on ADK_TARGET_ARCH_METAG +config ADK_TOOLCHAIN_GCC_LM32 + bool "4.5.2" + depends on ADK_TARGET_ARCH_LM32 + config ADK_TOOLCHAIN_GCC_NDS32 bool "nds32-6.3.0-open" depends on ADK_TARGET_ARCH_NDS32 diff --git a/target/config/Config.in.kernelfmt b/target/config/Config.in.kernelfmt index e2fc675c3..f1d503e23 100644 --- a/target/config/Config.in.kernelfmt +++ b/target/config/Config.in.kernelfmt @@ -40,6 +40,9 @@ config ADK_TARGET_KERNEL_VMLINUX_SREC config ADK_TARGET_KERNEL_XIPIMAGE bool +config ADK_TARGET_KERNEL_SIMPLEIMAGE + bool + config ADK_TARGET_KERNEL string default "uImage" if ADK_TARGET_KERNEL_UIMAGE diff --git a/target/linux/Config.in.kernelversion b/target/linux/Config.in.kernelversion index 50805862f..6bb812b40 100644 --- a/target/linux/Config.in.kernelversion +++ b/target/linux/Config.in.kernelversion @@ -27,7 +27,6 @@ default ADK_TARGET_LINUX_KERNEL_VERSION_4_19 config ADK_TARGET_LINUX_KERNEL_VERSION_GIT bool "git" - select ADK_TARGET_LINUX_KERNEL_NEW depends on !ADK_TARGET_ARCH_AVR32 depends on !ADK_TARGET_ARCH_BFIN depends on !ADK_TARGET_ARCH_FRV @@ -256,6 +255,7 @@ config ADK_TARGET_LINUX_KERNEL_GIT_VER default "4.4.52" if ADK_TARGET_SYSTEM_PHYTEC_WEGA default "2.6.33" if ADK_TARGET_SYSTEM_KINETIS_K70 default "3.14.79" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 + default "3.1.0" if ADK_TARGET_SYSTEM_QEMU_LM32 config ADK_TARGET_LINUX_KERNEL_GIT_TYPE string diff --git a/target/linux/config/Config.in.serial b/target/linux/config/Config.in.serial index d4273607f..c6fa0c6e1 100644 --- a/target/linux/config/Config.in.serial +++ b/target/linux/config/Config.in.serial @@ -76,6 +76,9 @@ config ADK_LINUX_KERNEL_SERIAL_BFIN_UART1 config ADK_LINUX_KERNEL_SERIAL_8250_INGENIC bool +config ADK_LINUX_KERNEL_SERIAL_MILKYMIST_CONSOLE + bool + config ADK_LINUX_KERNEL_SERIAL_BFIN bool "BFIN serial driver" select ADK_LINUX_KERNEL_SERIAL_BFIN_CONSOLE @@ -328,4 +331,13 @@ config ADK_LINUX_KERNEL_BOARD_GRASSHOPPER_USART0 help Enable second USART on Grasshoper boards +config ADK_LINUX_KERNEL_SERIAL_MILKYMIST + bool "Enable UART0 on Milkymist" + select ADK_LINUX_KERNEL_SERIAL_MILKYMIST_CONSOLE + depends on ADK_TARGET_SYSTEM_QEMU_LM32 + default y if ADK_TARGET_SYSTEM_QEMU_LM32 + default n + help + Enable second USART on Grasshoper boards + endmenu diff --git a/target/lm32/Makefile b/target/lm32/Makefile index ba872b7d7..d79009445 100644 --- a/target/lm32/Makefile +++ b/target/lm32/Makefile @@ -5,6 +5,51 @@ include $(ADK_TOPDIR)/rules.mk include $(ADK_TOPDIR)/mk/kernel-build.mk include $(ADK_TOPDIR)/mk/image.mk +KERNEL:=$(LINUX_DIR)/arch/lm32/boot/simpleImage.milkymist_one + +QEMU_ARGS:=-M milkymist +QEMU_ARGS+=-nographic -nodefaults -monitor pty -serial stdio -append "console=ttyS0" +# +# target helper text +ifeq ($(ADK_TARGET_FS),archive) +targethelp: + @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)" +ifeq ($(ADK_TARGET_QEMU),y) + @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}' + @echo "Use following command to create a QEMU Image:" + @echo "./scripts/create.sh qemu-${ADK_TARGET_CPU_ARCH}.img $(FW_DIR)/$(ROOTFSUSERTARBALL)" + @echo "Start qemu with following options:" + @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${ADK_TARGET_CPU_ARCH}.img' +endif +endif +ifeq ($(ADK_TARGET_FS),initramfs) +targethelp: + @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}' + @echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}' +ifeq ($(ADK_TARGET_QEMU),y) + @echo "Start qemu with following command line:" + @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}' +endif +endif +ifeq ($(ADK_TARGET_FS),initramfsarchive) +targethelp: + @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}' + @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)" +endif +ifeq ($(ADK_TARGET_FS),initramfspiggyback) +targethelp: + @echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}' +ifeq ($(ADK_TARGET_QEMU),y) + @echo "Start qemu with following command line:" + @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)' +endif +endif + +kernel-strip: + +kernel-install: kernel-strip + @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL) + # filesystem specific targets ifeq ($(ADK_TARGET_FS),initramfs) imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp diff --git a/target/lm32/systems/qemu-lm32 b/target/lm32/systems/qemu-lm32 index f729902d8..901e1665f 100644 --- a/target/lm32/systems/qemu-lm32 +++ b/target/lm32/systems/qemu-lm32 @@ -3,6 +3,7 @@ config ADK_TARGET_SYSTEM_QEMU_LM32 select ADK_TARGET_QEMU select ADK_TARGET_CPU_LM32 select ADK_TARGET_UCLINUX + select ADK_TARGET_KERNEL_SIMPLEIMAGE help Support for Qemu Emulator LM32 architecture. diff --git a/toolchain/binutils/patches/2.32/lm32.patch b/toolchain/binutils/patches/2.32/lm32.patch new file mode 100644 index 000000000..176f09982 --- /dev/null +++ b/toolchain/binutils/patches/2.32/lm32.patch @@ -0,0 +1,25 @@ +diff -Nur binutils-2.32.orig/bfd/config.bfd binutils-2.32/bfd/config.bfd +--- binutils-2.32.orig/bfd/config.bfd 2019-01-19 17:01:32.000000000 +0100 ++++ binutils-2.32/bfd/config.bfd 2019-10-08 18:05:48.695171206 +0200 +@@ -787,7 +787,7 @@ + ;; + + lm32-*-*linux*) +- targ_defvec=lm32_elf32_fdpic_vec ++ targ_defvec=lm32_elf32_vec + targ_selvecs=lm32_elf32_vec + ;; + +diff -Nur binutils-2.32.orig/ld/configure.tgt binutils-2.32/ld/configure.tgt +--- binutils-2.32.orig/ld/configure.tgt 2019-01-19 17:01:33.000000000 +0100 ++++ binutils-2.32/ld/configure.tgt 2019-10-08 18:04:50.170788572 +0200 +@@ -388,7 +388,8 @@ + ;; + iq2000-*-elf) targ_emul=elf32iq2000 ; targ_extra_emuls="elf32iq10" + ;; +-lm32-*-*linux*) targ_emul=elf32lm32fd ;; ++lm32-*-*linux*) targ_emul=elf32lm32 ++ ;; + lm32-*-*) targ_emul=elf32lm32 ; targ_extra_emuls="elf32lm32fd" + ;; + m32c-*-elf | m32c-*-rtems*) diff --git a/toolchain/elf2flt/Makefile.inc b/toolchain/elf2flt/Makefile.inc index ca12e5ff7..30a3cebfe 100644 --- a/toolchain/elf2flt/Makefile.inc +++ b/toolchain/elf2flt/Makefile.inc @@ -12,9 +12,3 @@ PKG_GIT:= branch PKG_RELEASE:= 1 PKG_SITES:= git://git.osdn.net/gitroot/uclinux-h8/elf2flt.git endif -ifeq ($(ADK_TARGET_ARCH_LM32),y) -PKG_VERSION:= 3051fec89bbd30de6f952dc3100712feff3ca076 -PKG_GIT:= hash -PKG_RELEASE:= 1 -PKG_SITES:= https://github.com/m-labs/elf2flt-lm32.git -endif diff --git a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0003-Makefile-fix-build-with-Binutils-2.31.patch b/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0003-Makefile-fix-build-with-Binutils-2.31.patch deleted file mode 100644 index 825582550..000000000 --- a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0003-Makefile-fix-build-with-Binutils-2.31.patch +++ /dev/null @@ -1,34 +0,0 @@ -From faf1a1646093fbc5ed279bae1c7250c7dfea56f8 Mon Sep 17 00:00:00 2001 -From: Romain Naour <romain.naour@smile.fr> -Date: Tue, 17 Jul 2018 16:36:16 +0200 -Subject: [PATCH] Makefile: fix build with Binutils 2.31 - -Binutils added diagnostics.h to bfd.h [1], so elf2flt must create a symlink -for this header. - -Fixes: -https://gitlab.com/free-electrons/toolchains-builder/-/jobs/82284139 - -[1] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=95da9854466ada2572b42f5528711a06a2d42db1 - -Signed-off-by: Romain Naour <romain.naour@smile.fr> ---- - Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.in b/Makefile.in -index cfad06c..164e306 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -127,7 +127,7 @@ bfd-headers/.stamp: - rm -rf bfd-headers - mkdir bfd-headers - ln -sf $(BFD_INCLUDE_DIR)/bfd.h bfd-headers/bfd.h -- for f in ansidecl filenames hashtab libiberty symcat; do \ -+ for f in ansidecl diagnostics filenames hashtab libiberty symcat; do \ - ln -sf $(BINUTILS_INCLUDE_DIR)/$$f.h bfd-headers/$$f.h || exit 1; \ - done - ln -sf $(BINUTILS_INCLUDE_DIR)/elf bfd-headers/elf --- -2.7.4 - diff --git a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0001-lm32.patch b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0001-lm32.patch index 44757171b..44757171b 100644 --- a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0001-lm32.patch +++ b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0001-lm32.patch diff --git a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0002-sh2.patch b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0002-sh2.patch index 59e263bc0..59e263bc0 100644 --- a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0002-sh2.patch +++ b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0002-sh2.patch diff --git a/toolchain/gcc/Makefile.inc b/toolchain/gcc/Makefile.inc index 409fd2daa..6b626715f 100644 --- a/toolchain/gcc/Makefile.inc +++ b/toolchain/gcc/Makefile.inc @@ -49,6 +49,14 @@ PKG_RELEASE:= 1 DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz LIBSTDCXXVER:= 19 endif +ifeq ($(ADK_TOOLCHAIN_GCC_LM32),y) +PKG_VERSION:= 4.5.2 +PKG_HASH:= 07b880faf29f3f9d9c0953717002ac29f5d061427797d2487a7c9c169e6395b3 +PKG_SITES:= https://ftp.gnu.org/gnu/gcc/gcc-$(PKG_VERSION)/ +PKG_RELEASE:= 1 +DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz +LIBSTDCXXVER:= 19 +endif ifeq ($(ADK_TOOLCHAIN_GCC_NDS32),y) PKG_VERSION:= nds32-6.3.0-open PKG_HASH:= b23ce96df25dfdd5526496a3c2cd7ee1da4ed4094971a2e0c47c73ad7e1ad30a |