Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
Linus Torvalds [Fri, 12 Oct 2007 04:55:47 +0000 (21:55 -0700)]
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (408 commits)
  [POWERPC] Add memchr() to the bootwrapper
  [POWERPC] Implement logging of unhandled signals
  [POWERPC] Add legacy serial support for OPB with flattened device tree
  [POWERPC] Use 1TB segments
  [POWERPC] XilinxFB: Allow fixed framebuffer base address
  [POWERPC] XilinxFB: Add support for custom screen resolution
  [POWERPC] XilinxFB: Use pdata to pass around framebuffer parameters
  [POWERPC] PCI: Add 64-bit physical address support to setup_indirect_pci
  [POWERPC] 4xx: Kilauea defconfig file
  [POWERPC] 4xx: Kilauea DTS
  [POWERPC] 4xx: Add AMCC Kilauea eval board support to platforms/40x
  [POWERPC] 4xx: Add AMCC 405EX support to cputable.c
  [POWERPC] Adjust TASK_SIZE on ppc32 systems to 3GB that are capable
  [POWERPC] Use PAGE_OFFSET to tell if an address is user/kernel in SW TLB handlers
  [POWERPC] 85xx: Enable FP emulation in MPC8560 ADS defconfig
  [POWERPC] 85xx: Killed <asm/mpc85xx.h>
  [POWERPC] 85xx: Add cpm nodes for 8541/8555 CDS
  [POWERPC] 85xx: Convert mpc8560ads to the new CPM binding.
  [POWERPC] mpc8272ads: Remove muram from the CPM reg property.
  [POWERPC] Make clockevents work on PPC601 processors
  ...

Fixed up conflict in Documentation/powerpc/booting-without-of.txt manually.

1  2 
Documentation/powerpc/booting-without-of.txt
MAINTAINERS
arch/powerpc/kernel/irq.c
arch/powerpc/platforms/44x/Kconfig
arch/powerpc/platforms/pasemi/Kconfig
arch/powerpc/platforms/pasemi/iommu.c
drivers/char/ipmi/ipmi_si_intf.c
drivers/net/ucc_geth.c
drivers/net/ucc_geth.h
include/linux/pci_ids.h
lib/Kconfig.debug

@@@ -1824,162 -1851,242 +1851,397 @@@ platforms are moved over to use the fla
                fsl,has-rstcr;
        };
  
+    l) Freescale Communications Processor Module
+    NOTE: This is an interim binding, and will likely change slightly,
+    as more devices are supported.  The QE bindings especially are
+    incomplete.
+    i) Root CPM node
+    Properties:
+    - compatible : "fsl,cpm1", "fsl,cpm2", or "fsl,qe".
+    - reg : A 48-byte region beginning with CPCR.
+    Example:
+       cpm@119c0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               #interrupt-cells = <2>;
+               compatible = "fsl,mpc8272-cpm", "fsl,cpm2";
+               reg = <119c0 30>;
+       }
+    ii) Properties common to mulitple CPM/QE devices
+    - fsl,cpm-command : This value is ORed with the opcode and command flag
+                        to specify the device on which a CPM command operates.
+    - fsl,cpm-brg : Indicates which baud rate generator the device
+                    is associated with.  If absent, an unused BRG
+                    should be dynamically allocated.  If zero, the
+                    device uses an external clock rather than a BRG.
+    - reg : Unless otherwise specified, the first resource represents the
+            scc/fcc/ucc registers, and the second represents the device's
+            parameter RAM region (if it has one).
+    iii) Serial
+    Currently defined compatibles:
+    - fsl,cpm1-smc-uart
+    - fsl,cpm2-smc-uart
+    - fsl,cpm1-scc-uart
+    - fsl,cpm2-scc-uart
+    - fsl,qe-uart
+    Example:
+       serial@11a00 {
+               device_type = "serial";
+               compatible = "fsl,mpc8272-scc-uart",
+                            "fsl,cpm2-scc-uart";
+               reg = <11a00 20 8000 100>;
+               interrupts = <28 8>;
+               interrupt-parent = <&PIC>;
+               fsl,cpm-brg = <1>;
+               fsl,cpm-command = <00800000>;
+       };
+    iii) Network
+    Currently defined compatibles:
+    - fsl,cpm1-scc-enet
+    - fsl,cpm2-scc-enet
+    - fsl,cpm1-fec-enet
+    - fsl,cpm2-fcc-enet (third resource is GFEMR)
+    - fsl,qe-enet
+    Example:
+       ethernet@11300 {
+               device_type = "network";
+               compatible = "fsl,mpc8272-fcc-enet",
+                            "fsl,cpm2-fcc-enet";
+               reg = <11300 20 8400 100 11390 1>;
+               local-mac-address = [ 00 00 00 00 00 00 ];
+               interrupts = <20 8>;
+               interrupt-parent = <&PIC>;
+               phy-handle = <&PHY0>;
+               linux,network-index = <0>;
+               fsl,cpm-command = <12000300>;
+       };
+    iv) MDIO
+    Currently defined compatibles:
+    fsl,pq1-fec-mdio (reg is same as first resource of FEC device)
+    fsl,cpm2-mdio-bitbang (reg is port C registers)
+    Properties for fsl,cpm2-mdio-bitbang:
+    fsl,mdio-pin : pin of port C controlling mdio data
+    fsl,mdc-pin : pin of port C controlling mdio clock
+    Example:
+       mdio@10d40 {
+               device_type = "mdio";
+               compatible = "fsl,mpc8272ads-mdio-bitbang",
+                            "fsl,mpc8272-mdio-bitbang",
+                            "fsl,cpm2-mdio-bitbang";
+               reg = <10d40 14>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               fsl,mdio-pin = <12>;
+               fsl,mdc-pin = <13>;
+       };
+    v) Baud Rate Generators
+    Currently defined compatibles:
+    fsl,cpm-brg
+    fsl,cpm1-brg
+    fsl,cpm2-brg
+    Properties:
+    - reg : There may be an arbitrary number of reg resources; BRG
+      numbers are assigned to these in order.
+    - clock-frequency : Specifies the base frequency driving
+      the BRG.
+    Example:
+       brg@119f0 {
+               compatible = "fsl,mpc8272-brg",
+                            "fsl,cpm2-brg",
+                            "fsl,cpm-brg";
+               reg = <119f0 10 115f0 10>;
+               clock-frequency = <d#25000000>;
+       };
+    vi) Interrupt Controllers
+    Currently defined compatibles:
+    - fsl,cpm1-pic
+      - only one interrupt cell
+    - fsl,pq1-pic
+    - fsl,cpm2-pic
+      - second interrupt cell is level/sense:
+        - 2 is falling edge
+        - 8 is active low
+    Example:
+       interrupt-controller@10c00 {
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               reg = <10c00 80>;
+               compatible = "mpc8272-pic", "fsl,cpm2-pic";
+       };
+    vii) USB (Universal Serial Bus Controller)
+    Properties:
+    - compatible : "fsl,cpm1-usb", "fsl,cpm2-usb", "fsl,qe-usb"
+    Example:
+       usb@11bc0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "fsl,cpm2-usb";
+               reg = <11b60 18 8b00 100>;
+               interrupts = <b 8>;
+               interrupt-parent = <&PIC>;
+               fsl,cpm-command = <2e600000>;
+       };
+    viii) Multi-User RAM (MURAM)
+    The multi-user/dual-ported RAM is expressed as a bus under the CPM node.
+    Ranges must be set up subject to the following restrictions:
+    - Children's reg nodes must be offsets from the start of all muram, even
+      if the user-data area does not begin at zero.
+    - If multiple range entries are used, the difference between the parent
+      address and the child address must be the same in all, so that a single
+      mapping can cover them all while maintaining the ability to determine
+      CPM-side offsets with pointer subtraction.  It is recommended that
+      multiple range entries not be used.
+    - A child address of zero must be translatable, even if no reg resources
+      contain it.
+    A child "data" node must exist, compatible with "fsl,cpm-muram-data", to
+    indicate the portion of muram that is usable by the OS for arbitrary
+    purposes.  The data node may have an arbitrary number of reg resources,
+    all of which contribute to the allocatable muram pool.
+    Example, based on mpc8272:
+       muram@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0 10000>;
+               data@0 {
+                       compatible = "fsl,cpm-muram-data";
+                       reg = <0 2000 9800 800>;
+               };
+       };
+    m) Chipselect/Local Bus
+    Properties:
+    - name : Should be localbus
+    - #address-cells : Should be either two or three.  The first cell is the
+                       chipselect number, and the remaining cells are the
+                       offset into the chipselect.
+    - #size-cells : Either one or two, depending on how large each chipselect
+                    can be.
+    - ranges : Each range corresponds to a single chipselect, and cover
+               the entire access window as configured.
+    Example:
+       localbus@f0010100 {
+               compatible = "fsl,mpc8272ads-localbus",
+                            "fsl,mpc8272-localbus",
+                            "fsl,pq2-localbus";
+               #address-cells = <2>;
+               #size-cells = <1>;
+               reg = <f0010100 40>;
+               ranges = <0 0 fe000000 02000000
+                         1 0 f4500000 00008000>;
+               flash@0,0 {
+                       compatible = "jedec-flash";
+                       reg = <0 0 2000000>;
+                       bank-width = <4>;
+                       device-width = <1>;
+               };
+               board-control@1,0 {
+                       reg = <1 0 20>;
+                       compatible = "fsl,mpc8272ads-bcsr";
+               };
+       };
  
-     h) 4xx/Axon EMAC ethernet nodes
++    n) 4xx/Axon EMAC ethernet nodes
 +
 +    The EMAC ethernet controller in IBM and AMCC 4xx chips, and also
 +    the Axon bridge.  To operate this needs to interact with a ths
 +    special McMAL DMA controller, and sometimes an RGMII or ZMII
 +    interface.  In addition to the nodes and properties described
 +    below, the node for the OPB bus on which the EMAC sits must have a
 +    correct clock-frequency property.
 +
 +      i) The EMAC node itself
 +
 +    Required properties:
 +    - device_type       : "network"
 +
 +    - compatible        : compatible list, contains 2 entries, first is
 +                        "ibm,emac-CHIP" where CHIP is the host ASIC (440gx,
 +                        405gp, Axon) and second is either "ibm,emac" or
 +                        "ibm,emac4".  For Axon, thus, we have: "ibm,emac-axon",
 +                        "ibm,emac4"
 +    - interrupts        : <interrupt mapping for EMAC IRQ and WOL IRQ>
 +    - interrupt-parent  : optional, if needed for interrupt mapping
 +    - reg               : <registers mapping>
 +    - local-mac-address : 6 bytes, MAC address
 +    - mal-device        : phandle of the associated McMAL node
 +    - mal-tx-channel    : 1 cell, index of the tx channel on McMAL associated
 +                        with this EMAC
 +    - mal-rx-channel    : 1 cell, index of the rx channel on McMAL associated
 +                        with this EMAC
 +    - cell-index        : 1 cell, hardware index of the EMAC cell on a given
 +                        ASIC (typically 0x0 and 0x1 for EMAC0 and EMAC1 on
 +                        each Axon chip)
 +    - max-frame-size    : 1 cell, maximum frame size supported in bytes
 +    - rx-fifo-size      : 1 cell, Rx fifo size in bytes for 10 and 100 Mb/sec
 +                        operations.
 +                        For Axon, 2048
 +    - tx-fifo-size      : 1 cell, Tx fifo size in bytes for 10 and 100 Mb/sec
 +                        operations.
 +                        For Axon, 2048.
 +    - fifo-entry-size   : 1 cell, size of a fifo entry (used to calculate
 +                        thresholds).
 +                        For Axon, 0x00000010
 +    - mal-burst-size    : 1 cell, MAL burst size (used to calculate thresholds)
 +                        in bytes.
 +                        For Axon, 0x00000100 (I think ...)
 +    - phy-mode          : string, mode of operations of the PHY interface.
 +                        Supported values are: "mii", "rmii", "smii", "rgmii",
 +                        "tbi", "gmii", rtbi", "sgmii".
 +                        For Axon on CAB, it is "rgmii"
 +    - mdio-device       : 1 cell, required iff using shared MDIO registers
 +                        (440EP).  phandle of the EMAC to use to drive the
 +                        MDIO lines for the PHY used by this EMAC.
 +    - zmii-device       : 1 cell, required iff connected to a ZMII.  phandle of
 +                        the ZMII device node
 +    - zmii-channel      : 1 cell, required iff connected to a ZMII.  Which ZMII
 +                        channel or 0xffffffff if ZMII is only used for MDIO.
 +    - rgmii-device      : 1 cell, required iff connected to an RGMII. phandle
 +                        of the RGMII device node.
 +                        For Axon: phandle of plb5/plb4/opb/rgmii
 +    - rgmii-channel     : 1 cell, required iff connected to an RGMII.  Which
 +                        RGMII channel is used by this EMAC.
 +                        Fox Axon: present, whatever value is appropriate for each
 +                        EMAC, that is the content of the current (bogus) "phy-port"
 +                        property.
 +
 +    Recommended properties:
 +    - linux,network-index : This is the intended "index" of this
 +      network device.  This is used by the bootwrapper to interpret
 +      MAC addresses passed by the firmware when no information other
 +      than indices is available to associate an address with a device.
 +
 +    Optional properties:
 +    - phy-address       : 1 cell, optional, MDIO address of the PHY. If absent,
 +                        a search is performed.
 +    - phy-map           : 1 cell, optional, bitmap of addresses to probe the PHY
 +                        for, used if phy-address is absent. bit 0x00000001 is
 +                        MDIO address 0.
 +                        For Axon it can be absent, thouugh my current driver
 +                        doesn't handle phy-address yet so for now, keep
 +                        0x00ffffff in it.
 +    - rx-fifo-size-gige : 1 cell, Rx fifo size in bytes for 1000 Mb/sec
 +                        operations (if absent the value is the same as
 +                        rx-fifo-size).  For Axon, either absent or 2048.
 +    - tx-fifo-size-gige : 1 cell, Tx fifo size in bytes for 1000 Mb/sec
 +                        operations (if absent the value is the same as
 +                        tx-fifo-size). For Axon, either absent or 2048.
 +    - tah-device        : 1 cell, optional. If connected to a TAH engine for
 +                        offload, phandle of the TAH device node.
 +    - tah-channel       : 1 cell, optional. If appropriate, channel used on the
 +                        TAH engine.
 +
 +    Example:
 +
 +      EMAC0: ethernet@40000800 {
 +              linux,network-index = <0>;
 +              device_type = "network";
 +              compatible = "ibm,emac-440gp", "ibm,emac";
 +              interrupt-parent = <&UIC1>;
 +              interrupts = <1c 4 1d 4>;
 +              reg = <40000800 70>;
 +              local-mac-address = [00 04 AC E3 1B 1E];
 +              mal-device = <&MAL0>;
 +              mal-tx-channel = <0 1>;
 +              mal-rx-channel = <0>;
 +              cell-index = <0>;
 +              max-frame-size = <5dc>;
 +              rx-fifo-size = <1000>;
 +              tx-fifo-size = <800>;
 +              phy-mode = "rmii";
 +              phy-map = <00000001>;
 +              zmii-device = <&ZMII0>;
 +              zmii-channel = <0>;
 +      };
 +
 +      ii) McMAL node
 +
 +    Required properties:
 +    - device_type        : "dma-controller"
 +    - compatible         : compatible list, containing 2 entries, first is
 +                         "ibm,mcmal-CHIP" where CHIP is the host ASIC (like
 +                         emac) and the second is either "ibm,mcmal" or
 +                         "ibm,mcmal2".
 +                         For Axon, "ibm,mcmal-axon","ibm,mcmal2"
 +    - interrupts         : <interrupt mapping for the MAL interrupts sources:
 +                           5 sources: tx_eob, rx_eob, serr, txde, rxde>.
 +                           For Axon: This is _different_ from the current
 +                         firmware.  We use the "delayed" interrupts for txeob
 +                         and rxeob. Thus we end up with mapping those 5 MPIC
 +                         interrupts, all level positive sensitive: 10, 11, 32,
 +                         33, 34 (in decimal)
 +    - dcr-reg            : < DCR registers range >
 +    - dcr-parent         : if needed for dcr-reg
 +    - num-tx-chans       : 1 cell, number of Tx channels
 +    - num-rx-chans       : 1 cell, number of Rx channels
 +
 +      iii) ZMII node
 +
 +    Required properties:
 +    - compatible         : compatible list, containing 2 entries, first is
 +                         "ibm,zmii-CHIP" where CHIP is the host ASIC (like
 +                         EMAC) and the second is "ibm,zmii".
 +                         For Axon, there is no ZMII node.
 +    - reg                : <registers mapping>
 +
 +      iv) RGMII node
 +
 +    Required properties:
 +    - compatible         : compatible list, containing 2 entries, first is
 +                         "ibm,rgmii-CHIP" where CHIP is the host ASIC (like
 +                         EMAC) and the second is "ibm,rgmii".
 +                           For Axon, "ibm,rgmii-axon","ibm,rgmii"
 +    - reg                : <registers mapping>
 +    - revision           : as provided by the RGMII new version register if
 +                         available.
 +                         For Axon: 0x0000012a
 +
     More devices will be defined as this spec matures.
  
  VII - Specifying interrupt information for devices
diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge