summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arc/Kconfig5
-rw-r--r--arch/arc/config.mk6
-rw-r--r--arch/arc/dts/Makefile1
-rw-r--r--arch/arc/dts/abilis_tb100.dts2
-rw-r--r--arch/arc/dts/axs101.dts2
-rw-r--r--arch/arc/dts/axs103.dts2
-rw-r--r--arch/arc/dts/emdk.dts2
-rw-r--r--arch/arc/dts/hsdk.dts2
-rw-r--r--arch/arc/dts/iot_devkit.dts45
-rw-r--r--arch/arc/dts/nsim.dts2
-rw-r--r--arch/arc/lib/cpu.c35
11 files changed, 97 insertions, 7 deletions
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
index d59aa3ae29..b24593e137 100644
--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -157,6 +157,10 @@ config TARGET_EMDK
config TARGET_HSDK
bool "Support Synpsys HS DevelopmentKit board"
+config TARGET_IOT_DEVKIT
+ bool "Synopsys Brite IoT Development kit"
+ select CPU_ARCEM6
+
endchoice
source "board/abilis/tb100/Kconfig"
@@ -164,5 +168,6 @@ source "board/synopsys/Kconfig"
source "board/synopsys/axs10x/Kconfig"
source "board/synopsys/emdk/Kconfig"
source "board/synopsys/hsdk/Kconfig"
+source "board/synopsys/iot_devkit/Kconfig"
endmenu
diff --git a/arch/arc/config.mk b/arch/arc/config.mk
index 169e5d7fae..d255c90e35 100644
--- a/arch/arc/config.mk
+++ b/arch/arc/config.mk
@@ -9,21 +9,15 @@ CONFIG_SYS_BIG_ENDIAN = 1
endif
ifdef CONFIG_SYS_LITTLE_ENDIAN
-ARC_CROSS_COMPILE := arc-linux-
PLATFORM_LDFLAGS += -EL
PLATFORM_CPPFLAGS += -mlittle-endian
endif
ifdef CONFIG_SYS_BIG_ENDIAN
-ARC_CROSS_COMPILE := arceb-linux-
PLATFORM_LDFLAGS += -EB
PLATFORM_CPPFLAGS += -mbig-endian
endif
-ifeq ($(CROSS_COMPILE),)
-CROSS_COMPILE := $(ARC_CROSS_COMPILE)
-endif
-
ifdef CONFIG_ARC_MMU_VER
CONFIG_MMU = 1
endif
diff --git a/arch/arc/dts/Makefile b/arch/arc/dts/Makefile
index 491a4f40bb..17e1405c0c 100644
--- a/arch/arc/dts/Makefile
+++ b/arch/arc/dts/Makefile
@@ -6,6 +6,7 @@ dtb-$(CONFIG_TARGET_NSIM) += nsim.dtb
dtb-$(CONFIG_TARGET_TB100) += abilis_tb100.dtb
dtb-$(CONFIG_TARGET_EMDK) += emdk.dtb
dtb-$(CONFIG_TARGET_HSDK) += hsdk.dtb
+dtb-$(CONFIG_TARGET_IOT_DEVKIT) += iot_devkit.dtb
targets += $(dtb-y)
diff --git a/arch/arc/dts/abilis_tb100.dts b/arch/arc/dts/abilis_tb100.dts
index de3e57d246..19e45b9c66 100644
--- a/arch/arc/dts/abilis_tb100.dts
+++ b/arch/arc/dts/abilis_tb100.dts
@@ -7,6 +7,8 @@
#include "skeleton.dtsi"
/ {
+ model = "abilis,tb100";
+
aliases {
console = &uart0;
};
diff --git a/arch/arc/dts/axs101.dts b/arch/arc/dts/axs101.dts
index 13873be320..fc9fa93b74 100644
--- a/arch/arc/dts/axs101.dts
+++ b/arch/arc/dts/axs101.dts
@@ -9,6 +9,8 @@
/ {
+ model = "snps,axs101";
+
chosen {
stdout-path = &uart0;
};
diff --git a/arch/arc/dts/axs103.dts b/arch/arc/dts/axs103.dts
index 81778c8983..6e2dd00fc3 100644
--- a/arch/arc/dts/axs103.dts
+++ b/arch/arc/dts/axs103.dts
@@ -9,6 +9,8 @@
/ {
+ model = "snps,axs103";
+
chosen {
stdout-path = &uart0;
};
diff --git a/arch/arc/dts/emdk.dts b/arch/arc/dts/emdk.dts
index 5e853e3a72..ebe538d06f 100644
--- a/arch/arc/dts/emdk.dts
+++ b/arch/arc/dts/emdk.dts
@@ -7,6 +7,8 @@
#include "skeleton.dtsi"
/ {
+ model = "snps,emdk";
+
#address-cells = <1>;
#size-cells = <1>;
diff --git a/arch/arc/dts/hsdk.dts b/arch/arc/dts/hsdk.dts
index 673bc5b26a..f024b96925 100644
--- a/arch/arc/dts/hsdk.dts
+++ b/arch/arc/dts/hsdk.dts
@@ -8,6 +8,8 @@
#include "dt-bindings/clock/snps,hsdk-cgu.h"
/ {
+ model = "snps,hsdk";
+
#address-cells = <1>;
#size-cells = <1>;
diff --git a/arch/arc/dts/iot_devkit.dts b/arch/arc/dts/iot_devkit.dts
new file mode 100644
index 0000000000..ebf5a950f0
--- /dev/null
+++ b/arch/arc/dts/iot_devkit.dts
@@ -0,0 +1,45 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Synopsys, Inc. All rights reserved.
+ */
+/dts-v1/;
+
+#include "skeleton.dtsi"
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ aliases {
+ console = &uart0;
+ };
+
+ cpu_card {
+ core_clk: core_clk {
+ #clock-cells = <0>;
+ compatible = "fixed-clock";
+ clock-frequency = <144000000>;
+ u-boot,dm-pre-reloc;
+ };
+ };
+
+ uart0: serial0@80014000 {
+ compatible = "snps,dw-apb-uart";
+ clock-frequency = <16000000>;
+ reg = <0x80014000 0x1000>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ };
+
+ usb: usb@f0040000 {
+ compatible = "snps,dwc2";
+ reg = <0xf0040000 0x10000>;
+ phys = <&usbphy>;
+ phy-names = "usb2-phy";
+ };
+
+ usbphy: phy {
+ compatible = "nop-phy";
+ #phy-cells = <0>;
+ };
+};
diff --git a/arch/arc/dts/nsim.dts b/arch/arc/dts/nsim.dts
index 9c1c7aa0eb..243ecb178e 100644
--- a/arch/arc/dts/nsim.dts
+++ b/arch/arc/dts/nsim.dts
@@ -7,6 +7,8 @@
#include "skeleton.dtsi"
/ {
+ model = "snps,nsim";
+
aliases {
console = &arcuart0;
};
diff --git a/arch/arc/lib/cpu.c b/arch/arc/lib/cpu.c
index cb95e06e93..50cd7cdb61 100644
--- a/arch/arc/lib/cpu.c
+++ b/arch/arc/lib/cpu.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0+
/*
- * Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved.
+ * Copyright (C) 2013-2014, 2018 Synopsys, Inc. All rights reserved.
*/
#include <common.h>
@@ -33,3 +33,36 @@ int dram_init(void)
{
return 0;
}
+
+#ifdef CONFIG_DISPLAY_CPUINFO
+const char *decode_identity(void)
+{
+ int arcver = read_aux_reg(ARC_AUX_IDENTITY) & 0xff;
+
+ switch (arcver) {
+ /* ARCompact cores */
+ case 0x32: return "ARC 700 v4.4-4.5";
+ case 0x33: return "ARC 700 v4.6-v4.9";
+ case 0x34: return "ARC 700 v4.10";
+ case 0x35: return "ARC 700 v4.11";
+
+ /* ARCv2 cores */
+ case 0x41: return "ARC EM v1.1a";
+ case 0x42: return "ARC EM v3.0";
+ case 0x43: return "ARC EM v4.0";
+ case 0x50: return "ARC HS v1.0";
+ case 0x51: return "ARC EM v2.0";
+ case 0x52: return "ARC EM v2.1";
+ case 0x53: return "ARC HS v3.0";
+ case 0x54: return "ARC HS v4.0";
+
+ default: return "Unknown ARC core";
+ }
+}
+
+int print_cpuinfo(void)
+{
+ printf("CPU: %s\n", decode_identity());
+ return 0;
+}
+#endif /* CONFIG_DISPLAY_CPUINFO */