mirror of https://gitee.com/openkylin/linux.git
Merge remote-tracking branch 'kumar/next' into next
<< Mostly misc code cleanups in various board ports and adding support for a new MPC85xx board - ppa8548. >>
This commit is contained in:
commit
877d66856e
|
@ -54,8 +54,13 @@ PROPERTIES
|
|||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Must include "fsl,sec-v4.0". Also includes SEC
|
||||
ERA versions (optional) with which the device is compatible.
|
||||
Definition: Must include "fsl,sec-v4.0"
|
||||
|
||||
- fsl,sec-era
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: A standard property. Define the 'ERA' of the SEC
|
||||
device.
|
||||
|
||||
- #address-cells
|
||||
Usage: required
|
||||
|
@ -107,7 +112,8 @@ PROPERTIES
|
|||
|
||||
EXAMPLE
|
||||
crypto@300000 {
|
||||
compatible = "fsl,sec-v4.0", "fsl,sec-era-v2.0";
|
||||
compatible = "fsl,sec-v4.0";
|
||||
fsl,sec-era = <0x2>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x300000 0x10000>;
|
||||
|
|
|
@ -17,9 +17,20 @@ Recommended properties:
|
|||
contains a functioning "reset control register" (i.e. the board
|
||||
is wired to reset upon setting the HRESET_REQ bit in this register).
|
||||
|
||||
Example:
|
||||
- fsl,liodn-bits : Indicates the number of defined bits in the LIODN
|
||||
registers, for those SOCs that have a PAMU device.
|
||||
|
||||
Examples:
|
||||
global-utilities@e0000 { /* global utilities block */
|
||||
compatible = "fsl,mpc8548-guts";
|
||||
reg = <e0000 1000>;
|
||||
fsl,has-rstcr;
|
||||
};
|
||||
|
||||
guts: global-utilities@e0000 {
|
||||
compatible = "fsl,qoriq-device-config-1.0";
|
||||
reg = <0xe0000 0xe00>;
|
||||
fsl,has-rstcr;
|
||||
#sleep-cells = <1>;
|
||||
fsl,liodn-bits = <12>;
|
||||
};
|
||||
|
|
|
@ -0,0 +1,140 @@
|
|||
Freescale Peripheral Management Access Unit (PAMU) Device Tree Binding
|
||||
|
||||
DESCRIPTION
|
||||
|
||||
The PAMU is an I/O MMU that provides device-to-memory access control and
|
||||
address translation capabilities.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : <string>
|
||||
First entry is a version-specific string, such as
|
||||
"fsl,pamu-v1.0". The second is "fsl,pamu".
|
||||
- ranges : <prop-encoded-array>
|
||||
A standard property. Utilized to describe the memory mapped
|
||||
I/O space utilized by the controller. The size should
|
||||
be set to the total size of the register space of all
|
||||
physically present PAMU controllers. For example, for
|
||||
PAMU v1.0, on an SOC that has five PAMU devices, the size
|
||||
is 0x5000.
|
||||
- interrupts : <prop-encoded-array>
|
||||
Interrupt mappings. The first tuple is the normal PAMU
|
||||
interrupt, used for reporting access violations. The second
|
||||
is for PAMU hardware errors, such as PAMU operation errors
|
||||
and ECC errors.
|
||||
- #address-cells: <u32>
|
||||
A standard property.
|
||||
- #size-cells : <u32>
|
||||
A standard property.
|
||||
|
||||
Optional properties:
|
||||
- reg : <prop-encoded-array>
|
||||
A standard property. It represents the CCSR registers of
|
||||
all child PAMUs combined. Include it to provide support
|
||||
for legacy drivers.
|
||||
- interrupt-parent : <phandle>
|
||||
Phandle to interrupt controller
|
||||
|
||||
Child nodes:
|
||||
|
||||
Each child node represents one PAMU controller. Each SOC device that is
|
||||
connected to a specific PAMU device should have a "fsl,pamu-phandle" property
|
||||
that links to the corresponding specific child PAMU controller.
|
||||
|
||||
- reg : <prop-encoded-array>
|
||||
A standard property. Specifies the physical address and
|
||||
length (relative to the parent 'ranges' property) of this
|
||||
PAMU controller's configuration registers. The size should
|
||||
be set to the size of this PAMU controllers's register space.
|
||||
For PAMU v1.0, this size is 0x1000.
|
||||
- fsl,primary-cache-geometry
|
||||
: <prop-encoded-array>
|
||||
Two cells that specify the geometry of the primary PAMU
|
||||
cache. The first is the number of cache lines, and the
|
||||
second is the number of "ways". For direct-mapped caches,
|
||||
specify a value of 1.
|
||||
- fsl,secondary-cache-geometry
|
||||
: <prop-encoded-array>
|
||||
Two cells that specify the geometry of the secondary PAMU
|
||||
cache. The first is the number of cache lines, and the
|
||||
second is the number of "ways". For direct-mapped caches,
|
||||
specify a value of 1.
|
||||
|
||||
Device nodes:
|
||||
|
||||
Devices that have LIODNs need to specify links to the parent PAMU controller
|
||||
(the actual PAMU controller that this device is connected to) and a pointer to
|
||||
the LIODN register, if applicable.
|
||||
|
||||
- fsl,iommu-parent
|
||||
: <phandle>
|
||||
Phandle to the single, specific PAMU controller node to which
|
||||
this device is connect. The PAMU topology is represented in
|
||||
the device tree to assist code that dynamically determines the
|
||||
best LIODN values to minimize PAMU cache thrashing.
|
||||
|
||||
- fsl,liodn-reg : <prop-encoded-array>
|
||||
Two cells that specify the location of the LIODN register
|
||||
for this device. Required for devices that have a single
|
||||
LIODN. The first cell is a phandle to a node that contains
|
||||
the registers where the LIODN is to be set. The second is
|
||||
the offset from the first "reg" resource of the node where
|
||||
the specific LIODN register is located.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
iommu@20000 {
|
||||
compatible = "fsl,pamu-v1.0", "fsl,pamu";
|
||||
reg = <0x20000 0x5000>;
|
||||
ranges = <0 0x20000 0x5000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupts = <
|
||||
24 2 0 0
|
||||
16 2 1 30>;
|
||||
|
||||
pamu0: pamu@0 {
|
||||
reg = <0 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu1: pamu@1000 {
|
||||
reg = <0x1000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu2: pamu@2000 {
|
||||
reg = <0x2000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu3: pamu@3000 {
|
||||
reg = <0x3000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu4: pamu@4000 {
|
||||
reg = <0x4000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
};
|
||||
|
||||
guts: global-utilities@e0000 {
|
||||
compatible = "fsl,qoriq-device-config-1.0";
|
||||
reg = <0xe0000 0xe00>;
|
||||
fsl,has-rstcr;
|
||||
#sleep-cells = <1>;
|
||||
fsl,liodn-bits = <12>;
|
||||
};
|
||||
|
||||
/include/ "qoriq-dma-0.dtsi"
|
||||
dma@100300 {
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */
|
||||
};
|
|
@ -126,7 +126,7 @@ phy1: ethernet-phy@1 {
|
|||
};
|
||||
};
|
||||
|
||||
sdhci@2e000 {
|
||||
sdhc@2e000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ &ifc {
|
|||
|
||||
/* controller at 0x9000 */
|
||||
&pci0 {
|
||||
compatible = "fsl,p1010-pcie", "fsl,qoriq-pcie-v2.3", "fsl,qoriq-pcie-v2.2";
|
||||
compatible = "fsl,p1010-pcie", "fsl,qoriq-pcie-v2.3";
|
||||
device_type = "pci";
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
|
@ -69,7 +69,7 @@ pcie@0 {
|
|||
|
||||
/* controller at 0xa000 */
|
||||
&pci1 {
|
||||
compatible = "fsl,p1010-pcie", "fsl,qoriq-pcie-v2.3", "fsl,qoriq-pcie-v2.2";
|
||||
compatible = "fsl,p1010-pcie", "fsl,qoriq-pcie-v2.3";
|
||||
device_type = "pci";
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
|
|
|
@ -45,7 +45,7 @@ &lbc {
|
|||
|
||||
/* controller at 0x9000 */
|
||||
&pci0 {
|
||||
compatible = "fsl,p1022-pcie";
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
|
@ -73,7 +73,7 @@ pcie@0 {
|
|||
|
||||
/* controller at 0xa000 */
|
||||
&pci1 {
|
||||
compatible = "fsl,p1022-pcie";
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
|
@ -102,7 +102,7 @@ pcie@0 {
|
|||
|
||||
/* controller at 0xb000 */
|
||||
&pci2 {
|
||||
compatible = "fsl,p1022-pcie";
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
|
|
|
@ -48,6 +48,8 @@ &pci0 {
|
|||
bus-range = <0x0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 15>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x500>; /* PEX1LIODNR */
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -75,6 +77,8 @@ &pci1 {
|
|||
bus-range = <0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 14>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x504>; /* PEX2LIODNR */
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -102,6 +106,8 @@ &pci2 {
|
|||
bus-range = <0x0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 13>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x508>; /* PEX3LIODNR */
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -125,18 +131,21 @@ &rio {
|
|||
interrupts = <16 2 1 11>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
ranges;
|
||||
|
||||
port1 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
cell-index = <1>;
|
||||
fsl,liodn-reg = <&guts 0x510>; /* RIO1LIODNR */
|
||||
};
|
||||
|
||||
port2 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
cell-index = <2>;
|
||||
fsl,liodn-reg = <&guts 0x514>; /* RIO2LIODNR */
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -246,10 +255,37 @@ corenet-cf@18000 {
|
|||
|
||||
iommu@20000 {
|
||||
compatible = "fsl,pamu-v1.0", "fsl,pamu";
|
||||
reg = <0x20000 0x4000>;
|
||||
reg = <0x20000 0x4000>; /* for compatibility with older PAMU drivers */
|
||||
ranges = <0 0x20000 0x4000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupts = <
|
||||
24 2 0 0
|
||||
16 2 1 30>;
|
||||
|
||||
pamu0: pamu@0 {
|
||||
reg = <0 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu1: pamu@1000 {
|
||||
reg = <0x1000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu2: pamu@2000 {
|
||||
reg = <0x2000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu3: pamu@3000 {
|
||||
reg = <0x3000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "qoriq-mpic.dtsi"
|
||||
|
@ -291,7 +327,17 @@ serdes: serdes@ea000 {
|
|||
};
|
||||
|
||||
/include/ "qoriq-dma-0.dtsi"
|
||||
dma@100300 {
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x580>; /* DMA1LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-dma-1.dtsi"
|
||||
dma@101300 {
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-espi-0.dtsi"
|
||||
spi@110000 {
|
||||
fsl,espi-num-chipselects = <4>;
|
||||
|
@ -299,6 +345,8 @@ spi@110000 {
|
|||
|
||||
/include/ "qoriq-esdhc-0.dtsi"
|
||||
sdhc@114000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x530>; /* eSDHCLIODNR */
|
||||
sdhci,auto-cmd12;
|
||||
};
|
||||
|
||||
|
@ -311,17 +359,34 @@ sdhc@114000 {
|
|||
usb0: usb@210000 {
|
||||
compatible = "fsl-usb2-mph-v1.6", "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph";
|
||||
phy_type = "utmi";
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x520>; /* USB1LIODNR */
|
||||
port0;
|
||||
};
|
||||
|
||||
/include/ "qoriq-usb2-dr-0.dtsi"
|
||||
usb1: usb@211000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x524>; /* USB2LIODNR */
|
||||
dr_mode = "host";
|
||||
phy_type = "utmi";
|
||||
};
|
||||
|
||||
/include/ "qoriq-sata2-0.dtsi"
|
||||
sata@220000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x550>; /* SATA1LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-sata2-1.dtsi"
|
||||
sata@221000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x554>; /* SATA2LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-sec4.2-0.dtsi"
|
||||
crypto: crypto@300000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -48,6 +48,8 @@ &pci0 {
|
|||
bus-range = <0x0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 15>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x500>; /* PEX1LIODNR */
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -75,6 +77,8 @@ &pci1 {
|
|||
bus-range = <0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 14>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x504>; /* PEX2LIODNR */
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -102,6 +106,8 @@ &pci2 {
|
|||
bus-range = <0x0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 13>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x508>; /* PEX3LIODNR */
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -152,18 +158,21 @@ &rio {
|
|||
interrupts = <16 2 1 11>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
ranges;
|
||||
|
||||
port1 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
cell-index = <1>;
|
||||
fsl,liodn-reg = <&guts 0x510>; /* RIO1LIODNR */
|
||||
};
|
||||
|
||||
port2 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
cell-index = <2>;
|
||||
fsl,liodn-reg = <&guts 0x514>; /* RIO2LIODNR */
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -273,10 +282,37 @@ corenet-cf@18000 {
|
|||
|
||||
iommu@20000 {
|
||||
compatible = "fsl,pamu-v1.0", "fsl,pamu";
|
||||
reg = <0x20000 0x4000>;
|
||||
reg = <0x20000 0x4000>; /* for compatibility with older PAMU drivers */
|
||||
ranges = <0 0x20000 0x4000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupts = <
|
||||
24 2 0 0
|
||||
16 2 1 30>;
|
||||
|
||||
pamu0: pamu@0 {
|
||||
reg = <0 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu1: pamu@1000 {
|
||||
reg = <0x1000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu2: pamu@2000 {
|
||||
reg = <0x2000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu3: pamu@3000 {
|
||||
reg = <0x3000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "qoriq-mpic.dtsi"
|
||||
|
@ -318,7 +354,17 @@ serdes: serdes@ea000 {
|
|||
};
|
||||
|
||||
/include/ "qoriq-dma-0.dtsi"
|
||||
dma@100300 {
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x580>; /* DMA1LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-dma-1.dtsi"
|
||||
dma@101300 {
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-espi-0.dtsi"
|
||||
spi@110000 {
|
||||
fsl,espi-num-chipselects = <4>;
|
||||
|
@ -326,6 +372,8 @@ spi@110000 {
|
|||
|
||||
/include/ "qoriq-esdhc-0.dtsi"
|
||||
sdhc@114000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x530>; /* eSDHCLIODNR */
|
||||
sdhci,auto-cmd12;
|
||||
};
|
||||
|
||||
|
@ -338,17 +386,34 @@ sdhc@114000 {
|
|||
usb0: usb@210000 {
|
||||
compatible = "fsl-usb2-mph-v1.6", "fsl-usb2-mph";
|
||||
phy_type = "utmi";
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x520>; /* USB1LIODNR */
|
||||
port0;
|
||||
};
|
||||
|
||||
/include/ "qoriq-usb2-dr-0.dtsi"
|
||||
usb1: usb@211000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x524>; /* USB2LIODNR */
|
||||
dr_mode = "host";
|
||||
phy_type = "utmi";
|
||||
};
|
||||
|
||||
/include/ "qoriq-sata2-0.dtsi"
|
||||
sata@220000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x550>; /* SATA1LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-sata2-1.dtsi"
|
||||
sata@221000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x554>; /* SATA2LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-sec4.2-0.dtsi"
|
||||
crypto: crypto@300000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -41,13 +41,15 @@ &lbc {
|
|||
|
||||
/* controller at 0x200000 */
|
||||
&pci0 {
|
||||
compatible = "fsl,p4080-pcie";
|
||||
compatible = "fsl,p4080-pcie", "fsl,qoriq-pcie-v2.1";
|
||||
device_type = "pci";
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
bus-range = <0x0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 15>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x500>; /* PEX1LIODNR */
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -68,13 +70,15 @@ pcie@0 {
|
|||
|
||||
/* controller at 0x201000 */
|
||||
&pci1 {
|
||||
compatible = "fsl,p4080-pcie";
|
||||
compatible = "fsl,p4080-pcie", "fsl,qoriq-pcie-v2.1";
|
||||
device_type = "pci";
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
bus-range = <0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 14>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x504>; /* PEX2LIODNR */
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -95,13 +99,15 @@ pcie@0 {
|
|||
|
||||
/* controller at 0x202000 */
|
||||
&pci2 {
|
||||
compatible = "fsl,p4080-pcie";
|
||||
compatible = "fsl,p4080-pcie", "fsl,qoriq-pcie-v2.1";
|
||||
device_type = "pci";
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
bus-range = <0x0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 13>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x508>; /* PEX3LIODNR */
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -126,18 +132,21 @@ &rio {
|
|||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
fsl,srio-rmu-handle = <&rmu>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
ranges;
|
||||
|
||||
port1 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
cell-index = <1>;
|
||||
fsl,liodn-reg = <&guts 0x510>; /* RIO1LIODNR */
|
||||
};
|
||||
|
||||
port2 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
cell-index = <2>;
|
||||
fsl,liodn-reg = <&guts 0x514>; /* RIO2LIODNR */
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -281,13 +290,51 @@ corenet-cf@18000 {
|
|||
|
||||
iommu@20000 {
|
||||
compatible = "fsl,pamu-v1.0", "fsl,pamu";
|
||||
reg = <0x20000 0x5000>;
|
||||
reg = <0x20000 0x5000>; /* for compatibility with older PAMU drivers */
|
||||
ranges = <0 0x20000 0x5000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupts = <
|
||||
24 2 0 0
|
||||
16 2 1 30>;
|
||||
|
||||
pamu0: pamu@0 {
|
||||
reg = <0 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu1: pamu@1000 {
|
||||
reg = <0x1000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu2: pamu@2000 {
|
||||
reg = <0x2000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu3: pamu@3000 {
|
||||
reg = <0x3000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu4: pamu@4000 {
|
||||
reg = <0x4000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "qoriq-rmu-0.dtsi"
|
||||
rmu@d3000 {
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x540>; /* RMULIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-mpic.dtsi"
|
||||
|
||||
guts: global-utilities@e0000 {
|
||||
|
@ -327,7 +374,17 @@ serdes: serdes@ea000 {
|
|||
};
|
||||
|
||||
/include/ "qoriq-dma-0.dtsi"
|
||||
dma@100300 {
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x580>; /* DMA1LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-dma-1.dtsi"
|
||||
dma@101300 {
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-espi-0.dtsi"
|
||||
spi@110000 {
|
||||
fsl,espi-num-chipselects = <4>;
|
||||
|
@ -335,6 +392,8 @@ spi@110000 {
|
|||
|
||||
/include/ "qoriq-esdhc-0.dtsi"
|
||||
sdhc@114000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x530>; /* eSDHCLIODNR */
|
||||
voltage-ranges = <3300 3300>;
|
||||
sdhci,auto-cmd12;
|
||||
};
|
||||
|
@ -347,11 +406,18 @@ sdhc@114000 {
|
|||
/include/ "qoriq-usb2-mph-0.dtsi"
|
||||
usb@210000 {
|
||||
compatible = "fsl-usb2-mph-v1.6", "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph";
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x520>; /* USB1LIODNR */
|
||||
port0;
|
||||
};
|
||||
/include/ "qoriq-usb2-dr-0.dtsi"
|
||||
usb@211000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x524>; /* USB2LIODNR */
|
||||
};
|
||||
/include/ "qoriq-sec4.0-0.dtsi"
|
||||
crypto: crypto@300000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -48,6 +48,8 @@ &pci0 {
|
|||
bus-range = <0x0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 15>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x500>; /* PEX1LIODNR */
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -75,6 +77,8 @@ &pci1 {
|
|||
bus-range = <0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 14>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x504>; /* PEX2LIODNR */
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -102,6 +106,8 @@ &pci2 {
|
|||
bus-range = <0x0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 13>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x508>; /* PEX3LIODNR */
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -129,6 +135,8 @@ &pci3 {
|
|||
bus-range = <0x0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 12>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x50c>; /* PEX4LIODNR */
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -152,18 +160,21 @@ &rio {
|
|||
interrupts = <16 2 1 11>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
ranges;
|
||||
|
||||
port1 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
cell-index = <1>;
|
||||
fsl,liodn-reg = <&guts 0x510>; /* RIO1LIODNR */
|
||||
};
|
||||
|
||||
port2 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
cell-index = <2>;
|
||||
fsl,liodn-reg = <&guts 0x514>; /* RIO2LIODNR */
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -276,10 +287,37 @@ corenet-cf@18000 {
|
|||
|
||||
iommu@20000 {
|
||||
compatible = "fsl,pamu-v1.0", "fsl,pamu";
|
||||
reg = <0x20000 0x4000>;
|
||||
reg = <0x20000 0x4000>; /* for compatibility with older PAMU drivers */
|
||||
ranges = <0 0x20000 0x4000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupts = <
|
||||
24 2 0 0
|
||||
16 2 1 30>;
|
||||
|
||||
pamu0: pamu@0 {
|
||||
reg = <0 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu1: pamu@1000 {
|
||||
reg = <0x1000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu2: pamu@2000 {
|
||||
reg = <0x2000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu3: pamu@3000 {
|
||||
reg = <0x3000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "qoriq-mpic.dtsi"
|
||||
|
@ -321,7 +359,17 @@ serdes: serdes@ea000 {
|
|||
};
|
||||
|
||||
/include/ "qoriq-dma-0.dtsi"
|
||||
dma@100300 {
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x580>; /* DMA1LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-dma-1.dtsi"
|
||||
dma@101300 {
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-espi-0.dtsi"
|
||||
spi@110000 {
|
||||
fsl,espi-num-chipselects = <4>;
|
||||
|
@ -329,6 +377,8 @@ spi@110000 {
|
|||
|
||||
/include/ "qoriq-esdhc-0.dtsi"
|
||||
sdhc@114000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x530>; /* eSDHCLIODNR */
|
||||
sdhci,auto-cmd12;
|
||||
};
|
||||
|
||||
|
@ -340,6 +390,8 @@ sdhc@114000 {
|
|||
/include/ "qoriq-usb2-mph-0.dtsi"
|
||||
usb0: usb@210000 {
|
||||
compatible = "fsl-usb2-mph-v1.6", "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph";
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x520>; /* USB1LIODNR */
|
||||
phy_type = "utmi";
|
||||
port0;
|
||||
};
|
||||
|
@ -347,12 +399,30 @@ usb0: usb@210000 {
|
|||
/include/ "qoriq-usb2-dr-0.dtsi"
|
||||
usb1: usb@211000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x524>; /* USB2LIODNR */
|
||||
dr_mode = "host";
|
||||
phy_type = "utmi";
|
||||
};
|
||||
|
||||
/include/ "qoriq-sata2-0.dtsi"
|
||||
sata@220000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x550>; /* SATA1LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-sata2-1.dtsi"
|
||||
sata@221000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
fsl,liodn-reg = <&guts 0x554>; /* SATA2LIODNR */
|
||||
};
|
||||
/include/ "qoriq-sec4.2-0.dtsi"
|
||||
crypto@300000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
};
|
||||
|
||||
/include/ "qoriq-raid1.0-0.dtsi"
|
||||
raideng@320000 {
|
||||
fsl,iommu-parent = <&pamu1>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -48,6 +48,7 @@ &pci0 {
|
|||
bus-range = <0x0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 15>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -75,6 +76,7 @@ &pci1 {
|
|||
bus-range = <0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 14>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -102,6 +104,7 @@ &pci2 {
|
|||
bus-range = <0x0 0xff>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupts = <16 2 1 13>;
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -239,10 +242,42 @@ corenet-cf@18000 {
|
|||
|
||||
iommu@20000 {
|
||||
compatible = "fsl,pamu-v1.0", "fsl,pamu";
|
||||
reg = <0x20000 0x5000>;
|
||||
interrupts = <
|
||||
24 2 0 0
|
||||
reg = <0x20000 0x5000>; /* for compatibility with older PAMU drivers */
|
||||
ranges = <0 0x20000 0x5000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupts = <24 2 0 0
|
||||
16 2 1 30>;
|
||||
|
||||
pamu0: pamu@0 {
|
||||
reg = <0 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu1: pamu@1000 {
|
||||
reg = <0x1000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu2: pamu@2000 {
|
||||
reg = <0x2000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu3: pamu@3000 {
|
||||
reg = <0x3000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
|
||||
pamu4: pamu@4000 {
|
||||
reg = <0x4000 0x1000>;
|
||||
fsl,primary-cache-geometry = <32 1>;
|
||||
fsl,secondary-cache-geometry = <128 2>;
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "qoriq-mpic.dtsi"
|
||||
|
@ -284,7 +319,17 @@ serdes: serdes@ea000 {
|
|||
};
|
||||
|
||||
/include/ "qoriq-dma-0.dtsi"
|
||||
dma@100300 {
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x580>; /* DMA1LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-dma-1.dtsi"
|
||||
dma@101300 {
|
||||
fsl,iommu-parent = <&pamu0>;
|
||||
fsl,liodn-reg = <&guts 0x584>; /* DMA2LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-espi-0.dtsi"
|
||||
spi@110000 {
|
||||
fsl,espi-num-chipselects = <4>;
|
||||
|
@ -292,6 +337,8 @@ spi@110000 {
|
|||
|
||||
/include/ "qoriq-esdhc-0.dtsi"
|
||||
sdhc@114000 {
|
||||
fsl,iommu-parent = <&pamu2>;
|
||||
fsl,liodn-reg = <&guts 0x530>; /* eSDHCLIODNR */
|
||||
sdhci,auto-cmd12;
|
||||
};
|
||||
|
||||
|
@ -303,6 +350,8 @@ sdhc@114000 {
|
|||
/include/ "qoriq-usb2-mph-0.dtsi"
|
||||
usb0: usb@210000 {
|
||||
compatible = "fsl-usb2-mph-v1.6", "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph";
|
||||
fsl,iommu-parent = <&pamu4>;
|
||||
fsl,liodn-reg = <&guts 0x520>; /* USB1LIODNR */
|
||||
phy_type = "utmi";
|
||||
port0;
|
||||
};
|
||||
|
@ -310,11 +359,26 @@ usb0: usb@210000 {
|
|||
/include/ "qoriq-usb2-dr-0.dtsi"
|
||||
usb1: usb@211000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
|
||||
fsl,iommu-parent = <&pamu4>;
|
||||
fsl,liodn-reg = <&guts 0x524>; /* USB2LIODNR */
|
||||
dr_mode = "host";
|
||||
phy_type = "utmi";
|
||||
};
|
||||
|
||||
/include/ "qoriq-sata2-0.dtsi"
|
||||
sata@220000 {
|
||||
fsl,iommu-parent = <&pamu4>;
|
||||
fsl,liodn-reg = <&guts 0x550>; /* SATA1LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-sata2-1.dtsi"
|
||||
sata@221000 {
|
||||
fsl,iommu-parent = <&pamu4>;
|
||||
fsl,liodn-reg = <&guts 0x554>; /* SATA2LIODNR */
|
||||
};
|
||||
|
||||
/include/ "qoriq-sec5.2-0.dtsi"
|
||||
crypto@300000 {
|
||||
fsl,iommu-parent = <&pamu4>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -36,6 +36,7 @@ crypto@30000 {
|
|||
compatible = "fsl,sec-v4.4", "fsl,sec-v4.0";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x30000 0x10000>;
|
||||
reg = <0x30000 0x10000>;
|
||||
interrupts = <58 2 0 0>;
|
||||
|
||||
|
|
|
@ -0,0 +1,166 @@
|
|||
/*
|
||||
* PPA8548 Device Tree Source (36-bit address map)
|
||||
* Copyright 2013 Prodrive B.V.
|
||||
*
|
||||
* Based on:
|
||||
* MPC8548 CDS Device Tree Source (36-bit address map)
|
||||
* Copyright 2012 Freescale Semiconductor Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*/
|
||||
|
||||
/include/ "fsl/mpc8548si-pre.dtsi"
|
||||
|
||||
/ {
|
||||
model = "ppa8548";
|
||||
compatible = "ppa8548";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0 0 0x0 0x40000000>;
|
||||
};
|
||||
|
||||
lbc: localbus@fe0005000 {
|
||||
reg = <0xf 0xe0005000 0 0x1000>;
|
||||
ranges = <0x0 0x0 0xf 0xff800000 0x00800000>;
|
||||
};
|
||||
|
||||
soc: soc8548@fe0000000 {
|
||||
ranges = <0 0xf 0xe0000000 0x100000>;
|
||||
};
|
||||
|
||||
pci0: pci@fe0008000 {
|
||||
/* ppa8548 board doesn't support PCI */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pci1: pci@fe0009000 {
|
||||
/* ppa8548 board doesn't support PCI */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pci2: pcie@fe000a000 {
|
||||
/* ppa8548 board doesn't support PCI */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
rio: rapidio@fe00c0000 {
|
||||
reg = <0xf 0xe00c0000 0x0 0x11000>;
|
||||
port1 {
|
||||
ranges = <0x0 0x0 0x0 0x80000000 0x0 0x40000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&lbc {
|
||||
nor@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x0 0x0 0x00800000>;
|
||||
bank-width = <2>;
|
||||
device-width = <2>;
|
||||
|
||||
partition@0 {
|
||||
reg = <0x0 0x7A0000>;
|
||||
label = "user";
|
||||
};
|
||||
|
||||
partition@7A0000 {
|
||||
reg = <0x7A0000 0x20000>;
|
||||
label = "env";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@7C0000 {
|
||||
reg = <0x7C0000 0x40000>;
|
||||
label = "u-boot";
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
i2c@3000 {
|
||||
rtc@6f {
|
||||
compatible = "intersil,isl1208";
|
||||
reg = <0x6f>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@3100 {
|
||||
};
|
||||
|
||||
/*
|
||||
* Only ethernet controller @25000 and @26000 are used.
|
||||
* Use alias enet2 and enet3 for the remainig controllers,
|
||||
* to stay compatible with mpc8548si-pre.dtsi.
|
||||
*/
|
||||
enet2: ethernet@24000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mdio@24520 {
|
||||
phy0: ethernet-phy@0 {
|
||||
interrupts = <7 1 0 0>;
|
||||
reg = <0x0>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
phy1: ethernet-phy@1 {
|
||||
interrupts = <8 1 0 0>;
|
||||
reg = <0x1>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
tbi0: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet0: ethernet@25000 {
|
||||
tbi-handle = <&tbi1>;
|
||||
phy-handle = <&phy0>;
|
||||
};
|
||||
|
||||
mdio@25520 {
|
||||
tbi1: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet1: ethernet@26000 {
|
||||
tbi-handle = <&tbi2>;
|
||||
phy-handle = <&phy1>;
|
||||
};
|
||||
|
||||
mdio@26520 {
|
||||
tbi2: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet3: ethernet@27000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mdio@27520 {
|
||||
tbi3: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
crypto@30000 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "fsl/mpc8548si-post.dtsi"
|
|
@ -0,0 +1,115 @@
|
|||
/*
|
||||
* SBC8548 Device Tree Source
|
||||
*
|
||||
* Configured for booting off the alternate (64MB SODIMM) flash.
|
||||
* Requires switching JP12 jumpers and changing SW2.8 setting.
|
||||
*
|
||||
* Copyright 2013 Wind River Systems Inc.
|
||||
*
|
||||
* Paul Gortmaker (see MAINTAINERS for contact information)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*/
|
||||
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/include/ "sbc8548-pre.dtsi"
|
||||
|
||||
/{
|
||||
localbus@e0000000 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
compatible = "simple-bus";
|
||||
reg = <0xe0000000 0x5000>;
|
||||
interrupt-parent = <&mpic>;
|
||||
|
||||
ranges = <0x0 0x0 0xfc000000 0x04000000 /*64MB Flash*/
|
||||
0x3 0x0 0xf0000000 0x04000000 /*64MB SDRAM*/
|
||||
0x4 0x0 0xf4000000 0x04000000 /*64MB SDRAM*/
|
||||
0x5 0x0 0xf8000000 0x00b10000 /* EPLD */
|
||||
0x6 0x0 0xef800000 0x00800000>; /*8MB Flash*/
|
||||
|
||||
flash@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x0 0x0 0x04000000>;
|
||||
compatible = "intel,JS28F128", "cfi-flash";
|
||||
bank-width = <4>;
|
||||
device-width = <1>;
|
||||
partition@0x0 {
|
||||
label = "space";
|
||||
/* FC000000 -> FFEFFFFF */
|
||||
reg = <0x00000000 0x03f00000>;
|
||||
};
|
||||
partition@0x03f00000 {
|
||||
label = "bootloader";
|
||||
/* FFF00000 -> FFFFFFFF */
|
||||
reg = <0x03f00000 0x00100000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
epld@5,0 {
|
||||
compatible = "wrs,epld-localbus";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x5 0x0 0x00b10000>;
|
||||
ranges = <
|
||||
0x0 0x0 0x5 0x000000 0x1fff /* LED */
|
||||
0x1 0x0 0x5 0x100000 0x1fff /* Switches */
|
||||
0x3 0x0 0x5 0x300000 0x1fff /* HW Rev. */
|
||||
0xb 0x0 0x5 0xb00000 0x1fff /* EEPROM */
|
||||
>;
|
||||
|
||||
led@0,0 {
|
||||
compatible = "led";
|
||||
reg = <0x0 0x0 0x1fff>;
|
||||
};
|
||||
|
||||
switches@1,0 {
|
||||
compatible = "switches";
|
||||
reg = <0x1 0x0 0x1fff>;
|
||||
};
|
||||
|
||||
hw-rev@3,0 {
|
||||
compatible = "hw-rev";
|
||||
reg = <0x3 0x0 0x1fff>;
|
||||
};
|
||||
|
||||
eeprom@b,0 {
|
||||
compatible = "eeprom";
|
||||
reg = <0xb 0 0x1fff>;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
alt-flash@6,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "intel,JS28F640", "cfi-flash";
|
||||
reg = <0x6 0x0 0x800000>;
|
||||
bank-width = <1>;
|
||||
device-width = <1>;
|
||||
partition@0x0 {
|
||||
label = "space";
|
||||
/* EF800000 -> EFF9FFFF */
|
||||
reg = <0x00000000 0x007a0000>;
|
||||
};
|
||||
partition@0x7a0000 {
|
||||
label = "bootloader";
|
||||
/* EFFA0000 -> EFFFFFFF */
|
||||
reg = <0x007a0000 0x00060000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "sbc8548-post.dtsi"
|
|
@ -0,0 +1,295 @@
|
|||
/*
|
||||
* SBC8548 Device Tree Source
|
||||
*
|
||||
* Copyright 2007 Wind River Systems Inc.
|
||||
*
|
||||
* Paul Gortmaker (see MAINTAINERS for contact information)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*/
|
||||
|
||||
/{
|
||||
soc8548@e0000000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
ranges = <0x00000000 0xe0000000 0x00100000>;
|
||||
bus-frequency = <0>;
|
||||
compatible = "simple-bus";
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8548-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8548-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <0x12 0x2>;
|
||||
};
|
||||
|
||||
L2: l2-cache-controller@20000 {
|
||||
compatible = "fsl,mpc8548-l2-cache-controller";
|
||||
reg = <0x20000 0x1000>;
|
||||
cache-line-size = <0x20>; // 32 bytes
|
||||
cache-size = <0x80000>; // L2, 512K
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <0x10 0x2>;
|
||||
};
|
||||
|
||||
i2c@3000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cell-index = <0>;
|
||||
compatible = "fsl-i2c";
|
||||
reg = <0x3000 0x100>;
|
||||
interrupts = <0x2b 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
dfsrr;
|
||||
};
|
||||
|
||||
i2c@3100 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cell-index = <1>;
|
||||
compatible = "fsl-i2c";
|
||||
reg = <0x3100 0x100>;
|
||||
interrupts = <0x2b 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
dfsrr;
|
||||
};
|
||||
|
||||
dma@21300 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,mpc8548-dma", "fsl,eloplus-dma";
|
||||
reg = <0x21300 0x4>;
|
||||
ranges = <0x0 0x21100 0x200>;
|
||||
cell-index = <0>;
|
||||
dma-channel@0 {
|
||||
compatible = "fsl,mpc8548-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x0 0x80>;
|
||||
cell-index = <0>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <20 2>;
|
||||
};
|
||||
dma-channel@80 {
|
||||
compatible = "fsl,mpc8548-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x80 0x80>;
|
||||
cell-index = <1>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <21 2>;
|
||||
};
|
||||
dma-channel@100 {
|
||||
compatible = "fsl,mpc8548-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x100 0x80>;
|
||||
cell-index = <2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <22 2>;
|
||||
};
|
||||
dma-channel@180 {
|
||||
compatible = "fsl,mpc8548-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x180 0x80>;
|
||||
cell-index = <3>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <23 2>;
|
||||
};
|
||||
};
|
||||
|
||||
enet0: ethernet@24000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
cell-index = <0>;
|
||||
device_type = "network";
|
||||
model = "eTSEC";
|
||||
compatible = "gianfar";
|
||||
reg = <0x24000 0x1000>;
|
||||
ranges = <0x0 0x24000 0x1000>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
tbi-handle = <&tbi0>;
|
||||
phy-handle = <&phy0>;
|
||||
|
||||
mdio@520 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,gianfar-mdio";
|
||||
reg = <0x520 0x20>;
|
||||
|
||||
phy0: ethernet-phy@19 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <0x6 0x1>;
|
||||
reg = <0x19>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
phy1: ethernet-phy@1a {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <0x7 0x1>;
|
||||
reg = <0x1a>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
tbi0: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
enet1: ethernet@25000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
cell-index = <1>;
|
||||
device_type = "network";
|
||||
model = "eTSEC";
|
||||
compatible = "gianfar";
|
||||
reg = <0x25000 0x1000>;
|
||||
ranges = <0x0 0x25000 0x1000>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <0x23 0x2 0x24 0x2 0x28 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
tbi-handle = <&tbi1>;
|
||||
phy-handle = <&phy1>;
|
||||
|
||||
mdio@520 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,gianfar-tbi";
|
||||
reg = <0x520 0x20>;
|
||||
|
||||
tbi1: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
serial0: serial@4500 {
|
||||
cell-index = <0>;
|
||||
device_type = "serial";
|
||||
compatible = "fsl,ns16550", "ns16550";
|
||||
reg = <0x4500 0x100>; // reg base, size
|
||||
clock-frequency = <0>; // should we fill in in uboot?
|
||||
interrupts = <0x2a 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
serial1: serial@4600 {
|
||||
cell-index = <1>;
|
||||
device_type = "serial";
|
||||
compatible = "fsl,ns16550", "ns16550";
|
||||
reg = <0x4600 0x100>; // reg base, size
|
||||
clock-frequency = <0>; // should we fill in in uboot?
|
||||
interrupts = <0x2a 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
global-utilities@e0000 { //global utilities reg
|
||||
compatible = "fsl,mpc8548-guts";
|
||||
reg = <0xe0000 0x1000>;
|
||||
fsl,has-rstcr;
|
||||
};
|
||||
|
||||
crypto@30000 {
|
||||
compatible = "fsl,sec2.1", "fsl,sec2.0";
|
||||
reg = <0x30000 0x10000>;
|
||||
interrupts = <45 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
fsl,num-channels = <4>;
|
||||
fsl,channel-fifo-len = <24>;
|
||||
fsl,exec-units-mask = <0xfe>;
|
||||
fsl,descriptor-types-mask = <0x12b0ebf>;
|
||||
};
|
||||
|
||||
mpic: pic@40000 {
|
||||
interrupt-controller;
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x40000 0x40000>;
|
||||
compatible = "chrp,open-pic";
|
||||
device_type = "open-pic";
|
||||
};
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x01 (PCI-X slot) @66MHz */
|
||||
0x0800 0x0 0x0 0x1 &mpic 0x2 0x1
|
||||
0x0800 0x0 0x0 0x2 &mpic 0x3 0x1
|
||||
0x0800 0x0 0x0 0x3 &mpic 0x4 0x1
|
||||
0x0800 0x0 0x0 0x4 &mpic 0x1 0x1
|
||||
|
||||
/* IDSEL 0x11 (PCI, 3.3V 32bit) @33MHz */
|
||||
0x8800 0x0 0x0 0x1 &mpic 0x2 0x1
|
||||
0x8800 0x0 0x0 0x2 &mpic 0x3 0x1
|
||||
0x8800 0x0 0x0 0x3 &mpic 0x4 0x1
|
||||
0x8800 0x0 0x0 0x4 &mpic 0x1 0x1>;
|
||||
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <0x18 0x2>;
|
||||
bus-range = <0 0>;
|
||||
ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x10000000
|
||||
0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00800000>;
|
||||
clock-frequency = <66000000>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
reg = <0xe0008000 0x1000>;
|
||||
compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
|
||||
device_type = "pci";
|
||||
};
|
||||
|
||||
pci1: pcie@e000a000 {
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
/* IDSEL 0x0 (PEX) */
|
||||
0x0000 0x0 0x0 0x1 &mpic 0x0 0x1
|
||||
0x0000 0x0 0x0 0x2 &mpic 0x1 0x1
|
||||
0x0000 0x0 0x0 0x3 &mpic 0x2 0x1
|
||||
0x0000 0x0 0x0 0x4 &mpic 0x3 0x1>;
|
||||
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <0x1a 0x2>;
|
||||
bus-range = <0x0 0xff>;
|
||||
ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000
|
||||
0x01000000 0x0 0x00000000 0xe2800000 0x0 0x08000000>;
|
||||
clock-frequency = <33000000>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
reg = <0xe000a000 0x1000>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
pcie@0 {
|
||||
reg = <0x0 0x0 0x0 0x0 0x0>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
device_type = "pci";
|
||||
ranges = <0x02000000 0x0 0xa0000000
|
||||
0x02000000 0x0 0xa0000000
|
||||
0x0 0x10000000
|
||||
|
||||
0x01000000 0x0 0x00000000
|
||||
0x01000000 0x0 0x00000000
|
||||
0x0 0x00800000>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
* SBC8548 Device Tree Source
|
||||
*
|
||||
* Copyright 2007 Wind River Systems Inc.
|
||||
*
|
||||
* Paul Gortmaker (see MAINTAINERS for contact information)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*/
|
||||
|
||||
/{
|
||||
model = "SBC8548";
|
||||
compatible = "SBC8548";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
aliases {
|
||||
ethernet0 = &enet0;
|
||||
ethernet1 = &enet1;
|
||||
serial0 = &serial0;
|
||||
serial1 = &serial1;
|
||||
pci0 = &pci0;
|
||||
pci1 = &pci1;
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
PowerPC,8548@0 {
|
||||
device_type = "cpu";
|
||||
reg = <0>;
|
||||
d-cache-line-size = <0x20>; // 32 bytes
|
||||
i-cache-line-size = <0x20>; // 32 bytes
|
||||
d-cache-size = <0x8000>; // L1, 32K
|
||||
i-cache-size = <0x8000>; // L1, 32K
|
||||
timebase-frequency = <0>; // From uboot
|
||||
bus-frequency = <0>;
|
||||
clock-frequency = <0>;
|
||||
next-level-cache = <&L2>;
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x10000000>;
|
||||
};
|
||||
|
||||
};
|
|
@ -14,44 +14,9 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
model = "SBC8548";
|
||||
compatible = "SBC8548";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
aliases {
|
||||
ethernet0 = &enet0;
|
||||
ethernet1 = &enet1;
|
||||
serial0 = &serial0;
|
||||
serial1 = &serial1;
|
||||
pci0 = &pci0;
|
||||
pci1 = &pci1;
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
PowerPC,8548@0 {
|
||||
device_type = "cpu";
|
||||
reg = <0>;
|
||||
d-cache-line-size = <0x20>; // 32 bytes
|
||||
i-cache-line-size = <0x20>; // 32 bytes
|
||||
d-cache-size = <0x8000>; // L1, 32K
|
||||
i-cache-size = <0x8000>; // L1, 32K
|
||||
timebase-frequency = <0>; // From uboot
|
||||
bus-frequency = <0>;
|
||||
clock-frequency = <0>;
|
||||
next-level-cache = <&L2>;
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x10000000>;
|
||||
};
|
||||
/include/ "sbc8548-pre.dtsi"
|
||||
|
||||
/{
|
||||
localbus@e0000000 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
|
@ -63,23 +28,25 @@ localbus@e0000000 {
|
|||
0x3 0x0 0xf0000000 0x04000000 /*64MB SDRAM*/
|
||||
0x4 0x0 0xf4000000 0x04000000 /*64MB SDRAM*/
|
||||
0x5 0x0 0xf8000000 0x00b10000 /* EPLD */
|
||||
0x6 0x0 0xfb800000 0x04000000>; /*64MB Flash*/
|
||||
0x6 0x0 0xec000000 0x04000000>; /*64MB Flash*/
|
||||
|
||||
|
||||
flash@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
compatible = "intel,JS28F640", "cfi-flash";
|
||||
reg = <0x0 0x0 0x800000>;
|
||||
bank-width = <1>;
|
||||
device-width = <1>;
|
||||
partition@0x0 {
|
||||
label = "space";
|
||||
reg = <0x00000000 0x00100000>;
|
||||
/* FF800000 -> FFF9FFFF */
|
||||
reg = <0x00000000 0x007a0000>;
|
||||
};
|
||||
partition@0x100000 {
|
||||
partition@0x7a0000 {
|
||||
label = "bootloader";
|
||||
reg = <0x00100000 0x00700000>;
|
||||
/* FFFA0000 -> FFFFFFFF */
|
||||
reg = <0x007a0000 0x00060000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
@ -122,307 +89,22 @@ alt-flash@6,0 {
|
|||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x6 0x0 0x04000000>;
|
||||
compatible = "cfi-flash";
|
||||
compatible = "intel,JS28F128", "cfi-flash";
|
||||
bank-width = <4>;
|
||||
device-width = <1>;
|
||||
partition@0x0 {
|
||||
label = "space";
|
||||
/* EC000000 -> EFEFFFFF */
|
||||
reg = <0x00000000 0x03f00000>;
|
||||
};
|
||||
partition@0x03f00000 {
|
||||
label = "bootloader";
|
||||
reg = <0x00000000 0x00100000>;
|
||||
/* EFF00000 -> EFFFFFFF */
|
||||
reg = <0x03f00000 0x00100000>;
|
||||
read-only;
|
||||
};
|
||||
partition@0x00100000 {
|
||||
label = "file-system";
|
||||
reg = <0x00100000 0x01f00000>;
|
||||
};
|
||||
partition@0x02000000 {
|
||||
label = "boot-config";
|
||||
reg = <0x02000000 0x00100000>;
|
||||
};
|
||||
partition@0x02100000 {
|
||||
label = "space";
|
||||
reg = <0x02100000 0x01f00000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
soc8548@e0000000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
ranges = <0x00000000 0xe0000000 0x00100000>;
|
||||
bus-frequency = <0>;
|
||||
compatible = "simple-bus";
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8548-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8548-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <0x12 0x2>;
|
||||
};
|
||||
|
||||
L2: l2-cache-controller@20000 {
|
||||
compatible = "fsl,mpc8548-l2-cache-controller";
|
||||
reg = <0x20000 0x1000>;
|
||||
cache-line-size = <0x20>; // 32 bytes
|
||||
cache-size = <0x80000>; // L2, 512K
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <0x10 0x2>;
|
||||
};
|
||||
|
||||
i2c@3000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cell-index = <0>;
|
||||
compatible = "fsl-i2c";
|
||||
reg = <0x3000 0x100>;
|
||||
interrupts = <0x2b 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
dfsrr;
|
||||
};
|
||||
|
||||
i2c@3100 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cell-index = <1>;
|
||||
compatible = "fsl-i2c";
|
||||
reg = <0x3100 0x100>;
|
||||
interrupts = <0x2b 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
dfsrr;
|
||||
};
|
||||
|
||||
dma@21300 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,mpc8548-dma", "fsl,eloplus-dma";
|
||||
reg = <0x21300 0x4>;
|
||||
ranges = <0x0 0x21100 0x200>;
|
||||
cell-index = <0>;
|
||||
dma-channel@0 {
|
||||
compatible = "fsl,mpc8548-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x0 0x80>;
|
||||
cell-index = <0>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <20 2>;
|
||||
};
|
||||
dma-channel@80 {
|
||||
compatible = "fsl,mpc8548-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x80 0x80>;
|
||||
cell-index = <1>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <21 2>;
|
||||
};
|
||||
dma-channel@100 {
|
||||
compatible = "fsl,mpc8548-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x100 0x80>;
|
||||
cell-index = <2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <22 2>;
|
||||
};
|
||||
dma-channel@180 {
|
||||
compatible = "fsl,mpc8548-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x180 0x80>;
|
||||
cell-index = <3>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <23 2>;
|
||||
};
|
||||
};
|
||||
|
||||
enet0: ethernet@24000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
cell-index = <0>;
|
||||
device_type = "network";
|
||||
model = "eTSEC";
|
||||
compatible = "gianfar";
|
||||
reg = <0x24000 0x1000>;
|
||||
ranges = <0x0 0x24000 0x1000>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
tbi-handle = <&tbi0>;
|
||||
phy-handle = <&phy0>;
|
||||
|
||||
mdio@520 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,gianfar-mdio";
|
||||
reg = <0x520 0x20>;
|
||||
|
||||
phy0: ethernet-phy@19 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <0x6 0x1>;
|
||||
reg = <0x19>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
phy1: ethernet-phy@1a {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <0x7 0x1>;
|
||||
reg = <0x1a>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
tbi0: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
enet1: ethernet@25000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
cell-index = <1>;
|
||||
device_type = "network";
|
||||
model = "eTSEC";
|
||||
compatible = "gianfar";
|
||||
reg = <0x25000 0x1000>;
|
||||
ranges = <0x0 0x25000 0x1000>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <0x23 0x2 0x24 0x2 0x28 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
tbi-handle = <&tbi1>;
|
||||
phy-handle = <&phy1>;
|
||||
|
||||
mdio@520 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,gianfar-tbi";
|
||||
reg = <0x520 0x20>;
|
||||
|
||||
tbi1: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
serial0: serial@4500 {
|
||||
cell-index = <0>;
|
||||
device_type = "serial";
|
||||
compatible = "fsl,ns16550", "ns16550";
|
||||
reg = <0x4500 0x100>; // reg base, size
|
||||
clock-frequency = <0>; // should we fill in in uboot?
|
||||
interrupts = <0x2a 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
serial1: serial@4600 {
|
||||
cell-index = <1>;
|
||||
device_type = "serial";
|
||||
compatible = "fsl,ns16550", "ns16550";
|
||||
reg = <0x4600 0x100>; // reg base, size
|
||||
clock-frequency = <0>; // should we fill in in uboot?
|
||||
interrupts = <0x2a 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
global-utilities@e0000 { //global utilities reg
|
||||
compatible = "fsl,mpc8548-guts";
|
||||
reg = <0xe0000 0x1000>;
|
||||
fsl,has-rstcr;
|
||||
};
|
||||
|
||||
crypto@30000 {
|
||||
compatible = "fsl,sec2.1", "fsl,sec2.0";
|
||||
reg = <0x30000 0x10000>;
|
||||
interrupts = <45 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
fsl,num-channels = <4>;
|
||||
fsl,channel-fifo-len = <24>;
|
||||
fsl,exec-units-mask = <0xfe>;
|
||||
fsl,descriptor-types-mask = <0x12b0ebf>;
|
||||
};
|
||||
|
||||
mpic: pic@40000 {
|
||||
interrupt-controller;
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x40000 0x40000>;
|
||||
compatible = "chrp,open-pic";
|
||||
device_type = "open-pic";
|
||||
};
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x01 (PCI-X slot) @66MHz */
|
||||
0x0800 0x0 0x0 0x1 &mpic 0x2 0x1
|
||||
0x0800 0x0 0x0 0x2 &mpic 0x3 0x1
|
||||
0x0800 0x0 0x0 0x3 &mpic 0x4 0x1
|
||||
0x0800 0x0 0x0 0x4 &mpic 0x1 0x1
|
||||
|
||||
/* IDSEL 0x11 (PCI, 3.3V 32bit) @33MHz */
|
||||
0x8800 0x0 0x0 0x1 &mpic 0x2 0x1
|
||||
0x8800 0x0 0x0 0x2 &mpic 0x3 0x1
|
||||
0x8800 0x0 0x0 0x3 &mpic 0x4 0x1
|
||||
0x8800 0x0 0x0 0x4 &mpic 0x1 0x1>;
|
||||
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <0x18 0x2>;
|
||||
bus-range = <0 0>;
|
||||
ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x10000000
|
||||
0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00800000>;
|
||||
clock-frequency = <66000000>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
reg = <0xe0008000 0x1000>;
|
||||
compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
|
||||
device_type = "pci";
|
||||
};
|
||||
|
||||
pci1: pcie@e000a000 {
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
/* IDSEL 0x0 (PEX) */
|
||||
0x0000 0x0 0x0 0x1 &mpic 0x0 0x1
|
||||
0x0000 0x0 0x0 0x2 &mpic 0x1 0x1
|
||||
0x0000 0x0 0x0 0x3 &mpic 0x2 0x1
|
||||
0x0000 0x0 0x0 0x4 &mpic 0x3 0x1>;
|
||||
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <0x1a 0x2>;
|
||||
bus-range = <0x0 0xff>;
|
||||
ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000
|
||||
0x01000000 0x0 0x00000000 0xe2800000 0x0 0x08000000>;
|
||||
clock-frequency = <33000000>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
reg = <0xe000a000 0x1000>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
pcie@0 {
|
||||
reg = <0x0 0x0 0x0 0x0 0x0>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
device_type = "pci";
|
||||
ranges = <0x02000000 0x0 0xa0000000
|
||||
0x02000000 0x0 0xa0000000
|
||||
0x0 0x10000000
|
||||
|
||||
0x01000000 0x0 0x00000000
|
||||
0x01000000 0x0 0x00000000
|
||||
0x0 0x00800000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "sbc8548-post.dtsi"
|
||||
|
|
|
@ -2,6 +2,8 @@ CONFIG_EXPERIMENTAL=y
|
|||
# CONFIG_SWAP is not set
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_EXPERT=y
|
||||
CONFIG_SLAB=y
|
||||
|
@ -16,8 +18,6 @@ CONFIG_PARTITION_ADVANCED=y
|
|||
# CONFIG_PPC_PMAC is not set
|
||||
CONFIG_PPC_83xx=y
|
||||
CONFIG_KMETER1=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_PREEMPT=y
|
||||
# CONFIG_SECCOMP is not set
|
||||
CONFIG_NET=y
|
||||
|
@ -45,7 +45,6 @@ CONFIG_MTD_PHYSMAP_OF=y
|
|||
CONFIG_MTD_PHRAM=y
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_MTD_UBI_GLUEBI=y
|
||||
CONFIG_MTD_UBI_DEBUG=y
|
||||
CONFIG_PROC_DEVICETREE=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_DUMMY=y
|
||||
|
@ -76,5 +75,4 @@ CONFIG_TMPFS=y
|
|||
CONFIG_JFFS2_FS=y
|
||||
CONFIG_UBIFS_FS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
CONFIG_ROOT_NFS=y
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
CONFIG_PPC_85xx=y
|
||||
CONFIG_PPA8548=y
|
||||
CONFIG_DTC=y
|
||||
CONFIG_DEFAULT_UIMAGE=y
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
# CONFIG_PCI is not set
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
CONFIG_ADVANCED_OPTIONS=y
|
||||
CONFIG_LOWMEM_SIZE_BOOL=y
|
||||
CONFIG_LOWMEM_SIZE=0x40000000
|
||||
CONFIG_LOWMEM_CAM_NUM_BOOL=y
|
||||
CONFIG_LOWMEM_CAM_NUM=4
|
||||
CONFIG_PAGE_OFFSET_BOOL=y
|
||||
CONFIG_PAGE_OFFSET=0xb0000000
|
||||
CONFIG_KERNEL_START_BOOL=y
|
||||
CONFIG_KERNEL_START=0xb0000000
|
||||
# CONFIG_PHYSICAL_START_BOOL is not set
|
||||
CONFIG_PHYSICAL_START=0x00000000
|
||||
CONFIG_PHYSICAL_ALIGN=0x04000000
|
||||
CONFIG_TASK_SIZE_BOOL=y
|
||||
CONFIG_TASK_SIZE=0xb0000000
|
||||
|
||||
CONFIG_FSL_LBC=y
|
||||
CONFIG_FSL_DMA=y
|
||||
CONFIG_FSL_RIO=y
|
||||
|
||||
CONFIG_RAPIDIO=y
|
||||
CONFIG_RAPIDIO_DMA_ENGINE=y
|
||||
CONFIG_RAPIDIO_TSI57X=y
|
||||
CONFIG_RAPIDIO_TSI568=y
|
||||
CONFIG_RAPIDIO_CPS_XX=y
|
||||
CONFIG_RAPIDIO_CPS_GEN2=y
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_PROC_DEVICETREE=y
|
||||
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_BLKDEVS=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
CONFIG_MTD_CFI_INTELEXT=y
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
CONFIG_MTD_CONCAT=y
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
CONFIG_MTD_PHYSMAP_OF=y
|
||||
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_MPC=y
|
||||
CONFIG_I2C_CHARDEV
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_HCTOSYS=y
|
||||
CONFIG_RTC_DRV_ISL1208=y
|
||||
|
||||
CONFIG_NET=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_GIANFAR=y
|
||||
CONFIG_MARVELL_PHY=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_ROOT_NFS=y
|
|
@ -55,3 +55,22 @@ CONFIG_ROOT_NFS=y
|
|||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_OF_PARTS=y
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_BLKDEVS=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_GEN_PROBE=y
|
||||
CONFIG_MTD_CFI_ADV_OPTIONS=y
|
||||
CONFIG_MTD_CFI_NOSWAP=y
|
||||
CONFIG_MTD_CFI_GEOMETRY=y
|
||||
CONFIG_MTD_MAP_BANK_WIDTH_1=y
|
||||
CONFIG_MTD_MAP_BANK_WIDTH_2=y
|
||||
CONFIG_MTD_MAP_BANK_WIDTH_4=y
|
||||
CONFIG_MTD_CFI_I1=y
|
||||
CONFIG_MTD_CFI_I2=y
|
||||
CONFIG_MTD_CFI_I4=y
|
||||
CONFIG_MTD_CFI_INTELEXT=y
|
||||
CONFIG_MTD_CFI_UTIL=y
|
||||
CONFIG_MTD_PHYSMAP_OF=y
|
||||
|
|
|
@ -68,10 +68,6 @@ struct fsl_diu_shared_fb {
|
|||
bool in_use;
|
||||
};
|
||||
|
||||
void mpc512x_set_monitor_port(enum fsl_diu_monitor_port port)
|
||||
{
|
||||
}
|
||||
|
||||
#define DIU_DIV_MASK 0x000000ff
|
||||
void mpc512x_set_pixel_clock(unsigned int pixclock)
|
||||
{
|
||||
|
@ -303,7 +299,6 @@ void __init mpc512x_setup_diu(void)
|
|||
}
|
||||
}
|
||||
|
||||
diu_ops.set_monitor_port = mpc512x_set_monitor_port;
|
||||
diu_ops.set_pixel_clock = mpc512x_set_pixel_clock;
|
||||
diu_ops.valid_monitor_port = mpc512x_valid_monitor_port;
|
||||
diu_ops.release_bootmem = mpc512x_release_bootmem;
|
||||
|
|
|
@ -18,11 +18,11 @@
|
|||
#include <linux/fsl_devices.h>
|
||||
#include <linux/of_platform.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <linux/io.h>
|
||||
#include <asm/cpm2.h>
|
||||
#include <asm/udbg.h>
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/time.h>
|
||||
#include <linux/time.h>
|
||||
#include <asm/mpc8260.h>
|
||||
#include <asm/prom.h>
|
||||
|
||||
|
@ -36,7 +36,7 @@ static void __init km82xx_pic_init(void)
|
|||
struct device_node *np = of_find_compatible_node(NULL, NULL,
|
||||
"fsl,pq2-pic");
|
||||
if (!np) {
|
||||
printk(KERN_ERR "PIC init: can not find cpm-pic node\n");
|
||||
pr_err("PIC init: can not find cpm-pic node\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,8 +28,8 @@
|
|||
#include <linux/of_device.h>
|
||||
|
||||
#include <linux/atomic.h>
|
||||
#include <asm/time.h>
|
||||
#include <asm/io.h>
|
||||
#include <linux/time.h>
|
||||
#include <linux/io.h>
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/ipic.h>
|
||||
#include <asm/irq.h>
|
||||
|
@ -43,39 +43,9 @@
|
|||
#include "mpc83xx.h"
|
||||
|
||||
#define SVR_REV(svr) (((svr) >> 0) & 0xFFFF) /* Revision field */
|
||||
/* ************************************************************************
|
||||
*
|
||||
* Setup the architecture
|
||||
*
|
||||
*/
|
||||
static void __init mpc83xx_km_setup_arch(void)
|
||||
|
||||
static void quirk_mpc8360e_qe_enet10(void)
|
||||
{
|
||||
#ifdef CONFIG_QUICC_ENGINE
|
||||
struct device_node *np;
|
||||
#endif
|
||||
|
||||
if (ppc_md.progress)
|
||||
ppc_md.progress("kmpbec83xx_setup_arch()", 0);
|
||||
|
||||
mpc83xx_setup_pci();
|
||||
|
||||
#ifdef CONFIG_QUICC_ENGINE
|
||||
qe_reset();
|
||||
|
||||
np = of_find_node_by_name(NULL, "par_io");
|
||||
if (np != NULL) {
|
||||
par_io_init(np);
|
||||
of_node_put(np);
|
||||
|
||||
for_each_node_by_name(np, "spi")
|
||||
par_io_of_config(np);
|
||||
|
||||
for_each_node_by_name(np, "ucc")
|
||||
par_io_of_config(np);
|
||||
}
|
||||
|
||||
np = of_find_compatible_node(NULL, "network", "ucc_geth");
|
||||
if (np != NULL) {
|
||||
/*
|
||||
* handle mpc8360E Erratum QE_ENET10:
|
||||
* RGMII AC values do not meet the specification
|
||||
|
@ -88,15 +58,13 @@ static void __init mpc83xx_km_setup_arch(void)
|
|||
|
||||
np_par = of_find_node_by_name(NULL, "par_io");
|
||||
if (np_par == NULL) {
|
||||
printk(KERN_WARNING "%s couldn;t find par_io node\n",
|
||||
__func__);
|
||||
pr_warn("%s couldn;t find par_io node\n", __func__);
|
||||
return;
|
||||
}
|
||||
/* Map Parallel I/O ports registers */
|
||||
ret = of_address_to_resource(np_par, 0, &res);
|
||||
if (ret) {
|
||||
printk(KERN_WARNING "%s couldn;t map par_io registers\n",
|
||||
__func__);
|
||||
pr_warn("%s couldn;t map par_io registers\n", __func__);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -149,7 +117,44 @@ static void __init mpc83xx_km_setup_arch(void)
|
|||
}
|
||||
iounmap(base);
|
||||
of_node_put(np_par);
|
||||
}
|
||||
|
||||
/* ************************************************************************
|
||||
*
|
||||
* Setup the architecture
|
||||
*
|
||||
*/
|
||||
static void __init mpc83xx_km_setup_arch(void)
|
||||
{
|
||||
#ifdef CONFIG_QUICC_ENGINE
|
||||
struct device_node *np;
|
||||
#endif
|
||||
|
||||
if (ppc_md.progress)
|
||||
ppc_md.progress("kmpbec83xx_setup_arch()", 0);
|
||||
|
||||
mpc83xx_setup_pci();
|
||||
|
||||
#ifdef CONFIG_QUICC_ENGINE
|
||||
qe_reset();
|
||||
|
||||
np = of_find_node_by_name(NULL, "par_io");
|
||||
if (np != NULL) {
|
||||
par_io_init(np);
|
||||
of_node_put(np);
|
||||
|
||||
for_each_node_by_name(np, "spi")
|
||||
par_io_of_config(np);
|
||||
|
||||
for_each_node_by_name(np, "ucc")
|
||||
par_io_of_config(np);
|
||||
|
||||
/* Only apply this quirk when par_io is available */
|
||||
np = of_find_compatible_node(NULL, "network", "ucc_geth");
|
||||
if (np != NULL) {
|
||||
quirk_mpc8360e_qe_enet10();
|
||||
of_node_put(np);
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_QUICC_ENGINE */
|
||||
}
|
||||
|
|
|
@ -191,6 +191,13 @@ config SBC8548
|
|||
help
|
||||
This option enables support for the Wind River SBC8548 board
|
||||
|
||||
config PPA8548
|
||||
bool "Prodrive PPA8548"
|
||||
help
|
||||
This option enables support for the Prodrive PPA8548 board.
|
||||
select DEFAULT_UIMAGE
|
||||
select HAS_RAPIDIO
|
||||
|
||||
config GE_IMP3A
|
||||
bool "GE Intelligent Platforms IMP3A"
|
||||
select DEFAULT_UIMAGE
|
||||
|
|
|
@ -25,6 +25,7 @@ obj-$(CONFIG_P5040_DS) += p5040_ds.o corenet_ds.o
|
|||
obj-$(CONFIG_STX_GP3) += stx_gp3.o
|
||||
obj-$(CONFIG_TQM85xx) += tqm85xx.o
|
||||
obj-$(CONFIG_SBC8548) += sbc8548.o
|
||||
obj-$(CONFIG_PPA8548) += ppa8548.o
|
||||
obj-$(CONFIG_SOCRATES) += socrates.o socrates_fpga_pic.o
|
||||
obj-$(CONFIG_KSI8560) += ksi8560.o
|
||||
obj-$(CONFIG_XES_MPC85xx) += xes_mpc85xx.o
|
||||
|
|
|
@ -206,9 +206,7 @@ static void __init mpc85xx_mds_reset_ucc_phys(void)
|
|||
setbits8(&bcsr_regs[7], BCSR7_UCC12_GETHnRST);
|
||||
clrbits8(&bcsr_regs[8], BCSR8_UEM_MARVELL_RST);
|
||||
|
||||
for (np = NULL; (np = of_find_compatible_node(np,
|
||||
"network",
|
||||
"ucc_geth")) != NULL;) {
|
||||
for_each_compatible_node(np, "network", "ucc_geth") {
|
||||
const unsigned int *prop;
|
||||
int ucc_num;
|
||||
|
||||
|
|
|
@ -106,42 +106,6 @@
|
|||
(c2 << AD_COMP_2_SHIFT) | (c1 << AD_COMP_1_SHIFT) | \
|
||||
(c0 << AD_COMP_0_SHIFT) | (size << AD_PIXEL_S_SHIFT))
|
||||
|
||||
/**
|
||||
* p1022ds_get_pixel_format: return the Area Descriptor for a given pixel depth
|
||||
*
|
||||
* The Area Descriptor is a 32-bit value that determine which bits in each
|
||||
* pixel are to be used for each color.
|
||||
*/
|
||||
static u32 p1022ds_get_pixel_format(enum fsl_diu_monitor_port port,
|
||||
unsigned int bits_per_pixel)
|
||||
{
|
||||
switch (bits_per_pixel) {
|
||||
case 32:
|
||||
/* 0x88883316 */
|
||||
return MAKE_AD(3, 2, 0, 1, 3, 8, 8, 8, 8);
|
||||
case 24:
|
||||
/* 0x88082219 */
|
||||
return MAKE_AD(4, 0, 1, 2, 2, 0, 8, 8, 8);
|
||||
case 16:
|
||||
/* 0x65053118 */
|
||||
return MAKE_AD(4, 2, 1, 0, 1, 5, 6, 5, 0);
|
||||
default:
|
||||
pr_err("fsl-diu: unsupported pixel depth %u\n", bits_per_pixel);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* p1022ds_set_gamma_table: update the gamma table, if necessary
|
||||
*
|
||||
* On some boards, the gamma table for some ports may need to be modified.
|
||||
* This is not the case on the P1022DS, so we do nothing.
|
||||
*/
|
||||
static void p1022ds_set_gamma_table(enum fsl_diu_monitor_port port,
|
||||
char *gamma_table_base)
|
||||
{
|
||||
}
|
||||
|
||||
struct fsl_law {
|
||||
u32 lawbar;
|
||||
u32 reserved1;
|
||||
|
@ -302,7 +266,7 @@ static void p1022ds_set_monitor_port(enum fsl_diu_monitor_port port)
|
|||
goto exit;
|
||||
}
|
||||
cs1_addr = lbc_br_to_phys(ecm, num_laws, br1);
|
||||
if (!cs0_addr) {
|
||||
if (!cs1_addr) {
|
||||
pr_err("p1022ds: could not determine physical address for CS1"
|
||||
" (BR1=%08x)\n", br1);
|
||||
goto exit;
|
||||
|
@ -510,8 +474,6 @@ static void __init p1022_ds_setup_arch(void)
|
|||
ppc_md.progress("p1022_ds_setup_arch()", 0);
|
||||
|
||||
#if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE)
|
||||
diu_ops.get_pixel_format = p1022ds_get_pixel_format;
|
||||
diu_ops.set_gamma_table = p1022ds_set_gamma_table;
|
||||
diu_ops.set_monitor_port = p1022ds_set_monitor_port;
|
||||
diu_ops.set_pixel_clock = p1022ds_set_pixel_clock;
|
||||
diu_ops.valid_monitor_port = p1022ds_valid_monitor_port;
|
||||
|
|
|
@ -34,17 +34,6 @@
|
|||
#define CLKDVDR_PXCKDLY 0x06000000
|
||||
#define CLKDVDR_PXCLK_MASK 0x00FF0000
|
||||
|
||||
/**
|
||||
* p1022rdk_set_monitor_port: switch the output to a different monitor port
|
||||
*/
|
||||
static void p1022rdk_set_monitor_port(enum fsl_diu_monitor_port port)
|
||||
{
|
||||
if (port != FSL_DIU_PORT_DVI) {
|
||||
pr_err("p1022rdk: unsupported monitor port %i\n", port);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* p1022rdk_set_pixel_clock: program the DIU's clock
|
||||
*
|
||||
|
@ -124,7 +113,6 @@ static void __init p1022_rdk_setup_arch(void)
|
|||
ppc_md.progress("p1022_rdk_setup_arch()", 0);
|
||||
|
||||
#if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE)
|
||||
diu_ops.set_monitor_port = p1022rdk_set_monitor_port;
|
||||
diu_ops.set_pixel_clock = p1022rdk_set_pixel_clock;
|
||||
diu_ops.valid_monitor_port = p1022rdk_valid_monitor_port;
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
/*
|
||||
* ppa8548 setup and early boot code.
|
||||
*
|
||||
* Copyright 2009 Prodrive B.V..
|
||||
*
|
||||
* By Stef van Os (see MAINTAINERS for contact information)
|
||||
*
|
||||
* Based on the SBC8548 support - Copyright 2007 Wind River Systems Inc.
|
||||
* Based on the MPC8548CDS support - Copyright 2005 Freescale Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*/
|
||||
|
||||
#include <linux/stddef.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/of_platform.h>
|
||||
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/udbg.h>
|
||||
#include <asm/mpic.h>
|
||||
|
||||
#include <sysdev/fsl_soc.h>
|
||||
|
||||
static void __init ppa8548_pic_init(void)
|
||||
{
|
||||
struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN,
|
||||
0, 256, " OpenPIC ");
|
||||
BUG_ON(mpic == NULL);
|
||||
mpic_init(mpic);
|
||||
}
|
||||
|
||||
/*
|
||||
* Setup the architecture
|
||||
*/
|
||||
static void __init ppa8548_setup_arch(void)
|
||||
{
|
||||
if (ppc_md.progress)
|
||||
ppc_md.progress("ppa8548_setup_arch()", 0);
|
||||
}
|
||||
|
||||
static void ppa8548_show_cpuinfo(struct seq_file *m)
|
||||
{
|
||||
uint32_t svid, phid1;
|
||||
|
||||
svid = mfspr(SPRN_SVR);
|
||||
|
||||
seq_printf(m, "Vendor\t\t: Prodrive B.V.\n");
|
||||
seq_printf(m, "SVR\t\t: 0x%x\n", svid);
|
||||
|
||||
/* Display cpu Pll setting */
|
||||
phid1 = mfspr(SPRN_HID1);
|
||||
seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
|
||||
}
|
||||
|
||||
static struct of_device_id __initdata of_bus_ids[] = {
|
||||
{ .name = "soc", },
|
||||
{ .type = "soc", },
|
||||
{ .compatible = "simple-bus", },
|
||||
{ .compatible = "gianfar", },
|
||||
{ .compatible = "fsl,srio", },
|
||||
{},
|
||||
};
|
||||
|
||||
static int __init declare_of_platform_devices(void)
|
||||
{
|
||||
of_platform_bus_probe(NULL, of_bus_ids, NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
machine_device_initcall(ppa8548, declare_of_platform_devices);
|
||||
|
||||
/*
|
||||
* Called very early, device-tree isn't unflattened
|
||||
*/
|
||||
static int __init ppa8548_probe(void)
|
||||
{
|
||||
unsigned long root = of_get_flat_dt_root();
|
||||
|
||||
return of_flat_dt_is_compatible(root, "ppa8548");
|
||||
}
|
||||
|
||||
define_machine(ppa8548) {
|
||||
.name = "ppa8548",
|
||||
.probe = ppa8548_probe,
|
||||
.setup_arch = ppa8548_setup_arch,
|
||||
.init_IRQ = ppa8548_pic_init,
|
||||
.show_cpuinfo = ppa8548_show_cpuinfo,
|
||||
.get_irq = mpic_get_irq,
|
||||
.restart = fsl_rstcr_restart,
|
||||
.calibrate_decr = generic_calibrate_decr,
|
||||
.progress = udbg_progress,
|
||||
};
|
|
@ -29,9 +29,10 @@
|
|||
void __init qemu_e500_pic_init(void)
|
||||
{
|
||||
struct mpic *mpic;
|
||||
unsigned int flags = MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU |
|
||||
MPIC_ENABLE_COREINT;
|
||||
|
||||
mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU,
|
||||
0, 256, " OpenPIC ");
|
||||
mpic = mpic_alloc(NULL, 0, flags, 0, 256, " OpenPIC ");
|
||||
|
||||
BUG_ON(mpic == NULL);
|
||||
mpic_init(mpic);
|
||||
|
@ -66,7 +67,7 @@ define_machine(qemu_e500) {
|
|||
#ifdef CONFIG_PCI
|
||||
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
|
||||
#endif
|
||||
.get_irq = mpic_get_irq,
|
||||
.get_irq = mpic_get_coreint_irq,
|
||||
.restart = fsl_rstcr_restart,
|
||||
.calibrate_decr = generic_calibrate_decr,
|
||||
.progress = udbg_progress,
|
||||
|
|
|
@ -203,6 +203,7 @@ static struct of_device_id mpc85xx_l2ctlr_of_match[] = {
|
|||
{ .compatible = "fsl,p1024-l2-cache-controller",},
|
||||
{ .compatible = "fsl,p1015-l2-cache-controller",},
|
||||
{ .compatible = "fsl,p1010-l2-cache-controller",},
|
||||
{ .compatible = "fsl,bsc9131-l2-cache-controller",},
|
||||
{},
|
||||
};
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ int fsl_ifc_find(phys_addr_t addr_base)
|
|||
return -ENODEV;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(fsl_ifc_ctrl_dev->regs->cspr_cs); i++) {
|
||||
__be32 cspr = in_be32(&fsl_ifc_ctrl_dev->regs->cspr_cs[i].cspr);
|
||||
u32 cspr = in_be32(&fsl_ifc_ctrl_dev->regs->cspr_cs[i].cspr);
|
||||
if (cspr & CSPR_V && (cspr & CSPR_BA) ==
|
||||
convert_ifc_address(addr_base))
|
||||
return i;
|
||||
|
|
|
@ -74,8 +74,8 @@ int fsl_lbc_find(phys_addr_t addr_base)
|
|||
|
||||
lbc = fsl_lbc_ctrl_dev->regs;
|
||||
for (i = 0; i < ARRAY_SIZE(lbc->bank); i++) {
|
||||
__be32 br = in_be32(&lbc->bank[i].br);
|
||||
__be32 or = in_be32(&lbc->bank[i].or);
|
||||
u32 br = in_be32(&lbc->bank[i].br);
|
||||
u32 or = in_be32(&lbc->bank[i].or);
|
||||
|
||||
if (br & BR_V && (br & or & BR_BA) == fsl_lbc_addr(addr_base))
|
||||
return i;
|
||||
|
@ -97,7 +97,7 @@ EXPORT_SYMBOL(fsl_lbc_find);
|
|||
int fsl_upm_find(phys_addr_t addr_base, struct fsl_upm *upm)
|
||||
{
|
||||
int bank;
|
||||
__be32 br;
|
||||
u32 br;
|
||||
struct fsl_lbc_regs __iomem *lbc;
|
||||
|
||||
bank = fsl_lbc_find(addr_base);
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include "fsl_msi.h"
|
||||
#include "fsl_pci.h"
|
||||
|
||||
LIST_HEAD(msi_head);
|
||||
static LIST_HEAD(msi_head);
|
||||
|
||||
struct fsl_msi_feature {
|
||||
u32 fsl_pic_ip;
|
||||
|
@ -130,7 +130,7 @@ static void fsl_compose_msi_msg(struct pci_dev *pdev, int hwirq,
|
|||
struct pci_controller *hose = pci_bus_to_host(pdev->bus);
|
||||
u64 address; /* Physical address of the MSIIR */
|
||||
int len;
|
||||
const u64 *reg;
|
||||
const __be64 *reg;
|
||||
|
||||
/* If the msi-address-64 property exists, then use it */
|
||||
reg = of_get_property(hose->dn, "msi-address-64", &len);
|
||||
|
|
|
@ -421,13 +421,16 @@ void fsl_pcibios_fixup_bus(struct pci_bus *bus)
|
|||
}
|
||||
}
|
||||
|
||||
int __init fsl_add_bridge(struct device_node *dev, int is_primary)
|
||||
int __init fsl_add_bridge(struct platform_device *pdev, int is_primary)
|
||||
{
|
||||
int len;
|
||||
struct pci_controller *hose;
|
||||
struct resource rsrc;
|
||||
const int *bus_range;
|
||||
u8 hdr_type, progif;
|
||||
struct device_node *dev;
|
||||
|
||||
dev = pdev->dev.of_node;
|
||||
|
||||
if (!of_device_is_available(dev)) {
|
||||
pr_warning("%s: disabled\n", dev->full_name);
|
||||
|
@ -453,6 +456,8 @@ int __init fsl_add_bridge(struct device_node *dev, int is_primary)
|
|||
if (!hose)
|
||||
return -ENOMEM;
|
||||
|
||||
/* set platform device as the parent */
|
||||
hose->parent = &pdev->dev;
|
||||
hose->first_busno = bus_range ? bus_range[0] : 0x0;
|
||||
hose->last_busno = bus_range ? bus_range[1] : 0xff;
|
||||
|
||||
|
@ -827,13 +832,18 @@ static const struct of_device_id pci_ids[] = {
|
|||
{ .compatible = "fsl,mpc8548-pcie", },
|
||||
{ .compatible = "fsl,mpc8610-pci", },
|
||||
{ .compatible = "fsl,mpc8641-pcie", },
|
||||
{ .compatible = "fsl,p1022-pcie", },
|
||||
{ .compatible = "fsl,p1010-pcie", },
|
||||
{ .compatible = "fsl,p1023-pcie", },
|
||||
{ .compatible = "fsl,p4080-pcie", },
|
||||
{ .compatible = "fsl,qoriq-pcie-v2.4", },
|
||||
{ .compatible = "fsl,qoriq-pcie-v2.3", },
|
||||
{ .compatible = "fsl,qoriq-pcie-v2.1", },
|
||||
{ .compatible = "fsl,qoriq-pcie-v2.2", },
|
||||
{ .compatible = "fsl,qoriq-pcie-v2.3", },
|
||||
{ .compatible = "fsl,qoriq-pcie-v2.4", },
|
||||
|
||||
/*
|
||||
* The following entries are for compatibility with older device
|
||||
* trees.
|
||||
*/
|
||||
{ .compatible = "fsl,p1022-pcie", },
|
||||
{ .compatible = "fsl,p4080-pcie", },
|
||||
|
||||
{},
|
||||
};
|
||||
|
||||
|
@ -880,7 +890,7 @@ static int fsl_pci_probe(struct platform_device *pdev)
|
|||
#endif
|
||||
|
||||
node = pdev->dev.of_node;
|
||||
ret = fsl_add_bridge(node, fsl_pci_primary == node);
|
||||
ret = fsl_add_bridge(pdev, fsl_pci_primary == node);
|
||||
|
||||
#ifdef CONFIG_SWIOTLB
|
||||
if (ret == 0) {
|
||||
|
|
|
@ -91,7 +91,7 @@ struct ccsr_pci {
|
|||
__be32 pex_err_cap_r3; /* 0x.e34 - PCIE error capture register 0 */
|
||||
};
|
||||
|
||||
extern int fsl_add_bridge(struct device_node *dev, int is_primary);
|
||||
extern int fsl_add_bridge(struct platform_device *pdev, int is_primary);
|
||||
extern void fsl_pcibios_fixup_bus(struct pci_bus *bus);
|
||||
extern int mpc83xx_add_bridge(struct device_node *dev);
|
||||
u64 fsl_pci_immrbar_base(struct pci_controller *hose);
|
||||
|
|
|
@ -58,10 +58,10 @@ phys_addr_t get_immrbase(void)
|
|||
if (soc) {
|
||||
int size;
|
||||
u32 naddr;
|
||||
const u32 *prop = of_get_property(soc, "#address-cells", &size);
|
||||
const __be32 *prop = of_get_property(soc, "#address-cells", &size);
|
||||
|
||||
if (prop && size == 4)
|
||||
naddr = *prop;
|
||||
naddr = be32_to_cpup(prop);
|
||||
else
|
||||
naddr = 2;
|
||||
|
||||
|
|
|
@ -1182,6 +1182,7 @@ struct mpic * __init mpic_alloc(struct device_node *node,
|
|||
const char *vers;
|
||||
const u32 *psrc;
|
||||
u32 last_irq;
|
||||
u32 fsl_version = 0;
|
||||
|
||||
/* Default MPIC search parameters */
|
||||
static const struct of_device_id __initconst mpic_device_id[] = {
|
||||
|
@ -1314,7 +1315,7 @@ struct mpic * __init mpic_alloc(struct device_node *node,
|
|||
mpic_map(mpic, mpic->paddr, &mpic->tmregs, MPIC_INFO(TIMER_BASE), 0x1000);
|
||||
|
||||
if (mpic->flags & MPIC_FSL) {
|
||||
u32 brr1, version;
|
||||
u32 brr1;
|
||||
int ret;
|
||||
|
||||
/*
|
||||
|
@ -1327,7 +1328,7 @@ struct mpic * __init mpic_alloc(struct device_node *node,
|
|||
|
||||
brr1 = _mpic_read(mpic->reg_type, &mpic->thiscpuregs,
|
||||
MPIC_FSL_BRR1);
|
||||
version = brr1 & MPIC_FSL_BRR1_VER;
|
||||
fsl_version = brr1 & MPIC_FSL_BRR1_VER;
|
||||
|
||||
/* Error interrupt mask register (EIMR) is required for
|
||||
* handling individual device error interrupts. EIMR
|
||||
|
@ -1342,11 +1343,30 @@ struct mpic * __init mpic_alloc(struct device_node *node,
|
|||
* is the number of vectors which have been consumed by
|
||||
* ipis and timer interrupts.
|
||||
*/
|
||||
if (version >= 0x401) {
|
||||
if (fsl_version >= 0x401) {
|
||||
ret = mpic_setup_error_int(mpic, intvec_top - 12);
|
||||
if (ret)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* EPR is only available starting with v4.0. To support
|
||||
* platforms that don't know the MPIC version at compile-time,
|
||||
* such as qemu-e500, turn off coreint if this MPIC doesn't
|
||||
* support it. Note that we never enable it if it wasn't
|
||||
* requested in the first place.
|
||||
*
|
||||
* This is done outside the MPIC_FSL check, so that we
|
||||
* also disable coreint if the MPIC node doesn't have
|
||||
* an "fsl,mpic" compatible at all. This will be the case
|
||||
* with device trees generated by older versions of QEMU.
|
||||
* fsl_version will be zero if MPIC_FSL is not set.
|
||||
*/
|
||||
if (fsl_version < 0x400 && (flags & MPIC_ENABLE_COREINT)) {
|
||||
WARN_ON(ppc_md.get_irq != mpic_get_coreint_irq);
|
||||
ppc_md.get_irq = mpic_get_irq;
|
||||
}
|
||||
|
||||
/* Reset */
|
||||
|
|
Loading…
Reference in New Issue