Browse Source

arc: update toolchain, add support for qemu

Waldemar Brodkorb 1 year ago
parent
commit
c116ba7cc5

+ 15 - 0
target/arc/Makefile

@@ -11,6 +11,17 @@ else
 KERNEL:=$(LINUX_DIR)/$(ADK_TARGET_KERNEL)
 endif
 
+QEMU_ARGS:=-monitor none -serial stdio
+QEMU_ARGS+=${ADK_QEMU_ARGS}
+
+ifeq ($(ADK_TARGET_CPU_ARC_ARC700),y)
+QEMU_ARGS+=-cpu arc700
+endif
+
+ifeq ($(ADK_TARGET_CPU_ARC_ARCHS),y)
+QEMU_ARGS+=-cpu archs
+endif
+
 # target helper text
 ifeq ($(ADK_TARGET_FS),archive)
 targethelp:
@@ -29,6 +40,10 @@ 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
 ifeq ($(ADK_TARGET_SYSTEM_SYNOPSYS_NSIM),y)
 ifeq ($(ADK_TARGET_LITTLE_ENDIAN),y)
 ifeq ($(ADK_TARGET_CPU_ARC_ARC700),y)

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

@@ -0,0 +1,3 @@
+CONFIG_ARC=y
+CONFIG_ARC_HAS_ACCL_REGS=y
+CONFIG_COMPAT_32BIT_TIME=y

+ 7 - 0
target/arc/systems/qemu-arc

@@ -0,0 +1,7 @@
+config ADK_TARGET_SYSTEM_QEMU_ARC
+	bool "Qemu Emulator"
+	select ADK_TARGET_QEMU
+	select ADK_TARGET_KERNEL_WITH_COMPRESSION
+	help
+	  Support for QEMU ARC Emulator.
+

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

@@ -34,7 +34,7 @@ config ADK_TOOLCHAIN_BINUTILS_2_28
 	depends on ADK_TARGET_CPU_SH_J2
 
 config ADK_TOOLCHAIN_BINUTILS_ARC
-	bool "arc-2021.09"
+	bool "arc-2022.09"
 	depends on ADK_TARGET_ARCH_ARC
 
 config ADK_TOOLCHAIN_BINUTILS_KVX

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

@@ -82,7 +82,7 @@ config ADK_TOOLCHAIN_GCC_7
 	depends on !ADK_TARGET_ARCH_LOONGARCH
 
 config ADK_TOOLCHAIN_GCC_ARC
-	bool "arc-2021.09"
+	bool "arc-2022.09"
 	depends on ADK_TARGET_ARCH_ARC
 
 config ADK_TOOLCHAIN_GCC_AVR32

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

@@ -16,6 +16,7 @@ depends on ADK_TARGET_SYSTEM_GENERIC_ARC \
 	|| ADK_TARGET_SYSTEM_GENERIC_SH \
 	|| ADK_TARGET_SYSTEM_GENERIC_XTENSA \
 	|| ADK_TARGET_SYSTEM_SYNOPSYS_NSIM \
+	|| ADK_TARGET_SYSTEM_QEMU_ARC \
 	|| ADK_TARGET_SYSTEM_QEMU_AARCH64 \
 	|| ADK_TARGET_SYSTEM_QEMU_CSKY \
 	|| ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \

+ 2 - 1
target/linux/config/Config.in.arc

@@ -21,6 +21,7 @@ config ADK_LINUX_KERNEL_ARC_BUILTIN_DTB_NAME
 	depends on ADK_TARGET_ARCH_ARC
 	default "hsdk" if ADK_TARGET_CPU_ARC_ARCHS && ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
 	default "haps_hs" if ADK_TARGET_CPU_ARC_ARCHS && ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
-	default "nsim_700" if ADK_TARGET_CPU_ARC_ARC700 && ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
+	default "haps_hs" if ADK_TARGET_CPU_ARC_ARCHS && ADK_TARGET_SYSTEM_QEMU_ARC
+	default "nsim_700" if ADK_TARGET_CPU_ARC_ARC700
 	
 

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

@@ -94,6 +94,7 @@ config ADK_LINUX_KERNEL_SERIAL_8250
 	select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_CPU_ARC_ARCHS && ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
 	select ADK_LINUX_KERNEL_SERIAL_OF_PLATFORM if ADK_TARGET_SYSTEM_XILINX_KINTEX7 \
 						|| ADK_TARGET_SYSTEM_IMGTEC_CI20 \
+						|| ADK_TARGET_SYSTEM_QEMU_ARC \
 						|| ADK_TARGET_SYSTEM_QEMU_CSKY \
 						|| ADK_TARGET_SYSTEM_QEMU_XTENSA \
 						|| ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \
@@ -110,6 +111,7 @@ config ADK_LINUX_KERNEL_SERIAL_8250
 	select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
 	select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_ORANGE_PI0
 	select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
+	select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_QEMU_ARC
 	select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
 	select ADK_LINUX_KERNEL_SERIAL_8250_DMA if ADK_TARGET_SYSTEM_ORANGE_PI0
 	select ADK_LINUX_KERNEL_SERIAL_8250_INGENIC if ADK_TARGET_SYSTEM_IMGTEC_CI20
@@ -123,6 +125,7 @@ config ADK_LINUX_KERNEL_SERIAL_8250
 		|| ADK_TARGET_SYSTEM_QEMU_MIPS \
 		|| ADK_TARGET_SYSTEM_QEMU_MIPS64 \
 		|| ADK_TARGET_SYSTEM_QEMU_ALPHA \
+		|| ADK_TARGET_SYSTEM_QEMU_ARC \
 		|| ADK_TARGET_SYSTEM_QEMU_CSKY \
 		|| ADK_TARGET_SYSTEM_QEMU_HPPA \
 		|| ADK_TARGET_SYSTEM_QEMU_NIOS2 \
@@ -155,6 +158,7 @@ config ADK_LINUX_KERNEL_SERIAL_8250
 	default y if ADK_TARGET_SYSTEM_QEMU_MIPS
 	default y if ADK_TARGET_SYSTEM_QEMU_MIPS64
 	default y if ADK_TARGET_SYSTEM_QEMU_ALPHA
+	default y if ADK_TARGET_SYSTEM_QEMU_ARC
 	default y if ADK_TARGET_SYSTEM_QEMU_CSKY
 	default y if ADK_TARGET_SYSTEM_QEMU_HPPA
 	default y if ADK_TARGET_SYSTEM_QEMU_NIOS2

+ 1 - 1
toolchain/binutils/Makefile.inc

@@ -38,7 +38,7 @@ PKG_SITES:=		${MASTER_SITE_GNU:=binutils/}
 DISTFILES:=		${PKG_NAME}-${PKG_VERSION}.tar.gz
 endif
 ifeq ($(ADK_TOOLCHAIN_BINUTILS_ARC),y)
-PKG_VERSION:=          arc-2021.09
+PKG_VERSION:=          arc-2022.09
 PKG_GIT:=              tag
 PKG_RELEASE:=          1
 PKG_SITES:=            https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb.git

+ 1 - 1
toolchain/gcc/Makefile.inc

@@ -51,7 +51,7 @@ DISTFILES:=		${PKG_NAME}-${PKG_VERSION}.tar.xz
 LIBSTDCXXVER:=		23
 endif
 ifeq ($(ADK_TOOLCHAIN_GCC_ARC),y)
-PKG_VERSION:=		arc-2021.09
+PKG_VERSION:=		arc-2022.09
 PKG_GIT:=		tag
 PKG_SITES:=		https://github.com/foss-for-synopsys-dwc-arc-processors/gcc.git
 PKG_RELEASE:=		1