118334Speter/* 218334Speter * Device Tree Source for IBM Ebony 318334Speter * 418334Speter * Copyright (c) 2006, 2007 IBM Corp. 518334Speter * Josh Boyer <jwboyer@linux.vnet.ibm.com>, David Gibson <dwg@au1.ibm.com> 618334Speter * 7132718Skan * FIXME: Draft only! 8132718Skan * 990075Sobrien * This file is licensed under the terms of the GNU General Public 1018334Speter * License version 2. This program is licensed "as is" without 1190075Sobrien * any warranty of any kind, whether express or implied. 1218334Speter */ 1318334Speter 1418334Speter/dts-v1/; 1518334Speter 1690075Sobrien/ { 1718334Speter #address-cells = <2>; 1818334Speter #size-cells = <1>; 1918334Speter model = "ibm,ebony"; 2018334Speter compatible = "ibm,ebony"; 2118334Speter dcr-parent = <&{/cpus/cpu@0}>; 2290075Sobrien 23169689Skan aliases { 24169689Skan ethernet0 = &EMAC0; 2518334Speter ethernet1 = &EMAC1; 2618334Speter serial0 = &UART0; 2790075Sobrien serial1 = &UART1; 2818334Speter }; 2918334Speter 3018334Speter cpus { 3118334Speter #address-cells = <1>; 3218334Speter #size-cells = <0>; 3318334Speter 3418334Speter cpu@0 { 3518334Speter device_type = "cpu"; 3618334Speter model = "PowerPC,440GP"; 3718334Speter reg = <0x00000000>; 3818334Speter clock-frequency = <0>; // Filled in by zImage 3918334Speter timebase-frequency = <0>; // Filled in by zImage 4018334Speter i-cache-line-size = <32>; 4118334Speter d-cache-line-size = <32>; 4218334Speter i-cache-size = <32768>; /* 32 kB */ 4318334Speter d-cache-size = <32768>; /* 32 kB */ 4418334Speter dcr-controller; 4518334Speter dcr-access-method = "native"; 4618334Speter }; 4718334Speter }; 4818334Speter 4918334Speter memory { 5018334Speter device_type = "memory"; 5118334Speter reg = <0x00000000 0x00000000 0x00000000>; // Filled in by zImage 5218334Speter }; 5318334Speter 5418334Speter UIC0: interrupt-controller0 { 5518334Speter compatible = "ibm,uic-440gp", "ibm,uic"; 5618334Speter interrupt-controller; 5718334Speter cell-index = <0>; 5852284Sobrien dcr-reg = <0x0c0 0x009>; 5952284Sobrien #address-cells = <0>; 60117395Skan #size-cells = <0>; 6118334Speter #interrupt-cells = <2>; 6218334Speter 6318334Speter }; 6452284Sobrien 6552284Sobrien UIC1: interrupt-controller1 { 6652284Sobrien compatible = "ibm,uic-440gp", "ibm,uic"; 6752284Sobrien interrupt-controller; 6852284Sobrien cell-index = <1>; 6952284Sobrien dcr-reg = <0x0d0 0x009>; 7052284Sobrien #address-cells = <0>; 7152284Sobrien #size-cells = <0>; 7252284Sobrien #interrupt-cells = <2>; 7352284Sobrien interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */ 7452284Sobrien interrupt-parent = <&UIC0>; 7552284Sobrien }; 7652284Sobrien 7752284Sobrien CPC0: cpc { 7852284Sobrien compatible = "ibm,cpc-440gp"; 7918334Speter dcr-reg = <0x0b0 0x003 0x0e0 0x010>; 8018334Speter // FIXME: anything else? 8118334Speter }; 8218334Speter 8318334Speter plb { 8450397Sobrien compatible = "ibm,plb-440gp", "ibm,plb4"; 8518334Speter #address-cells = <2>; 8618334Speter #size-cells = <1>; 8718334Speter ranges; 8818334Speter clock-frequency = <0>; // Filled in by zImage 8918334Speter 9018334Speter SDRAM0: memory-controller { 9118334Speter compatible = "ibm,sdram-440gp"; 9218334Speter dcr-reg = <0x010 0x002>; 9318334Speter // FIXME: anything else? 9490075Sobrien }; 9590075Sobrien 9690075Sobrien SRAM0: sram { 9790075Sobrien compatible = "ibm,sram-440gp"; 9890075Sobrien dcr-reg = <0x020 0x008 0x00a 0x001>; 9990075Sobrien }; 10090075Sobrien 10190075Sobrien DMA0: dma { 10218334Speter // FIXME: ??? 10318334Speter compatible = "ibm,dma-440gp"; 10418334Speter dcr-reg = <0x100 0x027>; 10518334Speter }; 10618334Speter 10718334Speter MAL0: mcmal { 10818334Speter compatible = "ibm,mcmal-440gp", "ibm,mcmal"; 10918334Speter dcr-reg = <0x180 0x062>; 11018334Speter num-tx-chans = <4>; 11118334Speter num-rx-chans = <4>; 11218334Speter interrupt-parent = <&MAL0>; 11318334Speter interrupts = <0x0 0x1 0x2 0x3 0x4>; 11418334Speter #interrupt-cells = <1>; 11518334Speter #address-cells = <0>; 11652284Sobrien #size-cells = <0>; 11718334Speter interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4 11818334Speter /*RXEOB*/ 0x1 &UIC0 0xb 0x4 11918334Speter /*SERR*/ 0x2 &UIC1 0x0 0x4 12018334Speter /*TXDE*/ 0x3 &UIC1 0x1 0x4 12118334Speter /*RXDE*/ 0x4 &UIC1 0x2 0x4>; 12218334Speter interrupt-map-mask = <0xffffffff>; 12318334Speter }; 12418334Speter 12590075Sobrien POB0: opb { 12690075Sobrien compatible = "ibm,opb-440gp", "ibm,opb"; 12790075Sobrien #address-cells = <1>; 12890075Sobrien #size-cells = <1>; 12990075Sobrien /* Wish there was a nicer way of specifying a full 32-bit 13090075Sobrien range */ 13190075Sobrien ranges = <0x00000000 0x00000001 0x00000000 0x80000000 13290075Sobrien 0x80000000 0x00000001 0x80000000 0x80000000>; 13318334Speter dcr-reg = <0x090 0x00b>; 13418334Speter interrupt-parent = <&UIC1>; 13518334Speter interrupts = <0x7 0x4>; 13618334Speter clock-frequency = <0>; // Filled in by zImage 13718334Speter 13850397Sobrien EBC0: ebc { 13918334Speter compatible = "ibm,ebc-440gp", "ibm,ebc"; 14018334Speter dcr-reg = <0x012 0x002>; 14118334Speter #address-cells = <2>; 14218334Speter #size-cells = <1>; 14318334Speter clock-frequency = <0>; // Filled in by zImage 14418334Speter // ranges property is supplied by zImage 14518334Speter // based on firmware's configuration of the 14618334Speter // EBC bridge 14718334Speter interrupts = <0x5 0x4>; 14818334Speter interrupt-parent = <&UIC1>; 14918334Speter 15018334Speter small-flash@0,80000 { 15118334Speter compatible = "jedec-flash"; 15218334Speter bank-width = <1>; 15318334Speter reg = <0x00000000 0x00080000 0x00080000>; 15418334Speter #address-cells = <1>; 15518334Speter #size-cells = <1>; 15618334Speter partition@0 { 15718334Speter label = "OpenBIOS"; 15818334Speter reg = <0x00000000 0x00080000>; 15918334Speter read-only; 16018334Speter }; 16150397Sobrien }; 16218334Speter 16318334Speter nvram@1,0 { 16418334Speter /* NVRAM & RTC */ 16518334Speter compatible = "ds1743-nvram"; 16618334Speter #bytes = <0x2000>; 16718334Speter reg = <0x00000001 0x00000000 0x00002000>; 16818334Speter }; 16918334Speter 17018334Speter large-flash@2,0 { 17118334Speter compatible = "jedec-flash"; 17218334Speter bank-width = <1>; 17318334Speter reg = <0x00000002 0x00000000 0x00400000>; 17418334Speter #address-cells = <1>; 17518334Speter #size-cells = <1>; 17618334Speter partition@0 { 17718334Speter label = "fs"; 17890075Sobrien reg = <0x00000000 0x00380000>; 17990075Sobrien }; 18090075Sobrien partition@380000 { 18190075Sobrien label = "firmware"; 18290075Sobrien reg = <0x00380000 0x00080000>; 18390075Sobrien }; 18490075Sobrien }; 18590075Sobrien 18618334Speter ir@3,0 { 18718334Speter reg = <0x00000003 0x00000000 0x00000010>; 18818334Speter }; 18918334Speter 19018334Speter fpga@7,0 { 19118334Speter compatible = "Ebony-FPGA"; 19218334Speter reg = <0x00000007 0x00000000 0x00000010>; 19318334Speter virtual-reg = <0xe8300000>; 19418334Speter }; 19518334Speter }; 19652284Sobrien 19750397Sobrien UART0: serial@40000200 { 19850397Sobrien device_type = "serial"; 19918334Speter compatible = "ns16550"; 20018334Speter reg = <0x40000200 0x00000008>; 20118334Speter virtual-reg = <0xe0000200>; 20218334Speter clock-frequency = <11059200>; 20318334Speter current-speed = <9600>; 20418334Speter interrupt-parent = <&UIC0>; 20518334Speter interrupts = <0x0 0x4>; 20618334Speter }; 20718334Speter 20818334Speter UART1: serial@40000300 { 20918334Speter device_type = "serial"; 21018334Speter compatible = "ns16550"; 21118334Speter reg = <0x40000300 0x00000008>; 21218334Speter virtual-reg = <0xe0000300>; 21318334Speter clock-frequency = <11059200>; 21418334Speter current-speed = <9600>; 21518334Speter interrupt-parent = <&UIC0>; 21618334Speter interrupts = <0x1 0x4>; 21718334Speter }; 21818334Speter 21918334Speter IIC0: i2c@40000400 { 22018334Speter /* FIXME */ 22118334Speter compatible = "ibm,iic-440gp", "ibm,iic"; 22218334Speter reg = <0x40000400 0x00000014>; 22352284Sobrien interrupt-parent = <&UIC0>; 22450397Sobrien interrupts = <0x2 0x4>; 22550397Sobrien }; 22618334Speter IIC1: i2c@40000500 { 22718334Speter /* FIXME */ 22818334Speter compatible = "ibm,iic-440gp", "ibm,iic"; 22918334Speter reg = <0x40000500 0x00000014>; 23018334Speter interrupt-parent = <&UIC0>; 23118334Speter interrupts = <0x3 0x4>; 23218334Speter }; 23318334Speter 23418334Speter GPIO0: gpio@40000700 { 23518334Speter /* FIXME */ 23618334Speter compatible = "ibm,gpio-440gp"; 23718334Speter reg = <0x40000700 0x00000020>; 23818334Speter }; 23918334Speter 24018334Speter ZMII0: emac-zmii@40000780 { 24118334Speter compatible = "ibm,zmii-440gp", "ibm,zmii"; 24218334Speter reg = <0x40000780 0x0000000c>; 24318334Speter }; 24418334Speter 24518334Speter EMAC0: ethernet@40000800 { 24618334Speter device_type = "network"; 24718334Speter compatible = "ibm,emac-440gp", "ibm,emac"; 24818334Speter interrupt-parent = <&UIC1>; 24918334Speter interrupts = <0x1c 0x4 0x1d 0x4>; 25018334Speter reg = <0x40000800 0x00000070>; 25118334Speter local-mac-address = [000000000000]; // Filled in by zImage 25218334Speter mal-device = <&MAL0>; 25318334Speter mal-tx-channel = <0 1>; 25418334Speter mal-rx-channel = <0>; 25518334Speter cell-index = <0>; 25618334Speter max-frame-size = <1500>; 25718334Speter rx-fifo-size = <4096>; 25818334Speter tx-fifo-size = <2048>; 25918334Speter phy-mode = "rmii"; 26018334Speter phy-map = <0x00000001>; 26118334Speter zmii-device = <&ZMII0>; 26218334Speter zmii-channel = <0>; 26318334Speter }; 26418334Speter EMAC1: ethernet@40000900 { 26518334Speter device_type = "network"; 26618334Speter compatible = "ibm,emac-440gp", "ibm,emac"; 26718334Speter interrupt-parent = <&UIC1>; 26818334Speter interrupts = <0x1e 0x4 0x1f 0x4>; 26918334Speter reg = <0x40000900 0x00000070>; 27090075Sobrien local-mac-address = [000000000000]; // Filled in by zImage 27118334Speter mal-device = <&MAL0>; 27218334Speter mal-tx-channel = <2 3>; 27318334Speter mal-rx-channel = <1>; 27418334Speter cell-index = <1>; 27518334Speter max-frame-size = <1500>; 27618334Speter rx-fifo-size = <4096>; 27718334Speter tx-fifo-size = <2048>; 27818334Speter phy-mode = "rmii"; 27918334Speter phy-map = <0x00000001>; 280132718Skan zmii-device = <&ZMII0>; 281132718Skan zmii-channel = <1>; 282132718Skan }; 283132718Skan 284132718Skan 28518334Speter GPT0: gpt@40000a00 { 28618334Speter /* FIXME */ 28718334Speter reg = <0x40000a00 0x000000d4>; 28818334Speter interrupt-parent = <&UIC0>; 289132718Skan interrupts = <0x12 0x4 0x13 0x4 0x14 0x4 0x15 0x4 0x16 0x4>; 290132718Skan }; 291132718Skan 29250397Sobrien }; 29350397Sobrien 29450397Sobrien PCIX0: pci@20ec00000 { 295132718Skan device_type = "pci"; 29650397Sobrien #interrupt-cells = <1>; 29750397Sobrien #size-cells = <2>; 29850397Sobrien #address-cells = <3>; 299132718Skan compatible = "ibm,plb440gp-pcix", "ibm,plb-pcix"; 300132718Skan primary; 301132718Skan reg = <0x00000002 0x0ec00000 0x00000008 /* Config space access */ 302132718Skan 0x00000000 0x00000000 0x00000000 /* no IACK cycles */ 303132718Skan 0x00000002 0x0ed00000 0x00000004 /* Special cycles */ 304132718Skan 0x00000002 0x0ec80000 0x000000f0 /* Internal registers */ 305132718Skan 0x00000002 0x0ec80100 0x000000fc>; /* Internal messaging registers */ 306132718Skan 307132718Skan /* Outbound ranges, one memory and one IO, 308132718Skan * later cannot be changed 309132718Skan */ 310132718Skan ranges = <0x02000000 0x00000000 0x80000000 0x00000003 0x80000000 0x00000000 0x80000000 311132718Skan 0x01000000 0x00000000 0x00000000 0x00000002 0x08000000 0x00000000 0x00010000>; 312132718Skan 313132718Skan /* Inbound 2GB range starting at 0 */ 314132718Skan dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>; 315132718Skan 316132718Skan /* Ebony has all 4 IRQ pins tied together per slot */ 317132718Skan interrupt-map-mask = <0xf800 0x0 0x0 0x0>; 318132718Skan interrupt-map = < 319132718Skan /* IDSEL 1 */ 320132718Skan 0x800 0x0 0x0 0x0 &UIC0 0x17 0x8 321132718Skan 322132718Skan /* IDSEL 2 */ 323132718Skan 0x1000 0x0 0x0 0x0 &UIC0 0x18 0x8 32450397Sobrien 32550397Sobrien /* IDSEL 3 */ 32650397Sobrien 0x1800 0x0 0x0 0x0 &UIC0 0x19 0x8 32750397Sobrien 32818334Speter /* IDSEL 4 */ 32990075Sobrien 0x2000 0x0 0x0 0x0 &UIC0 0x1a 0x8 330132718Skan >; 33190075Sobrien }; 33290075Sobrien }; 33390075Sobrien 33490075Sobrien chosen { 33518334Speter stdout-path = "/plb/opb/serial@40000200"; 33618334Speter }; 33750397Sobrien}; 33850397Sobrien