aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arc
diff options
context:
space:
mode:
authorMischa Jonker <mjonker@synopsys.com>2013-04-18 05:40:39 -0400
committerVineet Gupta <vgupta@synopsys.com>2013-05-07 04:14:00 -0400
commita92a5d0dce5b02fa34792e313b5fe3d7d317b17b (patch)
tree736da5d91df8995fe1cec7d4676007822a4784da /arch/arc
parent0dfad77d0a03ea8e716d5a97d6387a999fd324dd (diff)
ARC: Add support for nSIM OSCI System C model
This adds support for an ARC Virtual Platform. This platform is based on the System C standard promoted by the OSCI (Open System C Initiative) and uses nSIM to simulate the ARC CPU core itself. Users can build a virtual SoC by combining System C models of peripherals and CPU cores. Signed-off-by: Mischa Jonker <mjonker@synopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc')
-rw-r--r--arch/arc/boot/dts/nsimosci.dts77
-rw-r--r--arch/arc/configs/nsimosci_defconfig75
-rw-r--r--arch/arc/plat-arcfpga/platform.c12
3 files changed, 164 insertions, 0 deletions
diff --git a/arch/arc/boot/dts/nsimosci.dts b/arch/arc/boot/dts/nsimosci.dts
new file mode 100644
index 000000000000..ea16d782af58
--- /dev/null
+++ b/arch/arc/boot/dts/nsimosci.dts
@@ -0,0 +1,77 @@
1/*
2 * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8/dts-v1/;
9
10/include/ "skeleton.dtsi"
11
12/ {
13 compatible = "snps,nsimosci";
14 clock-frequency = <80000000>; /* 80 MHZ */
15 #address-cells = <1>;
16 #size-cells = <1>;
17 interrupt-parent = <&intc>;
18
19 chosen {
20 bootargs = "console=tty0 consoleblank=0";
21 };
22
23 aliases {
24 serial0 = &uart0;
25 };
26
27 memory {
28 device_type = "memory";
29 reg = <0x80000000 0x10000000>; /* 256M */
30 };
31
32 fpga {
33 compatible = "simple-bus";
34 #address-cells = <1>;
35 #size-cells = <1>;
36
37 /* child and parent address space 1:1 mapped */
38 ranges;
39
40 intc: interrupt-controller {
41 compatible = "snps,arc700-intc";
42 interrupt-controller;
43 #interrupt-cells = <1>;
44 };
45
46 uart0: serial@c0000000 {
47 compatible = "snps,dw-apb-uart";
48 reg = <0xc0000000 0x2000>;
49 interrupts = <11>;
50 #clock-frequency = <80000000>;
51 clock-frequency = <3686400>;
52 baud = <115200>;
53 reg-shift = <2>;
54 reg-io-width = <4>;
55 status = "okay";
56 };
57
58 pgu0: pgu@c9000000 {
59 compatible = "snps,arcpgufb";
60 reg = <0xc9000000 0x400>;
61 };
62
63 ps2: ps2@c9001000 {
64 compatible = "snps,arc_ps2";
65 reg = <0xc9000400 0x14>;
66 interrupts = <13>;
67 interrupt-names = "arc_ps2_irq";
68 };
69
70 eth0: ethernet@c0003000 {
71 compatible = "snps,oscilan";
72 reg = <0xc0003000 0x44>;
73 interrupts = <7>, <8>;
74 interrupt-names = "rx", "tx";
75 };
76 };
77};
diff --git a/arch/arc/configs/nsimosci_defconfig b/arch/arc/configs/nsimosci_defconfig
new file mode 100644
index 000000000000..446c96c24eff
--- /dev/null
+++ b/arch/arc/configs/nsimosci_defconfig
@@ -0,0 +1,75 @@
1CONFIG_CROSS_COMPILE="arc-elf32-"
2# CONFIG_LOCALVERSION_AUTO is not set
3CONFIG_DEFAULT_HOSTNAME="ARCLinux"
4# CONFIG_SWAP is not set
5CONFIG_HIGH_RES_TIMERS=y
6CONFIG_IKCONFIG=y
7CONFIG_IKCONFIG_PROC=y
8CONFIG_NAMESPACES=y
9# CONFIG_UTS_NS is not set
10# CONFIG_PID_NS is not set
11CONFIG_BLK_DEV_INITRD=y
12CONFIG_INITRAMFS_SOURCE="../arc_initramfs"
13CONFIG_KALLSYMS_ALL=y
14CONFIG_EMBEDDED=y
15# CONFIG_SLUB_DEBUG is not set
16# CONFIG_COMPAT_BRK is not set
17CONFIG_KPROBES=y
18CONFIG_MODULES=y
19# CONFIG_LBDAF is not set
20# CONFIG_BLK_DEV_BSG is not set
21# CONFIG_IOSCHED_DEADLINE is not set
22# CONFIG_IOSCHED_CFQ is not set
23CONFIG_ARC_PLAT_FPGA_LEGACY=y
24CONFIG_ARC_BOARD_ML509=y
25# CONFIG_ARC_IDE is not set
26# CONFIG_ARCTANGENT_EMAC is not set
27# CONFIG_ARC_HAS_RTSC is not set
28CONFIG_ARC_BUILTIN_DTB_NAME="nsimosci"
29# CONFIG_COMPACTION is not set
30# CONFIG_CROSS_MEMORY_ATTACH is not set
31CONFIG_NET=y
32CONFIG_PACKET=y
33CONFIG_UNIX=y
34CONFIG_UNIX_DIAG=y
35CONFIG_NET_KEY=y
36CONFIG_INET=y
37# CONFIG_IPV6 is not set
38# CONFIG_STANDALONE is not set
39# CONFIG_PREVENT_FIRMWARE_BUILD is not set
40# CONFIG_FIRMWARE_IN_KERNEL is not set
41# CONFIG_BLK_DEV is not set
42CONFIG_NETDEVICES=y
43# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
44# CONFIG_MOUSE_PS2_ALPS is not set
45# CONFIG_MOUSE_PS2_LOGIPS2PP is not set
46# CONFIG_MOUSE_PS2_SYNAPTICS is not set
47# CONFIG_MOUSE_PS2_TRACKPOINT is not set
48CONFIG_MOUSE_PS2_TOUCHKIT=y
49# CONFIG_SERIO_I8042 is not set
50# CONFIG_SERIO_SERPORT is not set
51CONFIG_SERIO_ARC_PS2=y
52# CONFIG_LEGACY_PTYS is not set
53# CONFIG_DEVKMEM is not set
54CONFIG_SERIAL_8250=y
55CONFIG_SERIAL_8250_CONSOLE=y
56CONFIG_SERIAL_8250_DW=y
57CONFIG_SERIAL_ARC=y
58CONFIG_SERIAL_ARC_CONSOLE=y
59# CONFIG_HW_RANDOM is not set
60# CONFIG_HWMON is not set
61CONFIG_FB=y
62# CONFIG_VGA_CONSOLE is not set
63CONFIG_FRAMEBUFFER_CONSOLE=y
64CONFIG_LOGO=y
65# CONFIG_HID is not set
66# CONFIG_USB_SUPPORT is not set
67# CONFIG_IOMMU_SUPPORT is not set
68CONFIG_EXT2_FS=y
69CONFIG_EXT2_FS_XATTR=y
70CONFIG_TMPFS=y
71# CONFIG_MISC_FILESYSTEMS is not set
72CONFIG_NFS_FS=y
73# CONFIG_ENABLE_WARN_DEPRECATED is not set
74# CONFIG_ENABLE_MUST_CHECK is not set
75CONFIG_XZ_DEC=y
diff --git a/arch/arc/plat-arcfpga/platform.c b/arch/arc/plat-arcfpga/platform.c
index 4e20a1a5104d..b3700c064c06 100644
--- a/arch/arc/plat-arcfpga/platform.c
+++ b/arch/arc/plat-arcfpga/platform.c
@@ -224,3 +224,15 @@ MACHINE_START(ML509, "ml509")
224 .init_smp = iss_model_init_smp, 224 .init_smp = iss_model_init_smp,
225#endif 225#endif
226MACHINE_END 226MACHINE_END
227
228static const char *nsimosci_compat[] __initdata = {
229 "snps,nsimosci",
230 NULL,
231};
232
233MACHINE_START(NSIMOSCI, "nsimosci")
234 .dt_compat = nsimosci_compat,
235 .init_early = NULL,
236 .init_machine = plat_fpga_populate_dev,
237 .init_irq = NULL,
238MACHINE_END