0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /*
0003 * Device Tree Source for AMCC Arches (dual 460GT board)
0004 *
0005 * (C) Copyright 2008 Applied Micro Circuits Corporation
0006 * Victor Gallardo <vgallardo@amcc.com>
0007 * Adam Graham <agraham@amcc.com>
0008 *
0009 * Based on the glacier.dts file
0010 * Stefan Roese <sr@denx.de>
0011 * Copyright 2008 DENX Software Engineering
0012 *
0013 * See file CREDITS for list of people who contributed to this
0014 * project.
0015 */
0016
0017 /dts-v1/;
0018
0019 / {
0020 #address-cells = <2>;
0021 #size-cells = <1>;
0022 model = "amcc,arches";
0023 compatible = "amcc,arches";
0024 dcr-parent = <&{/cpus/cpu@0}>;
0025
0026 aliases {
0027 ethernet0 = &EMAC0;
0028 ethernet1 = &EMAC1;
0029 ethernet2 = &EMAC2;
0030 serial0 = &UART0;
0031 };
0032
0033 cpus {
0034 #address-cells = <1>;
0035 #size-cells = <0>;
0036
0037 cpu@0 {
0038 device_type = "cpu";
0039 model = "PowerPC,460GT";
0040 reg = <0x00000000>;
0041 clock-frequency = <0>; /* Filled in by U-Boot */
0042 timebase-frequency = <0>; /* Filled in by U-Boot */
0043 i-cache-line-size = <32>;
0044 d-cache-line-size = <32>;
0045 i-cache-size = <32768>;
0046 d-cache-size = <32768>;
0047 dcr-controller;
0048 dcr-access-method = "native";
0049 next-level-cache = <&L2C0>;
0050 };
0051 };
0052
0053 memory {
0054 device_type = "memory";
0055 reg = <0x00000000 0x00000000 0x00000000>; /* Filled in by U-Boot */
0056 };
0057
0058 UIC0: interrupt-controller0 {
0059 compatible = "ibm,uic-460gt","ibm,uic";
0060 interrupt-controller;
0061 cell-index = <0>;
0062 dcr-reg = <0x0c0 0x009>;
0063 #address-cells = <0>;
0064 #size-cells = <0>;
0065 #interrupt-cells = <2>;
0066 };
0067
0068 UIC1: interrupt-controller1 {
0069 compatible = "ibm,uic-460gt","ibm,uic";
0070 interrupt-controller;
0071 cell-index = <1>;
0072 dcr-reg = <0x0d0 0x009>;
0073 #address-cells = <0>;
0074 #size-cells = <0>;
0075 #interrupt-cells = <2>;
0076 interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
0077 interrupt-parent = <&UIC0>;
0078 };
0079
0080 UIC2: interrupt-controller2 {
0081 compatible = "ibm,uic-460gt","ibm,uic";
0082 interrupt-controller;
0083 cell-index = <2>;
0084 dcr-reg = <0x0e0 0x009>;
0085 #address-cells = <0>;
0086 #size-cells = <0>;
0087 #interrupt-cells = <2>;
0088 interrupts = <0xa 0x4 0xb 0x4>; /* cascade */
0089 interrupt-parent = <&UIC0>;
0090 };
0091
0092 UIC3: interrupt-controller3 {
0093 compatible = "ibm,uic-460gt","ibm,uic";
0094 interrupt-controller;
0095 cell-index = <3>;
0096 dcr-reg = <0x0f0 0x009>;
0097 #address-cells = <0>;
0098 #size-cells = <0>;
0099 #interrupt-cells = <2>;
0100 interrupts = <0x10 0x4 0x11 0x4>; /* cascade */
0101 interrupt-parent = <&UIC0>;
0102 };
0103
0104 SDR0: sdr {
0105 compatible = "ibm,sdr-460gt";
0106 dcr-reg = <0x00e 0x002>;
0107 };
0108
0109 CPR0: cpr {
0110 compatible = "ibm,cpr-460gt";
0111 dcr-reg = <0x00c 0x002>;
0112 };
0113
0114 L2C0: l2c {
0115 compatible = "ibm,l2-cache-460gt", "ibm,l2-cache";
0116 dcr-reg = <0x020 0x008 /* Internal SRAM DCR's */
0117 0x030 0x008>; /* L2 cache DCR's */
0118 cache-line-size = <32>; /* 32 bytes */
0119 cache-size = <262144>; /* L2, 256K */
0120 interrupt-parent = <&UIC1>;
0121 interrupts = <11 1>;
0122 };
0123
0124 plb {
0125 compatible = "ibm,plb-460gt", "ibm,plb4";
0126 #address-cells = <2>;
0127 #size-cells = <1>;
0128 ranges;
0129 clock-frequency = <0>; /* Filled in by U-Boot */
0130
0131 SDRAM0: sdram {
0132 compatible = "ibm,sdram-460gt", "ibm,sdram-405gp";
0133 dcr-reg = <0x010 0x002>;
0134 };
0135
0136 CRYPTO: crypto@180000 {
0137 compatible = "amcc,ppc460gt-crypto", "amcc,ppc4xx-crypto";
0138 reg = <4 0x00180000 0x80400>;
0139 interrupt-parent = <&UIC0>;
0140 interrupts = <0x1d 0x4>;
0141 };
0142
0143 MAL0: mcmal {
0144 compatible = "ibm,mcmal-460gt", "ibm,mcmal2";
0145 dcr-reg = <0x180 0x062>;
0146 num-tx-chans = <3>;
0147 num-rx-chans = <24>;
0148 #address-cells = <0>;
0149 #size-cells = <0>;
0150 interrupt-parent = <&UIC2>;
0151 interrupts = < /*TXEOB*/ 0x6 0x4
0152 /*RXEOB*/ 0x7 0x4
0153 /*SERR*/ 0x3 0x4
0154 /*TXDE*/ 0x4 0x4
0155 /*RXDE*/ 0x5 0x4>;
0156 desc-base-addr-high = <0x8>;
0157 };
0158
0159 POB0: opb {
0160 compatible = "ibm,opb-460gt", "ibm,opb";
0161 #address-cells = <1>;
0162 #size-cells = <1>;
0163 ranges = <0xb0000000 0x00000004 0xb0000000 0x50000000>;
0164 clock-frequency = <0>; /* Filled in by U-Boot */
0165
0166 EBC0: ebc {
0167 compatible = "ibm,ebc-460gt", "ibm,ebc";
0168 dcr-reg = <0x012 0x002>;
0169 #address-cells = <2>;
0170 #size-cells = <1>;
0171 clock-frequency = <0>; /* Filled in by U-Boot */
0172 /* ranges property is supplied by U-Boot */
0173 interrupts = <0x6 0x4>;
0174 interrupt-parent = <&UIC1>;
0175
0176 nor_flash@0,0 {
0177 compatible = "amd,s29gl256n", "cfi-flash";
0178 bank-width = <2>;
0179 reg = <0x00000000 0x00000000 0x02000000>;
0180 #address-cells = <1>;
0181 #size-cells = <1>;
0182 partition@0 {
0183 label = "kernel";
0184 reg = <0x00000000 0x001e0000>;
0185 };
0186 partition@1e0000 {
0187 label = "dtb";
0188 reg = <0x001e0000 0x00020000>;
0189 };
0190 partition@200000 {
0191 label = "root";
0192 reg = <0x00200000 0x00200000>;
0193 };
0194 partition@400000 {
0195 label = "user";
0196 reg = <0x00400000 0x01b60000>;
0197 };
0198 partition@1f60000 {
0199 label = "env";
0200 reg = <0x01f60000 0x00040000>;
0201 };
0202 partition@1fa0000 {
0203 label = "u-boot";
0204 reg = <0x01fa0000 0x00060000>;
0205 };
0206 };
0207 };
0208
0209 UART0: serial@ef600300 {
0210 device_type = "serial";
0211 compatible = "ns16550";
0212 reg = <0xef600300 0x00000008>;
0213 virtual-reg = <0xef600300>;
0214 clock-frequency = <0>; /* Filled in by U-Boot */
0215 current-speed = <0>; /* Filled in by U-Boot */
0216 interrupt-parent = <&UIC1>;
0217 interrupts = <0x1 0x4>;
0218 };
0219
0220 IIC0: i2c@ef600700 {
0221 compatible = "ibm,iic-460gt", "ibm,iic";
0222 reg = <0xef600700 0x00000014>;
0223 interrupt-parent = <&UIC0>;
0224 interrupts = <0x2 0x4>;
0225 #address-cells = <1>;
0226 #size-cells = <0>;
0227 sttm@4a {
0228 compatible = "ad,ad7414";
0229 reg = <0x4a>;
0230 interrupt-parent = <&UIC1>;
0231 interrupts = <0x0 0x8>;
0232 };
0233 };
0234
0235 IIC1: i2c@ef600800 {
0236 compatible = "ibm,iic-460gt", "ibm,iic";
0237 reg = <0xef600800 0x00000014>;
0238 interrupt-parent = <&UIC0>;
0239 interrupts = <0x3 0x4>;
0240 };
0241
0242 TAH0: emac-tah@ef601350 {
0243 compatible = "ibm,tah-460gt", "ibm,tah";
0244 reg = <0xef601350 0x00000030>;
0245 };
0246
0247 TAH1: emac-tah@ef601450 {
0248 compatible = "ibm,tah-460gt", "ibm,tah";
0249 reg = <0xef601450 0x00000030>;
0250 };
0251
0252 EMAC0: ethernet@ef600e00 {
0253 device_type = "network";
0254 compatible = "ibm,emac-460gt", "ibm,emac4sync";
0255 interrupt-parent = <&EMAC0>;
0256 interrupts = <0x0 0x1>;
0257 #interrupt-cells = <1>;
0258 #address-cells = <0>;
0259 #size-cells = <0>;
0260 interrupt-map = </*Status*/ 0x0 &UIC2 0x10 0x4
0261 /*Wake*/ 0x1 &UIC2 0x14 0x4>;
0262 reg = <0xef600e00 0x000000c4>;
0263 local-mac-address = [000000000000]; /* Filled in by U-Boot */
0264 mal-device = <&MAL0>;
0265 mal-tx-channel = <0>;
0266 mal-rx-channel = <0>;
0267 cell-index = <0>;
0268 max-frame-size = <9000>;
0269 rx-fifo-size = <4096>;
0270 tx-fifo-size = <2048>;
0271 rx-fifo-size-gige = <16384>;
0272 phy-mode = "sgmii";
0273 phy-map = <0xffffffff>;
0274 gpcs-address = <0x0000000a>;
0275 tah-device = <&TAH0>;
0276 tah-channel = <0>;
0277 has-inverted-stacr-oc;
0278 has-new-stacr-staopc;
0279 };
0280
0281 EMAC1: ethernet@ef600f00 {
0282 device_type = "network";
0283 compatible = "ibm,emac-460gt", "ibm,emac4sync";
0284 interrupt-parent = <&EMAC1>;
0285 interrupts = <0x0 0x1>;
0286 #interrupt-cells = <1>;
0287 #address-cells = <0>;
0288 #size-cells = <0>;
0289 interrupt-map = </*Status*/ 0x0 &UIC2 0x11 0x4
0290 /*Wake*/ 0x1 &UIC2 0x15 0x4>;
0291 reg = <0xef600f00 0x000000c4>;
0292 local-mac-address = [000000000000]; /* Filled in by U-Boot */
0293 mal-device = <&MAL0>;
0294 mal-tx-channel = <1>;
0295 mal-rx-channel = <8>;
0296 cell-index = <1>;
0297 max-frame-size = <9000>;
0298 rx-fifo-size = <4096>;
0299 tx-fifo-size = <2048>;
0300 rx-fifo-size-gige = <16384>;
0301 phy-mode = "sgmii";
0302 phy-map = <0x00000000>;
0303 gpcs-address = <0x0000000b>;
0304 tah-device = <&TAH1>;
0305 tah-channel = <1>;
0306 has-inverted-stacr-oc;
0307 has-new-stacr-staopc;
0308 mdio-device = <&EMAC0>;
0309 };
0310
0311 EMAC2: ethernet@ef601100 {
0312 device_type = "network";
0313 compatible = "ibm,emac-460gt", "ibm,emac4sync";
0314 interrupt-parent = <&EMAC2>;
0315 interrupts = <0x0 0x1>;
0316 #interrupt-cells = <1>;
0317 #address-cells = <0>;
0318 #size-cells = <0>;
0319 interrupt-map = </*Status*/ 0x0 &UIC2 0x12 0x4
0320 /*Wake*/ 0x1 &UIC2 0x16 0x4>;
0321 reg = <0xef601100 0x000000c4>;
0322 local-mac-address = [000000000000]; /* Filled in by U-Boot */
0323 mal-device = <&MAL0>;
0324 mal-tx-channel = <2>;
0325 mal-rx-channel = <16>;
0326 cell-index = <2>;
0327 max-frame-size = <9000>;
0328 rx-fifo-size = <4096>;
0329 tx-fifo-size = <2048>;
0330 rx-fifo-size-gige = <16384>;
0331 tx-fifo-size-gige = <16384>; /* emac2&3 only */
0332 phy-mode = "sgmii";
0333 phy-map = <0x00000001>;
0334 gpcs-address = <0x0000000C>;
0335 has-inverted-stacr-oc;
0336 has-new-stacr-staopc;
0337 mdio-device = <&EMAC0>;
0338 };
0339 };
0340 };
0341 };