The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/src/powerpc/ebony.dts

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Device Tree Source for IBM Ebony
    3  *
    4  * Copyright (c) 2006, 2007 IBM Corp.
    5  * Josh Boyer <jwboyer@linux.vnet.ibm.com>, David Gibson <dwg@au1.ibm.com>
    6  *
    7  * FIXME: Draft only!
    8  *
    9  * This file is licensed under the terms of the GNU General Public
   10  * License version 2.  This program is licensed "as is" without
   11  * any warranty of any kind, whether express or implied.
   12  */
   13 
   14 /dts-v1/;
   15 
   16 / {
   17         #address-cells = <2>;
   18         #size-cells = <1>;
   19         model = "ibm,ebony";
   20         compatible = "ibm,ebony";
   21         dcr-parent = <&{/cpus/cpu@0}>;
   22 
   23         aliases {
   24                 ethernet0 = &EMAC0;
   25                 ethernet1 = &EMAC1;
   26                 serial0 = &UART0;
   27                 serial1 = &UART1;
   28         };
   29 
   30         cpus {
   31                 #address-cells = <1>;
   32                 #size-cells = <0>;
   33 
   34                 cpu@0 {
   35                         device_type = "cpu";
   36                         model = "PowerPC,440GP";
   37                         reg = <0x00000000>;
   38                         clock-frequency = <0>; // Filled in by zImage
   39                         timebase-frequency = <0>; // Filled in by zImage
   40                         i-cache-line-size = <32>;
   41                         d-cache-line-size = <32>;
   42                         i-cache-size = <32768>; /* 32 kB */
   43                         d-cache-size = <32768>; /* 32 kB */
   44                         dcr-controller;
   45                         dcr-access-method = "native";
   46                 };
   47         };
   48 
   49         memory {
   50                 device_type = "memory";
   51                 reg = <0x00000000 0x00000000 0x00000000>; // Filled in by zImage
   52         };
   53 
   54         UIC0: interrupt-controller0 {
   55                 compatible = "ibm,uic-440gp", "ibm,uic";
   56                 interrupt-controller;
   57                 cell-index = <0>;
   58                 dcr-reg = <0x0c0 0x009>;
   59                 #address-cells = <0>;
   60                 #size-cells = <0>;
   61                 #interrupt-cells = <2>;
   62 
   63         };
   64 
   65         UIC1: interrupt-controller1 {
   66                 compatible = "ibm,uic-440gp", "ibm,uic";
   67                 interrupt-controller;
   68                 cell-index = <1>;
   69                 dcr-reg = <0x0d0 0x009>;
   70                 #address-cells = <0>;
   71                 #size-cells = <0>;
   72                 #interrupt-cells = <2>;
   73                 interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
   74                 interrupt-parent = <&UIC0>;
   75         };
   76 
   77         CPC0: cpc {
   78                 compatible = "ibm,cpc-440gp";
   79                 dcr-reg = <0x0b0 0x003 0x0e0 0x010>;
   80                 // FIXME: anything else?
   81         };
   82 
   83         plb {
   84                 compatible = "ibm,plb-440gp", "ibm,plb4";
   85                 #address-cells = <2>;
   86                 #size-cells = <1>;
   87                 ranges;
   88                 clock-frequency = <0>; // Filled in by zImage
   89 
   90                 SDRAM0: memory-controller {
   91                         compatible = "ibm,sdram-440gp";
   92                         dcr-reg = <0x010 0x002>;
   93                         // FIXME: anything else?
   94                 };
   95 
   96                 SRAM0: sram {
   97                         compatible = "ibm,sram-440gp";
   98                         dcr-reg = <0x020 0x008 0x00a 0x001>;
   99                 };
  100 
  101                 DMA0: dma {
  102                         // FIXME: ???
  103                         compatible = "ibm,dma-440gp";
  104                         dcr-reg = <0x100 0x027>;
  105                 };
  106 
  107                 MAL0: mcmal {
  108                         compatible = "ibm,mcmal-440gp", "ibm,mcmal";
  109                         dcr-reg = <0x180 0x062>;
  110                         num-tx-chans = <4>;
  111                         num-rx-chans = <4>;
  112                         interrupt-parent = <&MAL0>;
  113                         interrupts = <0x0 0x1 0x2 0x3 0x4>;
  114                         #interrupt-cells = <1>;
  115                         #address-cells = <0>;
  116                         #size-cells = <0>;
  117                         interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4
  118                                          /*RXEOB*/ 0x1 &UIC0 0xb 0x4
  119                                          /*SERR*/  0x2 &UIC1 0x0 0x4
  120                                          /*TXDE*/  0x3 &UIC1 0x1 0x4
  121                                          /*RXDE*/  0x4 &UIC1 0x2 0x4>;
  122                         interrupt-map-mask = <0xffffffff>;
  123                 };
  124 
  125                 POB0: opb {
  126                         compatible = "ibm,opb-440gp", "ibm,opb";
  127                         #address-cells = <1>;
  128                         #size-cells = <1>;
  129                         /* Wish there was a nicer way of specifying a full 32-bit
  130                            range */
  131                         ranges = <0x00000000 0x00000001 0x00000000 0x80000000
  132                                   0x80000000 0x00000001 0x80000000 0x80000000>;
  133                         dcr-reg = <0x090 0x00b>;
  134                         interrupt-parent = <&UIC1>;
  135                         interrupts = <0x7 0x4>;
  136                         clock-frequency = <0>; // Filled in by zImage
  137 
  138                         EBC0: ebc {
  139                                 compatible = "ibm,ebc-440gp", "ibm,ebc";
  140                                 dcr-reg = <0x012 0x002>;
  141                                 #address-cells = <2>;
  142                                 #size-cells = <1>;
  143                                 clock-frequency = <0>; // Filled in by zImage
  144                                 // ranges property is supplied by zImage
  145                                 // based on firmware's configuration of the
  146                                 // EBC bridge
  147                                 interrupts = <0x5 0x4>;
  148                                 interrupt-parent = <&UIC1>;
  149 
  150                                 small-flash@0,80000 {
  151                                         compatible = "jedec-flash";
  152                                         bank-width = <1>;
  153                                         reg = <0x00000000 0x00080000 0x00080000>;
  154                                         #address-cells = <1>;
  155                                         #size-cells = <1>;
  156                                         partition@0 {
  157                                                 label = "OpenBIOS";
  158                                                 reg = <0x00000000 0x00080000>;
  159                                                 read-only;
  160                                         };
  161                                 };
  162 
  163                                 nvram@1,0 {
  164                                         /* NVRAM & RTC */
  165                                         compatible = "ds1743-nvram";
  166                                         #bytes = <0x2000>;
  167                                         reg = <0x00000001 0x00000000 0x00002000>;
  168                                 };
  169 
  170                                 large-flash@2,0 {
  171                                         compatible = "jedec-flash";
  172                                         bank-width = <1>;
  173                                         reg = <0x00000002 0x00000000 0x00400000>;
  174                                         #address-cells = <1>;
  175                                         #size-cells = <1>;
  176                                         partition@0 {
  177                                                 label = "fs";
  178                                                 reg = <0x00000000 0x00380000>;
  179                                         };
  180                                         partition@380000 {
  181                                                 label = "firmware";
  182                                                 reg = <0x00380000 0x00080000>;
  183                                         };
  184                                 };
  185 
  186                                 ir@3,0 {
  187                                         reg = <0x00000003 0x00000000 0x00000010>;
  188                                 };
  189 
  190                                 fpga@7,0 {
  191                                         compatible = "Ebony-FPGA";
  192                                         reg = <0x00000007 0x00000000 0x00000010>;
  193                                         virtual-reg = <0xe8300000>;
  194                                 };
  195                         };
  196 
  197                         UART0: serial@40000200 {
  198                                 device_type = "serial";
  199                                 compatible = "ns16550";
  200                                 reg = <0x40000200 0x00000008>;
  201                                 virtual-reg = <0xe0000200>;
  202                                 clock-frequency = <11059200>;
  203                                 current-speed = <9600>;
  204                                 interrupt-parent = <&UIC0>;
  205                                 interrupts = <0x0 0x4>;
  206                         };
  207 
  208                         UART1: serial@40000300 {
  209                                 device_type = "serial";
  210                                 compatible = "ns16550";
  211                                 reg = <0x40000300 0x00000008>;
  212                                 virtual-reg = <0xe0000300>;
  213                                 clock-frequency = <11059200>;
  214                                 current-speed = <9600>;
  215                                 interrupt-parent = <&UIC0>;
  216                                 interrupts = <0x1 0x4>;
  217                         };
  218 
  219                         IIC0: i2c@40000400 {
  220                                 /* FIXME */
  221                                 compatible = "ibm,iic-440gp", "ibm,iic";
  222                                 reg = <0x40000400 0x00000014>;
  223                                 interrupt-parent = <&UIC0>;
  224                                 interrupts = <0x2 0x4>;
  225                         };
  226                         IIC1: i2c@40000500 {
  227                                 /* FIXME */
  228                                 compatible = "ibm,iic-440gp", "ibm,iic";
  229                                 reg = <0x40000500 0x00000014>;
  230                                 interrupt-parent = <&UIC0>;
  231                                 interrupts = <0x3 0x4>;
  232                         };
  233 
  234                         GPIO0: gpio@40000700 {
  235                                 /* FIXME */
  236                                 compatible = "ibm,gpio-440gp";
  237                                 reg = <0x40000700 0x00000020>;
  238                         };
  239 
  240                         ZMII0: emac-zmii@40000780 {
  241                                 compatible = "ibm,zmii-440gp", "ibm,zmii";
  242                                 reg = <0x40000780 0x0000000c>;
  243                         };
  244 
  245                         EMAC0: ethernet@40000800 {
  246                                 device_type = "network";
  247                                 compatible = "ibm,emac-440gp", "ibm,emac";
  248                                 interrupt-parent = <&UIC1>;
  249                                 interrupts = <0x1c 0x4 0x1d 0x4>;
  250                                 reg = <0x40000800 0x00000070>;
  251                                 local-mac-address = [000000000000]; // Filled in by zImage
  252                                 mal-device = <&MAL0>;
  253                                 mal-tx-channel = <0 1>;
  254                                 mal-rx-channel = <0>;
  255                                 cell-index = <0>;
  256                                 max-frame-size = <1500>;
  257                                 rx-fifo-size = <4096>;
  258                                 tx-fifo-size = <2048>;
  259                                 phy-mode = "rmii";
  260                                 phy-map = <0x00000001>;
  261                                 zmii-device = <&ZMII0>;
  262                                 zmii-channel = <0>;
  263                         };
  264                         EMAC1: ethernet@40000900 {
  265                                 device_type = "network";
  266                                 compatible = "ibm,emac-440gp", "ibm,emac";
  267                                 interrupt-parent = <&UIC1>;
  268                                 interrupts = <0x1e 0x4 0x1f 0x4>;
  269                                 reg = <0x40000900 0x00000070>;
  270                                 local-mac-address = [000000000000]; // Filled in by zImage
  271                                 mal-device = <&MAL0>;
  272                                 mal-tx-channel = <2 3>;
  273                                 mal-rx-channel = <1>;
  274                                 cell-index = <1>;
  275                                 max-frame-size = <1500>;
  276                                 rx-fifo-size = <4096>;
  277                                 tx-fifo-size = <2048>;
  278                                 phy-mode = "rmii";
  279                                 phy-map = <0x00000001>;
  280                                 zmii-device = <&ZMII0>;
  281                                 zmii-channel = <1>;
  282                         };
  283 
  284 
  285                         GPT0: gpt@40000a00 {
  286                                 /* FIXME */
  287                                 reg = <0x40000a00 0x000000d4>;
  288                                 interrupt-parent = <&UIC0>;
  289                                 interrupts = <0x12 0x4 0x13 0x4 0x14 0x4 0x15 0x4 0x16 0x4>;
  290                         };
  291 
  292                 };
  293 
  294                 PCIX0: pci@20ec00000 {
  295                         device_type = "pci";
  296                         #interrupt-cells = <1>;
  297                         #size-cells = <2>;
  298                         #address-cells = <3>;
  299                         compatible = "ibm,plb440gp-pcix", "ibm,plb-pcix";
  300                         primary;
  301                         reg = <0x00000002 0x0ec00000 0x00000008 /* Config space access */
  302                                0x00000000 0x00000000 0x00000000         /* no IACK cycles */
  303                                0x00000002 0x0ed00000 0x00000004     /* Special cycles */
  304                                0x00000002 0x0ec80000 0x000000f0 /* Internal registers */
  305                                0x00000002 0x0ec80100 0x000000fc>;       /* Internal messaging registers */
  306 
  307                         /* Outbound ranges, one memory and one IO,
  308                          * later cannot be changed
  309                          */
  310                         ranges = <0x02000000 0x00000000 0x80000000 0x00000003 0x80000000 0x00000000 0x80000000
  311                                   0x01000000 0x00000000 0x00000000 0x00000002 0x08000000 0x00000000 0x00010000>;
  312 
  313                         /* Inbound 2GB range starting at 0 */
  314                         dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
  315 
  316                         /* Ebony has all 4 IRQ pins tied together per slot */
  317                         interrupt-map-mask = <0xf800 0x0 0x0 0x0>;
  318                         interrupt-map = <
  319                                 /* IDSEL 1 */
  320                                 0x800 0x0 0x0 0x0 &UIC0 0x17 0x8
  321 
  322                                 /* IDSEL 2 */
  323                                 0x1000 0x0 0x0 0x0 &UIC0 0x18 0x8
  324 
  325                                 /* IDSEL 3 */
  326                                 0x1800 0x0 0x0 0x0 &UIC0 0x19 0x8
  327 
  328                                 /* IDSEL 4 */
  329                                 0x2000 0x0 0x0 0x0 &UIC0 0x1a 0x8
  330                         >;
  331                 };
  332         };
  333 
  334         chosen {
  335                 stdout-path = "/plb/opb/serial@40000200";
  336         };
  337 };

Cache object: 1b900764dc393c7fcd31899082d592a8


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.