1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (C) 2008 Extreme Engineering Solutions, Inc. 4 * Based on MPC8572DS device tree from Freescale Semiconductor, Inc. 5 * 6 * XCalibur1501 6U CompactPCI single-board computer based on MPC8572E 7 */ 8 9/dts-v1/; 10/ { 11 model = "xes,xcalibur1501"; 12 compatible = "xes,xcalibur1501", "xes,MPC8572"; 13 #address-cells = <2>; 14 #size-cells = <2>; 15 16 aliases { 17 ethernet0 = &enet0; 18 ethernet1 = &enet1; 19 ethernet2 = &enet2; 20 ethernet3 = &enet3; 21 serial0 = &serial0; 22 serial1 = &serial1; 23 pci2 = &pci2; 24 }; 25 26 cpus { 27 #address-cells = <1>; 28 #size-cells = <0>; 29 30 PowerPC,8572@0 { 31 device_type = "cpu"; 32 reg = <0x0>; 33 d-cache-line-size = <32>; // 32 bytes 34 i-cache-line-size = <32>; // 32 bytes 35 d-cache-size = <0x8000>; // L1, 32K 36 i-cache-size = <0x8000>; // L1, 32K 37 timebase-frequency = <0>; 38 bus-frequency = <0>; 39 clock-frequency = <0>; 40 next-level-cache = <&L2>; 41 }; 42 43 PowerPC,8572@1 { 44 device_type = "cpu"; 45 reg = <0x1>; 46 d-cache-line-size = <32>; // 32 bytes 47 i-cache-line-size = <32>; // 32 bytes 48 d-cache-size = <0x8000>; // L1, 32K 49 i-cache-size = <0x8000>; // L1, 32K 50 timebase-frequency = <0>; 51 bus-frequency = <0>; 52 clock-frequency = <0>; 53 next-level-cache = <&L2>; 54 }; 55 }; 56 57 memory { 58 device_type = "memory"; 59 reg = <0x0 0x0 0x0 0x0>; // Filled in by U-Boot 60 }; 61 62 localbus@ef005000 { 63 #address-cells = <2>; 64 #size-cells = <1>; 65 compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus"; 66 reg = <0 0xef005000 0 0x1000>; 67 interrupts = <19 2>; 68 interrupt-parent = <&mpic>; 69 /* Local bus region mappings */ 70 ranges = <0 0 0 0xf8000000 0x8000000 /* CS0: Flash 1 */ 71 1 0 0 0xf0000000 0x8000000 /* CS1: Flash 2 */ 72 2 0 0 0xef800000 0x40000 /* CS2: NAND CE1 */ 73 3 0 0 0xef840000 0x40000 /* CS3: NAND CE2 */ 74 4 0 0 0xe9000000 0x100000>; /* CS4: USB */ 75 76 nor-boot@0,0 { 77 compatible = "amd,s29gl01gp", "cfi-flash"; 78 bank-width = <2>; 79 reg = <0 0 0x8000000>; /* 128MB */ 80 #address-cells = <1>; 81 #size-cells = <1>; 82 partition@0 { 83 label = "Primary user space"; 84 reg = <0x00000000 0x6f00000>; /* 111 MB */ 85 }; 86 partition@6f00000 { 87 label = "Primary kernel"; 88 reg = <0x6f00000 0x1000000>; /* 16 MB */ 89 }; 90 partition@7f00000 { 91 label = "Primary DTB"; 92 reg = <0x7f00000 0x40000>; /* 256 KB */ 93 }; 94 partition@7f40000 { 95 label = "Primary U-Boot environment"; 96 reg = <0x7f40000 0x40000>; /* 256 KB */ 97 }; 98 partition@7f80000 { 99 label = "Primary U-Boot"; 100 reg = <0x7f80000 0x80000>; /* 512 KB */ 101 read-only; 102 }; 103 }; 104 105 nor-alternate@1,0 { 106 compatible = "amd,s29gl01gp", "cfi-flash"; 107 bank-width = <2>; 108 //reg = <0xf0000000 0x08000000>; /* 128MB */ 109 reg = <1 0 0x8000000>; /* 128MB */ 110 #address-cells = <1>; 111 #size-cells = <1>; 112 partition@0 { 113 label = "Secondary user space"; 114 reg = <0x00000000 0x6f00000>; /* 111 MB */ 115 }; 116 partition@6f00000 { 117 label = "Secondary kernel"; 118 reg = <0x6f00000 0x1000000>; /* 16 MB */ 119 }; 120 partition@7f00000 { 121 label = "Secondary DTB"; 122 reg = <0x7f00000 0x40000>; /* 256 KB */ 123 }; 124 partition@7f40000 { 125 label = "Secondary U-Boot environment"; 126 reg = <0x7f40000 0x40000>; /* 256 KB */ 127 }; 128 partition@7f80000 { 129 label = "Secondary U-Boot"; 130 reg = <0x7f80000 0x80000>; /* 512 KB */ 131 read-only; 132 }; 133 }; 134 135 nand@2,0 { 136 #address-cells = <1>; 137 #size-cells = <1>; 138 /* 139 * Actual part could be ST Micro NAND08GW3B2A (1 GB), 140 * Micron MT29F8G08DAA (2x 512 MB), or Micron 141 * MT29F16G08FAA (2x 1 GB), depending on the build 142 * configuration 143 */ 144 compatible = "fsl,mpc8572-fcm-nand", 145 "fsl,elbc-fcm-nand"; 146 reg = <2 0 0x40000>; 147 /* U-Boot should fix this up if chip size > 1 GB */ 148 partition@0 { 149 label = "NAND Filesystem"; 150 reg = <0 0x40000000>; 151 }; 152 }; 153 154 usb@4,0 { 155 compatible = "nxp,usb-isp1761"; 156 reg = <4 0 0x100000>; 157 bus-width = <32>; 158 interrupt-parent = <&mpic>; 159 interrupts = <10 1>; 160 }; 161 }; 162 163 soc8572@ef000000 { 164 #address-cells = <1>; 165 #size-cells = <1>; 166 device_type = "soc"; 167 compatible = "fsl,mpc8572-immr", "simple-bus"; 168 ranges = <0x0 0 0xef000000 0x100000>; 169 bus-frequency = <0>; // Filled out by uboot. 170 171 ecm-law@0 { 172 compatible = "fsl,ecm-law"; 173 reg = <0x0 0x1000>; 174 fsl,num-laws = <12>; 175 }; 176 177 ecm@1000 { 178 compatible = "fsl,mpc8572-ecm", "fsl,ecm"; 179 reg = <0x1000 0x1000>; 180 interrupts = <17 2>; 181 interrupt-parent = <&mpic>; 182 }; 183 184 memory-controller@2000 { 185 compatible = "fsl,mpc8572-memory-controller"; 186 reg = <0x2000 0x1000>; 187 interrupt-parent = <&mpic>; 188 interrupts = <18 2>; 189 }; 190 191 memory-controller@6000 { 192 compatible = "fsl,mpc8572-memory-controller"; 193 reg = <0x6000 0x1000>; 194 interrupt-parent = <&mpic>; 195 interrupts = <18 2>; 196 }; 197 198 L2: l2-cache-controller@20000 { 199 compatible = "fsl,mpc8572-l2-cache-controller"; 200 reg = <0x20000 0x1000>; 201 cache-line-size = <32>; // 32 bytes 202 cache-size = <0x100000>; // L2, 1M 203 interrupt-parent = <&mpic>; 204 interrupts = <16 2>; 205 }; 206 207 i2c@3000 { 208 #address-cells = <1>; 209 #size-cells = <0>; 210 cell-index = <0>; 211 compatible = "fsl-i2c"; 212 reg = <0x3000 0x100>; 213 interrupts = <43 2>; 214 interrupt-parent = <&mpic>; 215 dfsrr; 216 217 temp-sensor@48 { 218 compatible = "dallas,ds1631", "dallas,ds1621"; 219 reg = <0x48>; 220 }; 221 222 temp-sensor@4c { 223 compatible = "adi,adt7461"; 224 reg = <0x4c>; 225 }; 226 227 cpu-supervisor@51 { 228 compatible = "dallas,ds4510"; 229 reg = <0x51>; 230 }; 231 232 eeprom@54 { 233 compatible = "atmel,at24c128b"; 234 reg = <0x54>; 235 }; 236 237 rtc@68 { 238 compatible = "st,m41t00", 239 "dallas,ds1338"; 240 reg = <0x68>; 241 }; 242 243 pcie-switch@6a { 244 compatible = "plx,pex8648"; 245 reg = <0x6a>; 246 }; 247 248 /* On-board signals for VID, flash, serial */ 249 gpio1: gpio@18 { 250 compatible = "nxp,pca9557"; 251 reg = <0x18>; 252 #gpio-cells = <2>; 253 gpio-controller; 254 polarity = <0x00>; 255 }; 256 257 /* PMC0/XMC0 signals */ 258 gpio2: gpio@1c { 259 compatible = "nxp,pca9557"; 260 reg = <0x1c>; 261 #gpio-cells = <2>; 262 gpio-controller; 263 polarity = <0x00>; 264 }; 265 266 /* PMC1/XMC1 signals */ 267 gpio3: gpio@1d { 268 compatible = "nxp,pca9557"; 269 reg = <0x1d>; 270 #gpio-cells = <2>; 271 gpio-controller; 272 polarity = <0x00>; 273 }; 274 275 /* CompactPCI signals (sysen, GA[4:0]) */ 276 gpio4: gpio@1e { 277 compatible = "nxp,pca9557"; 278 reg = <0x1e>; 279 #gpio-cells = <2>; 280 gpio-controller; 281 polarity = <0x00>; 282 }; 283 284 /* CompactPCI J5 GPIO and FAL/DEG/PRST */ 285 gpio5: gpio@1f { 286 compatible = "nxp,pca9557"; 287 reg = <0x1f>; 288 #gpio-cells = <2>; 289 gpio-controller; 290 polarity = <0x00>; 291 }; 292 }; 293 294 i2c@3100 { 295 #address-cells = <1>; 296 #size-cells = <0>; 297 cell-index = <1>; 298 compatible = "fsl-i2c"; 299 reg = <0x3100 0x100>; 300 interrupts = <43 2>; 301 interrupt-parent = <&mpic>; 302 dfsrr; 303 }; 304 305 dma@c300 { 306 #address-cells = <1>; 307 #size-cells = <1>; 308 compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma"; 309 reg = <0xc300 0x4>; 310 ranges = <0x0 0xc100 0x200>; 311 cell-index = <1>; 312 dma-channel@0 { 313 compatible = "fsl,mpc8572-dma-channel", 314 "fsl,eloplus-dma-channel"; 315 reg = <0x0 0x80>; 316 cell-index = <0>; 317 interrupt-parent = <&mpic>; 318 interrupts = <76 2>; 319 }; 320 dma-channel@80 { 321 compatible = "fsl,mpc8572-dma-channel", 322 "fsl,eloplus-dma-channel"; 323 reg = <0x80 0x80>; 324 cell-index = <1>; 325 interrupt-parent = <&mpic>; 326 interrupts = <77 2>; 327 }; 328 dma-channel@100 { 329 compatible = "fsl,mpc8572-dma-channel", 330 "fsl,eloplus-dma-channel"; 331 reg = <0x100 0x80>; 332 cell-index = <2>; 333 interrupt-parent = <&mpic>; 334 interrupts = <78 2>; 335 }; 336 dma-channel@180 { 337 compatible = "fsl,mpc8572-dma-channel", 338 "fsl,eloplus-dma-channel"; 339 reg = <0x180 0x80>; 340 cell-index = <3>; 341 interrupt-parent = <&mpic>; 342 interrupts = <79 2>; 343 }; 344 }; 345 346 dma@21300 { 347 #address-cells = <1>; 348 #size-cells = <1>; 349 compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma"; 350 reg = <0x21300 0x4>; 351 ranges = <0x0 0x21100 0x200>; 352 cell-index = <0>; 353 dma-channel@0 { 354 compatible = "fsl,mpc8572-dma-channel", 355 "fsl,eloplus-dma-channel"; 356 reg = <0x0 0x80>; 357 cell-index = <0>; 358 interrupt-parent = <&mpic>; 359 interrupts = <20 2>; 360 }; 361 dma-channel@80 { 362 compatible = "fsl,mpc8572-dma-channel", 363 "fsl,eloplus-dma-channel"; 364 reg = <0x80 0x80>; 365 cell-index = <1>; 366 interrupt-parent = <&mpic>; 367 interrupts = <21 2>; 368 }; 369 dma-channel@100 { 370 compatible = "fsl,mpc8572-dma-channel", 371 "fsl,eloplus-dma-channel"; 372 reg = <0x100 0x80>; 373 cell-index = <2>; 374 interrupt-parent = <&mpic>; 375 interrupts = <22 2>; 376 }; 377 dma-channel@180 { 378 compatible = "fsl,mpc8572-dma-channel", 379 "fsl,eloplus-dma-channel"; 380 reg = <0x180 0x80>; 381 cell-index = <3>; 382 interrupt-parent = <&mpic>; 383 interrupts = <23 2>; 384 }; 385 }; 386 387 /* eTSEC 1 front panel 0 */ 388 enet0: ethernet@24000 { 389 #address-cells = <1>; 390 #size-cells = <1>; 391 cell-index = <0>; 392 device_type = "network"; 393 model = "eTSEC"; 394 compatible = "gianfar"; 395 reg = <0x24000 0x1000>; 396 ranges = <0x0 0x24000 0x1000>; 397 local-mac-address = [ 00 00 00 00 00 00 ]; 398 interrupts = <29 2 30 2 34 2>; 399 interrupt-parent = <&mpic>; 400 tbi-handle = <&tbi0>; 401 phy-handle = <&phy0>; 402 phy-connection-type = "sgmii"; 403 404 mdio@520 { 405 #address-cells = <1>; 406 #size-cells = <0>; 407 compatible = "fsl,gianfar-mdio"; 408 reg = <0x520 0x20>; 409 410 phy0: ethernet-phy@1 { 411 interrupt-parent = <&mpic>; 412 interrupts = <4 1>; 413 reg = <0x1>; 414 }; 415 phy1: ethernet-phy@2 { 416 interrupt-parent = <&mpic>; 417 interrupts = <4 1>; 418 reg = <0x2>; 419 }; 420 phy2: ethernet-phy@3 { 421 interrupt-parent = <&mpic>; 422 interrupts = <5 1>; 423 reg = <0x3>; 424 }; 425 phy3: ethernet-phy@4 { 426 interrupt-parent = <&mpic>; 427 interrupts = <5 1>; 428 reg = <0x4>; 429 }; 430 tbi0: tbi-phy@11 { 431 reg = <0x11>; 432 device_type = "tbi-phy"; 433 }; 434 }; 435 }; 436 437 /* eTSEC 2 front panel 1 */ 438 enet1: ethernet@25000 { 439 #address-cells = <1>; 440 #size-cells = <1>; 441 cell-index = <1>; 442 device_type = "network"; 443 model = "eTSEC"; 444 compatible = "gianfar"; 445 reg = <0x25000 0x1000>; 446 ranges = <0x0 0x25000 0x1000>; 447 local-mac-address = [ 00 00 00 00 00 00 ]; 448 interrupts = <35 2 36 2 40 2>; 449 interrupt-parent = <&mpic>; 450 tbi-handle = <&tbi1>; 451 phy-handle = <&phy1>; 452 phy-connection-type = "sgmii"; 453 454 mdio@520 { 455 #address-cells = <1>; 456 #size-cells = <0>; 457 compatible = "fsl,gianfar-tbi"; 458 reg = <0x520 0x20>; 459 460 tbi1: tbi-phy@11 { 461 reg = <0x11>; 462 device_type = "tbi-phy"; 463 }; 464 }; 465 }; 466 467 /* eTSEC 3 PICMG2.16 backplane port 0 */ 468 enet2: ethernet@26000 { 469 #address-cells = <1>; 470 #size-cells = <1>; 471 cell-index = <2>; 472 device_type = "network"; 473 model = "eTSEC"; 474 compatible = "gianfar"; 475 reg = <0x26000 0x1000>; 476 ranges = <0x0 0x26000 0x1000>; 477 local-mac-address = [ 00 00 00 00 00 00 ]; 478 interrupts = <31 2 32 2 33 2>; 479 interrupt-parent = <&mpic>; 480 tbi-handle = <&tbi2>; 481 phy-handle = <&phy2>; 482 phy-connection-type = "sgmii"; 483 484 mdio@520 { 485 #address-cells = <1>; 486 #size-cells = <0>; 487 compatible = "fsl,gianfar-tbi"; 488 reg = <0x520 0x20>; 489 490 tbi2: tbi-phy@11 { 491 reg = <0x11>; 492 device_type = "tbi-phy"; 493 }; 494 }; 495 }; 496 497 /* eTSEC 4 PICMG2.16 backplane port 1 */ 498 enet3: ethernet@27000 { 499 #address-cells = <1>; 500 #size-cells = <1>; 501 cell-index = <3>; 502 device_type = "network"; 503 model = "eTSEC"; 504 compatible = "gianfar"; 505 reg = <0x27000 0x1000>; 506 ranges = <0x0 0x27000 0x1000>; 507 local-mac-address = [ 00 00 00 00 00 00 ]; 508 interrupts = <37 2 38 2 39 2>; 509 interrupt-parent = <&mpic>; 510 tbi-handle = <&tbi3>; 511 phy-handle = <&phy3>; 512 phy-connection-type = "sgmii"; 513 514 mdio@520 { 515 #address-cells = <1>; 516 #size-cells = <0>; 517 compatible = "fsl,gianfar-tbi"; 518 reg = <0x520 0x20>; 519 520 tbi3: tbi-phy@11 { 521 reg = <0x11>; 522 device_type = "tbi-phy"; 523 }; 524 }; 525 }; 526 527 /* UART0 */ 528 serial0: serial@4500 { 529 cell-index = <0>; 530 device_type = "serial"; 531 compatible = "fsl,ns16550", "ns16550"; 532 reg = <0x4500 0x100>; 533 clock-frequency = <0>; 534 interrupts = <42 2>; 535 interrupt-parent = <&mpic>; 536 }; 537 538 /* UART1 */ 539 serial1: serial@4600 { 540 cell-index = <1>; 541 device_type = "serial"; 542 compatible = "fsl,ns16550", "ns16550"; 543 reg = <0x4600 0x100>; 544 clock-frequency = <0>; 545 interrupts = <42 2>; 546 interrupt-parent = <&mpic>; 547 }; 548 549 global-utilities@e0000 { //global utilities block 550 compatible = "fsl,mpc8572-guts"; 551 reg = <0xe0000 0x1000>; 552 fsl,has-rstcr; 553 }; 554 555 msi@41600 { 556 compatible = "fsl,mpc8572-msi", "fsl,mpic-msi"; 557 reg = <0x41600 0x80>; 558 msi-available-ranges = <0 0x100>; 559 interrupts = < 560 0xe0 0 561 0xe1 0 562 0xe2 0 563 0xe3 0 564 0xe4 0 565 0xe5 0 566 0xe6 0 567 0xe7 0>; 568 interrupt-parent = <&mpic>; 569 }; 570 571 crypto@30000 { 572 compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2", 573 "fsl,sec2.1", "fsl,sec2.0"; 574 reg = <0x30000 0x10000>; 575 interrupts = <45 2 58 2>; 576 interrupt-parent = <&mpic>; 577 fsl,num-channels = <4>; 578 fsl,channel-fifo-len = <24>; 579 fsl,exec-units-mask = <0x9fe>; 580 fsl,descriptor-types-mask = <0x3ab0ebf>; 581 }; 582 583 mpic: pic@40000 { 584 interrupt-controller; 585 #address-cells = <0>; 586 #interrupt-cells = <2>; 587 reg = <0x40000 0x40000>; 588 compatible = "chrp,open-pic"; 589 device_type = "open-pic"; 590 }; 591 592 gpio0: gpio@f000 { 593 compatible = "fsl,mpc8572-gpio"; 594 reg = <0xf000 0x1000>; 595 interrupts = <47 2>; 596 interrupt-parent = <&mpic>; 597 #gpio-cells = <2>; 598 gpio-controller; 599 }; 600 601 gpio-leds { 602 compatible = "gpio-leds"; 603 604 heartbeat { 605 label = "Heartbeat"; 606 gpios = <&gpio0 4 1>; 607 linux,default-trigger = "heartbeat"; 608 }; 609 610 yellow { 611 label = "Yellow"; 612 gpios = <&gpio0 5 1>; 613 }; 614 615 red { 616 label = "Red"; 617 gpios = <&gpio0 6 1>; 618 }; 619 620 green { 621 label = "Green"; 622 gpios = <&gpio0 7 1>; 623 }; 624 }; 625 626 /* PME (pattern-matcher) */ 627 pme@10000 { 628 compatible = "fsl,mpc8572-pme", "pme8572"; 629 reg = <0x10000 0x5000>; 630 interrupts = <57 2 64 2 65 2 66 2 67 2>; 631 interrupt-parent = <&mpic>; 632 }; 633 634 tlu@2f000 { 635 compatible = "fsl,mpc8572-tlu", "fsl_tlu"; 636 reg = <0x2f000 0x1000>; 637 interrupts = <61 2>; 638 interrupt-parent = <&mpic>; 639 }; 640 641 tlu@15000 { 642 compatible = "fsl,mpc8572-tlu", "fsl_tlu"; 643 reg = <0x15000 0x1000>; 644 interrupts = <75 2>; 645 interrupt-parent = <&mpic>; 646 }; 647 }; 648 649 /* 650 * PCI Express controller 3 @ ef008000 is not used. 651 * This would have been pci0 on other mpc85xx platforms. 652 * 653 * PCI Express controller 2 @ ef009000 is not used. 654 * This would have been pci1 on other mpc85xx platforms. 655 */ 656 657 /* PCI Express controller 1, wired to PEX8648 PCIe switch */ 658 pci2: pcie@ef00a000 { 659 compatible = "fsl,mpc8548-pcie"; 660 device_type = "pci"; 661 #interrupt-cells = <1>; 662 #size-cells = <2>; 663 #address-cells = <3>; 664 reg = <0 0xef00a000 0 0x1000>; 665 bus-range = <0 255>; 666 ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x40000000 667 0x1000000 0x0 0x00000000 0 0xe8000000 0x0 0x10000>; 668 clock-frequency = <33333333>; 669 interrupt-parent = <&mpic>; 670 interrupts = <26 2>; 671 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 672 interrupt-map = < 673 /* IDSEL 0x0 */ 674 0x0 0x0 0x0 0x1 &mpic 0x0 0x1 675 0x0 0x0 0x0 0x2 &mpic 0x1 0x1 676 0x0 0x0 0x0 0x3 &mpic 0x2 0x1 677 0x0 0x0 0x0 0x4 &mpic 0x3 0x1 678 >; 679 pcie@0 { 680 reg = <0x0 0x0 0x0 0x0 0x0>; 681 #size-cells = <2>; 682 #address-cells = <3>; 683 device_type = "pci"; 684 ranges = <0x2000000 0x0 0x80000000 685 0x2000000 0x0 0x80000000 686 0x0 0x40000000 687 688 0x1000000 0x0 0x0 689 0x1000000 0x0 0x0 690 0x0 0x100000>; 691 }; 692 }; 693}; 694