diff options
-rw-r--r-- | arch/mips/netlogic/Kconfig | 9 | ||||
-rw-r--r-- | arch/mips/netlogic/dts/Makefile | 1 | ||||
-rw-r--r-- | arch/mips/netlogic/dts/xlp_gvp.dts | 76 | ||||
-rw-r--r-- | arch/mips/netlogic/xlp/dt.c | 7 |
4 files changed, 92 insertions, 1 deletions
diff --git a/arch/mips/netlogic/Kconfig b/arch/mips/netlogic/Kconfig index 852a4ee09954..4eb683aef7d7 100644 --- a/arch/mips/netlogic/Kconfig +++ b/arch/mips/netlogic/Kconfig | |||
@@ -28,6 +28,15 @@ config DT_XLP_FVP | |||
28 | pointer to the kernel. The corresponding DTS file is at | 28 | pointer to the kernel. The corresponding DTS file is at |
29 | arch/mips/netlogic/dts/xlp_fvp.dts | 29 | arch/mips/netlogic/dts/xlp_fvp.dts |
30 | 30 | ||
31 | config DT_XLP_GVP | ||
32 | bool "Built-in device tree for XLP GVP boards" | ||
33 | default y | ||
34 | help | ||
35 | Add an FDT blob for XLP GVP board into the kernel. | ||
36 | This DTB will be used if the firmware does not pass in a DTB | ||
37 | pointer to the kernel. The corresponding DTS file is at | ||
38 | arch/mips/netlogic/dts/xlp_gvp.dts | ||
39 | |||
31 | config NLM_MULTINODE | 40 | config NLM_MULTINODE |
32 | bool "Support for multi-chip boards" | 41 | bool "Support for multi-chip boards" |
33 | depends on NLM_XLP_BOARD | 42 | depends on NLM_XLP_BOARD |
diff --git a/arch/mips/netlogic/dts/Makefile b/arch/mips/netlogic/dts/Makefile index 0b9be5fd2e46..25c8e873ee25 100644 --- a/arch/mips/netlogic/dts/Makefile +++ b/arch/mips/netlogic/dts/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | obj-$(CONFIG_DT_XLP_EVP) := xlp_evp.dtb.o | 1 | obj-$(CONFIG_DT_XLP_EVP) := xlp_evp.dtb.o |
2 | obj-$(CONFIG_DT_XLP_SVP) += xlp_svp.dtb.o | 2 | obj-$(CONFIG_DT_XLP_SVP) += xlp_svp.dtb.o |
3 | obj-$(CONFIG_DT_XLP_FVP) += xlp_fvp.dtb.o | 3 | obj-$(CONFIG_DT_XLP_FVP) += xlp_fvp.dtb.o |
4 | obj-$(CONFIG_DT_XLP_GVP) += xlp_gvp.dtb.o | ||
diff --git a/arch/mips/netlogic/dts/xlp_gvp.dts b/arch/mips/netlogic/dts/xlp_gvp.dts new file mode 100644 index 000000000000..047d27f54487 --- /dev/null +++ b/arch/mips/netlogic/dts/xlp_gvp.dts | |||
@@ -0,0 +1,76 @@ | |||
1 | /* | ||
2 | * XLP9XX Device Tree Source for GVP boards | ||
3 | */ | ||
4 | |||
5 | /dts-v1/; | ||
6 | / { | ||
7 | model = "netlogic,XLP-GVP"; | ||
8 | compatible = "netlogic,xlp"; | ||
9 | #address-cells = <2>; | ||
10 | #size-cells = <2>; | ||
11 | |||
12 | soc { | ||
13 | #address-cells = <2>; | ||
14 | #size-cells = <1>; | ||
15 | compatible = "simple-bus"; | ||
16 | ranges = <0 0 0 0x18000000 0x04000000 // PCIe CFG | ||
17 | 1 0 0 0x16000000 0x02000000>; // GBU chipselects | ||
18 | |||
19 | serial0: serial@30000 { | ||
20 | device_type = "serial"; | ||
21 | compatible = "ns16550"; | ||
22 | reg = <0 0x112100 0xa00>; | ||
23 | reg-shift = <2>; | ||
24 | reg-io-width = <4>; | ||
25 | clock-frequency = <125000000>; | ||
26 | interrupt-parent = <&pic>; | ||
27 | interrupts = <17>; | ||
28 | }; | ||
29 | pic: pic@4000 { | ||
30 | interrupt-controller; | ||
31 | #address-cells = <0>; | ||
32 | #interrupt-cells = <1>; | ||
33 | reg = <0 0x110000 0x200>; | ||
34 | }; | ||
35 | |||
36 | nor_flash@1,0 { | ||
37 | compatible = "cfi-flash"; | ||
38 | #address-cells = <1>; | ||
39 | #size-cells = <1>; | ||
40 | bank-width = <2>; | ||
41 | reg = <1 0 0x1000000>; | ||
42 | |||
43 | partition@0 { | ||
44 | label = "x-loader"; | ||
45 | reg = <0x0 0x100000>; /* 1M */ | ||
46 | read-only; | ||
47 | }; | ||
48 | |||
49 | partition@100000 { | ||
50 | label = "u-boot"; | ||
51 | reg = <0x100000 0x100000>; /* 1M */ | ||
52 | }; | ||
53 | |||
54 | partition@200000 { | ||
55 | label = "kernel"; | ||
56 | reg = <0x200000 0x500000>; /* 5M */ | ||
57 | }; | ||
58 | |||
59 | partition@700000 { | ||
60 | label = "rootfs"; | ||
61 | reg = <0x700000 0x800000>; /* 8M */ | ||
62 | }; | ||
63 | |||
64 | partition@f00000 { | ||
65 | label = "env"; | ||
66 | reg = <0xf00000 0x100000>; /* 1M */ | ||
67 | read-only; | ||
68 | }; | ||
69 | }; | ||
70 | |||
71 | }; | ||
72 | |||
73 | chosen { | ||
74 | bootargs = "console=ttyS0,115200 rdinit=/sbin/init"; | ||
75 | }; | ||
76 | }; | ||
diff --git a/arch/mips/netlogic/xlp/dt.c b/arch/mips/netlogic/xlp/dt.c index 8316d5454b17..5754097b9cde 100644 --- a/arch/mips/netlogic/xlp/dt.c +++ b/arch/mips/netlogic/xlp/dt.c | |||
@@ -42,13 +42,18 @@ | |||
42 | #include <asm/prom.h> | 42 | #include <asm/prom.h> |
43 | 43 | ||
44 | extern u32 __dtb_xlp_evp_begin[], __dtb_xlp_svp_begin[], | 44 | extern u32 __dtb_xlp_evp_begin[], __dtb_xlp_svp_begin[], |
45 | __dtb_xlp_fvp_begin[], __dtb_start[]; | 45 | __dtb_xlp_fvp_begin[], __dtb_xlp_gvp_begin[], __dtb_start[]; |
46 | static void *xlp_fdt_blob; | 46 | static void *xlp_fdt_blob; |
47 | 47 | ||
48 | void __init *xlp_dt_init(void *fdtp) | 48 | void __init *xlp_dt_init(void *fdtp) |
49 | { | 49 | { |
50 | if (!fdtp) { | 50 | if (!fdtp) { |
51 | switch (current_cpu_data.processor_id & 0xff00) { | 51 | switch (current_cpu_data.processor_id & 0xff00) { |
52 | #ifdef CONFIG_DT_XLP_GVP | ||
53 | case PRID_IMP_NETLOGIC_XLP9XX: | ||
54 | fdtp = __dtb_xlp_gvp_begin; | ||
55 | break; | ||
56 | #endif | ||
52 | #ifdef CONFIG_DT_XLP_FVP | 57 | #ifdef CONFIG_DT_XLP_FVP |
53 | case PRID_IMP_NETLOGIC_XLP2XX: | 58 | case PRID_IMP_NETLOGIC_XLP2XX: |
54 | fdtp = __dtb_xlp_fvp_begin; | 59 | fdtp = __dtb_xlp_fvp_begin; |