From cd0e5af236e980ee577a0a6721389158081abe0c Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Tue, 13 Mar 2018 08:09:16 +0100 Subject: csky: fix qemu system emulation --- mk/vars.mk | 7 -- target/config/Config.in.libc | 1 + target/csky/Makefile | 4 +- target/csky/ck610.dtb | Bin 1727 -> 0 bytes target/csky/ck610.dts | 98 --------------------- target/csky/ck810.dtb | Bin 1759 -> 0 bytes target/csky/ck810.dts | 98 --------------------- target/csky/kernel/qemu-csky-ck610 | 3 - target/csky/kernel/qemu-csky-ck807 | 5 ++ target/csky/kernel/qemu-csky-ck810 | 3 - target/csky/qemu.dtb | Bin 1638 -> 1606 bytes target/csky/qemu.dts | 2 +- target/csky/systems/qemu-csky-ck610 | 1 + target/csky/systems/qemu-csky-ck807 | 1 + target/csky/systems/qemu-csky-ck810 | 1 + toolchain/gcc/patches/gcc-6-branch-csky/gcc7.patch | 12 +++ 16 files changed, 24 insertions(+), 212 deletions(-) delete mode 100644 target/csky/ck610.dtb delete mode 100644 target/csky/ck610.dts delete mode 100644 target/csky/ck810.dtb delete mode 100644 target/csky/ck810.dts create mode 100644 toolchain/gcc/patches/gcc-6-branch-csky/gcc7.patch diff --git a/mk/vars.mk b/mk/vars.mk index 8224232ff..87f8b54d0 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -75,13 +75,6 @@ GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_VENDOR)-$(ADK_TARGET_LINUXTYPE)-$ ifeq ($(ADK_TARGET_ARCH_C6X),y) GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_LINUXTYPE) endif -ifeq ($(ADK_TARGET_ARCH_CSKY),y) -ifeq ($(ADK_TARGET_CPU_CSKY_CK610),y) -GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-unknown-$(ADK_TARGET_LINUXTYPE) -else -GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-abiv2-$(ADK_TARGET_LINUXTYPE) -endif -endif ifeq ($(ADK_TARGET_OS_BAREMETAL),y) GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_SUFFIX) endif diff --git a/target/config/Config.in.libc b/target/config/Config.in.libc index 9453328ab..b663ce46a 100644 --- a/target/config/Config.in.libc +++ b/target/config/Config.in.libc @@ -259,6 +259,7 @@ config ADK_TARGET_SUFFIX default "uclibcabi32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_O32 default "uclibc32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_32 && ADK_LINUX_64 default "uclibcspe" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_PPC && ADK_TARGET_ARCH_PPC_WITH_SPE + default "uclibcabiv2" if ADK_TARGET_LIB_UCLIBC_NG && (ADK_TARGET_CPU_CSKY_CK807 || ADK_TARGET_CPU_CSKY_CK810) default "uclibc" if ADK_TARGET_LIB_UCLIBC_NG default "musleabihf" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT default "musleabi" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM diff --git a/target/csky/Makefile b/target/csky/Makefile index c60d44536..7a470dafe 100644 --- a/target/csky/Makefile +++ b/target/csky/Makefile @@ -9,13 +9,13 @@ KERNEL:=$(LINUX_DIR)/$(ADK_TARGET_KERNEL) QEMU_ARGS:=${ADK_QEMU_ARGS} -M virt ifeq ($(ADK_TARGET_SYSTEM_QEMU_CSKY_CK610),y) -QEMU:=qemu-system-cskyv1 -dtb target/csky/ck610.dtb +QEMU:=qemu-system-cskyv1 -dtb target/csky/qemu.dtb endif ifeq ($(ADK_TARGET_SYSTEM_QEMU_CSKY_CK807),y) QEMU:=qemu-system-cskyv2 -dtb target/csky/qemu.dtb endif ifeq ($(ADK_TARGET_SYSTEM_QEMU_CSKY_CK810),y) -QEMU:=qemu-system-cskyv2 -dtb target/csky/ck810.dtb +QEMU:=qemu-system-cskyv2 -dtb target/csky/qemu.dtb endif # target helper text diff --git a/target/csky/ck610.dtb b/target/csky/ck610.dtb deleted file mode 100644 index a228fc6b7..000000000 Binary files a/target/csky/ck610.dtb and /dev/null differ diff --git a/target/csky/ck610.dts b/target/csky/ck610.dts deleted file mode 100644 index b29a3cdf1..000000000 --- a/target/csky/ck610.dts +++ /dev/null @@ -1,98 +0,0 @@ -/dts-v1/; - -/ { - model = "qemu.csky.ck610"; - compatible = "csky"; - #address-cells = <1>; - #size-cells = <1>; - - memory { - device_type = "memory"; - reg = <0x0 0x1f400000>; - }; - - cpus { - #address-cells = <0>; - #size-cells = <0>; - - cpu { - device_type = "cpu"; - ccr = <0x7d>; - hint = <0x1c>; - }; - }; - - soc { - #address-cells = <1>; - #size-cells = <1>; - compatible = "simple-bus"; - ranges; - - dummy_apb: apb-clock { - compatible = "fixed-clock"; - clock-frequency = <40000000>; - clock-output-names = "dummy_apb"; - #clock-cells = <0>; - }; - - intc: interrupt-controller { - compatible = "csky,intc-v1"; - reg = <0x1ffff000 0x1000>; - interrupt-controller; - #interrupt-cells = <1>; - }; - - /* clockevent */ - timer0 { - compatible = "snps,dw-apb-timer"; - reg = <0x1fffd000 0x1000>; - clocks = <&dummy_apb>; - clock-names = "timer"; - interrupts = <1>; - interrupt-parent = <&intc>; - }; - - /* clocksource */ - timer1 { - compatible = "snps,dw-apb-timer"; - reg = <0x1fffd014 0x800>; - clocks = <&dummy_apb>; - clock-names = "timer"; - interrupts = <2>; - interrupt-parent = <&intc>; - }; - - serial0 { - compatible = "ns16550a"; - reg = <0x1fffe000 0x1000>; - interrupt-parent = <&intc>; - interrupts = <3>; - clocks = <&dummy_apb>; - baud = <115200>; - reg-shift = <2>; - reg-io-width = <1>; - }; - - gmac: ethernet { - compatible = "snps,dwmac"; - reg = <0x1fffa000 0x2000>; - interrupt-parent = <&intc>; - interrupts = <4>; - interrupt-names = "macirq"; - clocks = <&dummy_apb>; - clock-names = "stmmaceth"; - phy-mode = "mii"; - snps,pbl = <32>; - snps,fixed-burst; - }; - - qemu-exit { - compatible = "csky,qemu-exit"; - reg = <0x1fffc000 0x1000>; - }; - }; - - chosen { - bootargs = "console=ttyS0,115200"; - }; -}; diff --git a/target/csky/ck810.dtb b/target/csky/ck810.dtb deleted file mode 100644 index 9248925d6..000000000 Binary files a/target/csky/ck810.dtb and /dev/null differ diff --git a/target/csky/ck810.dts b/target/csky/ck810.dts deleted file mode 100644 index de5ad3d0a..000000000 --- a/target/csky/ck810.dts +++ /dev/null @@ -1,98 +0,0 @@ -/dts-v1/; - -/ { - model = "qemu.csky.ck810"; - compatible = "csky"; - #address-cells = <1>; - #size-cells = <1>; - - memory { - device_type = "memory"; - reg = <0x0 0x1f400000>; - }; - - cpus { - #address-cells = <0>; - #size-cells = <0>; - - cpu { - device_type = "cpu"; - ccr = <0x417d>; - hint = <0xe>; - }; - }; - - soc { - #address-cells = <1>; - #size-cells = <1>; - compatible = "simple-bus"; - ranges; - - intc: interrupt-controller { - compatible = "csky,intc-v1"; - reg = <0x1ffff000 0x1000>; - interrupt-controller; - #interrupt-cells = <1>; - }; - - /* clockevent */ - timer0 { - compatible = "snps,dw-apb-timer"; - reg = <0x1fffd000 0x1000>; - clocks = <&dummy_apb>; - clock-names = "timer"; - interrupts = <1>; - interrupt-parent = <&intc>; - }; - - /* clocksource */ - timer1 { - compatible = "snps,dw-apb-timer"; - reg = <0x1fffd014 0x800>; - clocks = <&dummy_apb>; - clock-names = "timer"; - interrupts = <2>; - interrupt-parent = <&intc>; - }; - - serial0 { - compatible = "ns16550a"; - reg = <0x1fffe000 0x1000>; - interrupt-parent = <&intc>; - interrupts = <3>; - clocks = <&dummy_apb>; - baud = <115200>; - reg-shift = <2>; - reg-io-width = <1>; - }; - - dummy_apb: apb-clock { - compatible = "fixed-clock"; - clock-frequency = <40000000>; - clock-output-names = "dummy_apb"; - #clock-cells = <0>; - }; - - gmac: ethernet { - compatible = "snps,dwmac"; - reg = <0x1fffa000 0x2000>; - interrupt-parent = <&intc>; - interrupts = <4>; - interrupt-names = "macirq"; - clocks = <&dummy_apb>; - clock-names = "stmmaceth"; - phy-mode = "mii"; - snps,pbl = <32>; - snps,fixed-burst; - }; - - qemu-exit { - compatible = "csky,qemu-exit"; - reg = <0x1fffc000 0x1000>; - }; - }; - - chosen { - bootargs = "console=ttyS0,115200 rdinit=/sbin/init root=/dev/ram0"; - }; -}; diff --git a/target/csky/kernel/qemu-csky-ck610 b/target/csky/kernel/qemu-csky-ck610 index 341d9059d..0b5df804f 100644 --- a/target/csky/kernel/qemu-csky-ck610 +++ b/target/csky/kernel/qemu-csky-ck610 @@ -5,7 +5,4 @@ CONFIG_RAM_BASE=0x0 CONFIG_NATIONALCHIP_IRQ=y CONFIG_NATIONALCHIP_TIMER=y CONFIG_CSKYMAC=y -CONFIG_CSKY_ADDONS=y -CONFIG_MMU_HARD_REFILL=y -CONFIG_SOFT_HANDMISSALIGN=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y diff --git a/target/csky/kernel/qemu-csky-ck807 b/target/csky/kernel/qemu-csky-ck807 index 1dc23212a..ea91eeffe 100644 --- a/target/csky/kernel/qemu-csky-ck807 +++ b/target/csky/kernel/qemu-csky-ck807 @@ -1,3 +1,8 @@ CONFIG_CSKY=y CONFIG_CPU_CK807=y +CONFIG_CSKY_IRQ=y +CONFIG_RAM_BASE=0x0 +CONFIG_NATIONALCHIP_IRQ=y +CONFIG_NATIONALCHIP_TIMER=y +CONFIG_CSKYMAC=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y diff --git a/target/csky/kernel/qemu-csky-ck810 b/target/csky/kernel/qemu-csky-ck810 index d87522604..6abd83aa8 100644 --- a/target/csky/kernel/qemu-csky-ck810 +++ b/target/csky/kernel/qemu-csky-ck810 @@ -5,7 +5,4 @@ CONFIG_RAM_BASE=0x0 CONFIG_NATIONALCHIP_IRQ=y CONFIG_NATIONALCHIP_TIMER=y CONFIG_CSKYMAC=y -CONFIG_CSKY_ADDONS=y -CONFIG_MMU_HARD_REFILL=y -CONFIG_SOFT_HANDMISSALIGN=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y diff --git a/target/csky/qemu.dtb b/target/csky/qemu.dtb index 5cc22b091..8b24acfd2 100644 Binary files a/target/csky/qemu.dtb and b/target/csky/qemu.dtb differ diff --git a/target/csky/qemu.dts b/target/csky/qemu.dts index 59e1c8390..44f57f352 100644 --- a/target/csky/qemu.dts +++ b/target/csky/qemu.dts @@ -82,6 +82,6 @@ }; chosen { - bootargs = "console=ttyS0,115200 rdinit=/sbin/init root=/dev/ram0"; + bootargs = "console=ttyS0,115200"; }; }; diff --git a/target/csky/systems/qemu-csky-ck610 b/target/csky/systems/qemu-csky-ck610 index 6a4b7c552..6f740cb42 100644 --- a/target/csky/systems/qemu-csky-ck610 +++ b/target/csky/systems/qemu-csky-ck610 @@ -2,6 +2,7 @@ config ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 bool "Qemu Emulator (ck610)" select ADK_TARGET_QEMU select ADK_TARGET_CPU_CSKY_CK610 + select ADK_TARGET_KERNEL_WITH_COMPRESSION help Qemu Emulator for C-SKY architecture (ck610). diff --git a/target/csky/systems/qemu-csky-ck807 b/target/csky/systems/qemu-csky-ck807 index 4b964dc1b..c938c70cd 100644 --- a/target/csky/systems/qemu-csky-ck807 +++ b/target/csky/systems/qemu-csky-ck807 @@ -2,6 +2,7 @@ config ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 bool "Qemu Emulator (ck807)" select ADK_TARGET_QEMU select ADK_TARGET_CPU_CSKY_CK807 + select ADK_TARGET_KERNEL_WITH_COMPRESSION help Qemu Emulator for C-SKY architecture (ck807). diff --git a/target/csky/systems/qemu-csky-ck810 b/target/csky/systems/qemu-csky-ck810 index 02314bf6e..68a431588 100644 --- a/target/csky/systems/qemu-csky-ck810 +++ b/target/csky/systems/qemu-csky-ck810 @@ -2,6 +2,7 @@ config ADK_TARGET_SYSTEM_QEMU_CSKY_CK810 bool "Qemu Emulator (ck810)" select ADK_TARGET_QEMU select ADK_TARGET_CPU_CSKY_CK810 + select ADK_TARGET_KERNEL_WITH_COMPRESSION help Qemu Emulator for C-SKY architecture (ck810). diff --git a/toolchain/gcc/patches/gcc-6-branch-csky/gcc7.patch b/toolchain/gcc/patches/gcc-6-branch-csky/gcc7.patch new file mode 100644 index 000000000..4bffd2bb1 --- /dev/null +++ b/toolchain/gcc/patches/gcc-6-branch-csky/gcc7.patch @@ -0,0 +1,12 @@ +diff -Nur gcc-gcc-6-branch-csky.orig/gcc/ubsan.c gcc-gcc-6-branch-csky/gcc/ubsan.c +--- gcc-gcc-6-branch-csky.orig/gcc/ubsan.c 2018-03-10 14:10:55.000000000 +0100 ++++ gcc-gcc-6-branch-csky/gcc/ubsan.c 2018-03-10 21:16:06.358370414 +0100 +@@ -1471,7 +1471,7 @@ + + expanded_location xloc = expand_location (loc); + if (xloc.file == NULL || strncmp (xloc.file, "\1", 2) == 0 +- || xloc.file == '\0' || xloc.file[0] == '\xff' ++ || xloc.file[0] == '\0' || xloc.file[0] == '\xff' + || xloc.file[1] == '\xff') + return false; + -- cgit v1.2.3