summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2018-03-13 08:09:16 +0100
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2018-03-13 08:09:23 +0100
commitcd0e5af236e980ee577a0a6721389158081abe0c (patch)
tree4cc6d32e39332c7268f51bb9cffdc763e5e64641
parentba4ff2520c8759cce53de7140323ea7932bb598b (diff)
csky: fix qemu system emulation
-rw-r--r--mk/vars.mk7
-rw-r--r--target/config/Config.in.libc1
-rw-r--r--target/csky/Makefile4
-rw-r--r--target/csky/ck610.dtbbin1727 -> 0 bytes
-rw-r--r--target/csky/ck610.dts98
-rw-r--r--target/csky/ck810.dtbbin1759 -> 0 bytes
-rw-r--r--target/csky/ck810.dts98
-rw-r--r--target/csky/kernel/qemu-csky-ck6103
-rw-r--r--target/csky/kernel/qemu-csky-ck8075
-rw-r--r--target/csky/kernel/qemu-csky-ck8103
-rw-r--r--target/csky/qemu.dtbbin1638 -> 1606 bytes
-rw-r--r--target/csky/qemu.dts2
-rw-r--r--target/csky/systems/qemu-csky-ck6101
-rw-r--r--target/csky/systems/qemu-csky-ck8071
-rw-r--r--target/csky/systems/qemu-csky-ck8101
-rw-r--r--toolchain/gcc/patches/gcc-6-branch-csky/gcc7.patch12
16 files changed, 24 insertions, 212 deletions
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
--- a/target/csky/ck610.dtb
+++ /dev/null
Binary files 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
--- a/target/csky/ck810.dtb
+++ /dev/null
Binary files 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
--- a/target/csky/qemu.dtb
+++ b/target/csky/qemu.dtb
Binary files 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;
+