forked from luck/tmp_suning_uos_patched
Merge remote-tracking branch 'kumar/next' into next
This commit is contained in:
commit
4286f84ef6
63
Documentation/devicetree/bindings/powerpc/fsl/mpic-msgr.txt
Normal file
63
Documentation/devicetree/bindings/powerpc/fsl/mpic-msgr.txt
Normal file
|
@ -0,0 +1,63 @@
|
|||
* FSL MPIC Message Registers
|
||||
|
||||
This binding specifies what properties must be available in the device tree
|
||||
representation of the message register blocks found in some FSL MPIC
|
||||
implementations.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: Specifies the compatibility list for the message register
|
||||
block. The type shall be <string-list> and the value shall be of the form
|
||||
"fsl,mpic-v<version>-msgr", where <version> is the version number of
|
||||
the MPIC containing the message registers.
|
||||
|
||||
- reg: Specifies the base physical address(s) and size(s) of the
|
||||
message register block's addressable register space. The type shall be
|
||||
<prop-encoded-array>.
|
||||
|
||||
- interrupts: Specifies a list of interrupt-specifiers which are available
|
||||
for receiving interrupts. Interrupt-specifier consists of two cells: first
|
||||
cell is interrupt-number and second cell is level-sense. The type shall be
|
||||
<prop-encoded-array>.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- mpic-msgr-receive-mask: Specifies what registers in the containing block
|
||||
are allowed to receive interrupts. The value is a bit mask where a set
|
||||
bit at bit 'n' indicates that message register 'n' can receive interrupts.
|
||||
Note that "bit 'n'" is numbered from LSB for PPC hardware. The type shall
|
||||
be <u32>. If not present, then all of the message registers in the block
|
||||
are available.
|
||||
|
||||
Aliases:
|
||||
|
||||
An alias should be created for every message register block. They are not
|
||||
required, though. However, a particular implementation of this binding
|
||||
may require aliases to be present. Aliases are of the form
|
||||
'mpic-msgr-block<n>', where <n> is an integer specifying the block's number.
|
||||
Numbers shall start at 0.
|
||||
|
||||
Example:
|
||||
|
||||
aliases {
|
||||
mpic-msgr-block0 = &mpic_msgr_block0;
|
||||
mpic-msgr-block1 = &mpic_msgr_block1;
|
||||
};
|
||||
|
||||
mpic_msgr_block0: mpic-msgr-block@41400 {
|
||||
compatible = "fsl,mpic-v3.1-msgr";
|
||||
reg = <0x41400 0x200>;
|
||||
// Message registers 0 and 2 in this block can receive interrupts on
|
||||
// sources 0xb0 and 0xb2, respectively.
|
||||
interrupts = <0xb0 2 0xb2 2>;
|
||||
mpic-msgr-receive-mask = <0x5>;
|
||||
};
|
||||
|
||||
mpic_msgr_block1: mpic-msgr-block@42400 {
|
||||
compatible = "fsl,mpic-v3.1-msgr";
|
||||
reg = <0x42400 0x200>;
|
||||
// Message registers 0 and 2 in this block can receive interrupts on
|
||||
// sources 0xb4 and 0xb6, respectively.
|
||||
interrupts = <0xb4 2 0xb6 2>;
|
||||
mpic-msgr-receive-mask = <0x5>;
|
||||
};
|
|
@ -6,8 +6,10 @@ Required properties:
|
|||
etc.) and the second is "fsl,mpic-msi" or "fsl,ipic-msi" depending on
|
||||
the parent type.
|
||||
|
||||
- reg : should contain the address and the length of the shared message
|
||||
interrupt register set.
|
||||
- reg : It may contain one or two regions. The first region should contain
|
||||
the address and the length of the shared message interrupt register set.
|
||||
The second region should contain the address of aliased MSIIR register for
|
||||
platforms that have such an alias.
|
||||
|
||||
- msi-available-ranges: use <start count> style section to define which
|
||||
msi interrupt can be used in the 256 msi interrupts. This property is
|
||||
|
|
|
@ -247,7 +247,7 @@ image-$(CONFIG_ASP834x) += dtbImage.asp834x-redboot
|
|||
image-$(CONFIG_MPC8540_ADS) += cuImage.mpc8540ads
|
||||
image-$(CONFIG_MPC8560_ADS) += cuImage.mpc8560ads
|
||||
image-$(CONFIG_MPC85xx_CDS) += cuImage.mpc8541cds \
|
||||
cuImage.mpc8548cds \
|
||||
cuImage.mpc8548cds_32b \
|
||||
cuImage.mpc8555cds
|
||||
image-$(CONFIG_MPC85xx_MDS) += cuImage.mpc8568mds
|
||||
image-$(CONFIG_MPC85xx_DS) += cuImage.mpc8544ds \
|
||||
|
|
|
@ -202,7 +202,7 @@ L2: l2-cache-controller@20000 {
|
|||
/include/ "pq3-etsec1-timer-0.dtsi"
|
||||
|
||||
usb@22000 {
|
||||
compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph";
|
||||
compatible = "fsl-usb2-mph-v1.2", "fsl,mpc8536-usb2-mph", "fsl-usb2-mph";
|
||||
reg = <0x22000 0x1000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
@ -210,7 +210,7 @@ usb@22000 {
|
|||
};
|
||||
|
||||
usb@23000 {
|
||||
compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph";
|
||||
compatible = "fsl-usb2-mph-v1.2", "fsl,mpc8536-usb2-mph", "fsl-usb2-mph";
|
||||
reg = <0x23000 0x1000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
|
@ -89,6 +89,21 @@ pcie@0 {
|
|||
};
|
||||
};
|
||||
|
||||
&rio {
|
||||
compatible = "fsl,srio";
|
||||
interrupts = <48 2 0 0>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
fsl,srio-rmu-handle = <&rmu>;
|
||||
ranges;
|
||||
|
||||
port1 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
cell-index = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
@ -134,6 +149,7 @@ L2: l2-cache-controller@20000 {
|
|||
|
||||
/include/ "pq3-sec2.1-0.dtsi"
|
||||
/include/ "pq3-mpic.dtsi"
|
||||
/include/ "pq3-rmu-0.dtsi"
|
||||
|
||||
global-utilities@e0000 {
|
||||
compatible = "fsl,mpc8548-guts";
|
||||
|
|
|
@ -43,7 +43,9 @@ aliases {
|
|||
serial0 = &serial0;
|
||||
serial1 = &serial1;
|
||||
ethernet0 = &enet0;
|
||||
ethernet1 = &enet2;
|
||||
ethernet1 = &enet1;
|
||||
ethernet2 = &enet2;
|
||||
ethernet3 = &enet3;
|
||||
pci0 = &pci0;
|
||||
pci1 = &pci1;
|
||||
pci2 = &pci2;
|
||||
|
|
|
@ -156,6 +156,9 @@ L2: l2-cache-controller@20000 {
|
|||
|
||||
/include/ "pq3-dma-0.dtsi"
|
||||
/include/ "pq3-usb2-dr-0.dtsi"
|
||||
usb@22000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr";
|
||||
};
|
||||
/include/ "pq3-esdhc-0.dtsi"
|
||||
sdhc@2e000 {
|
||||
compatible = "fsl,p1010-esdhc", "fsl,esdhc";
|
||||
|
|
|
@ -142,7 +142,13 @@ L2: l2-cache-controller@20000 {
|
|||
|
||||
/include/ "pq3-dma-0.dtsi"
|
||||
/include/ "pq3-usb2-dr-0.dtsi"
|
||||
usb@22000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr";
|
||||
};
|
||||
/include/ "pq3-usb2-dr-1.dtsi"
|
||||
usb@23000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr";
|
||||
};
|
||||
|
||||
/include/ "pq3-esdhc-0.dtsi"
|
||||
sdhc@2e000 {
|
||||
|
|
|
@ -142,8 +142,15 @@ L2: l2-cache-controller@20000 {
|
|||
|
||||
/include/ "pq3-dma-0.dtsi"
|
||||
/include/ "pq3-usb2-dr-0.dtsi"
|
||||
usb@22000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr";
|
||||
};
|
||||
|
||||
/include/ "pq3-esdhc-0.dtsi"
|
||||
sdhc@2e000 {
|
||||
sdhci,auto-cmd12;
|
||||
};
|
||||
|
||||
/include/ "pq3-sec3.3-0.dtsi"
|
||||
|
||||
/include/ "pq3-mpic.dtsi"
|
||||
|
|
|
@ -35,7 +35,11 @@
|
|||
&lbc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,p1022-elbc", "fsl,elbc", "simple-bus";
|
||||
/*
|
||||
* The localbus on the P1022 is not a simple-bus because of the eLBC
|
||||
* pin muxing when the DIU is enabled.
|
||||
*/
|
||||
compatible = "fsl,p1022-elbc", "fsl,elbc";
|
||||
interrupts = <19 2 0 0>;
|
||||
};
|
||||
|
||||
|
@ -199,7 +203,13 @@ L2: l2-cache-controller@20000 {
|
|||
|
||||
/include/ "pq3-dma-0.dtsi"
|
||||
/include/ "pq3-usb2-dr-0.dtsi"
|
||||
usb@22000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr";
|
||||
};
|
||||
/include/ "pq3-usb2-dr-1.dtsi"
|
||||
usb@23000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr";
|
||||
};
|
||||
|
||||
/include/ "pq3-esdhc-0.dtsi"
|
||||
sdhc@2e000 {
|
||||
|
|
|
@ -142,6 +142,9 @@ L2: l2-cache-controller@20000 {
|
|||
|
||||
/include/ "pq3-dma-0.dtsi"
|
||||
/include/ "pq3-usb2-dr-0.dtsi"
|
||||
usb@22000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr";
|
||||
};
|
||||
|
||||
crypto: crypto@300000 {
|
||||
compatible = "fsl,sec-v4.2", "fsl,sec-v4.0";
|
||||
|
|
|
@ -171,6 +171,9 @@ L2: l2-cache-controller@20000 {
|
|||
|
||||
/include/ "pq3-dma-0.dtsi"
|
||||
/include/ "pq3-usb2-dr-0.dtsi"
|
||||
usb@22000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr";
|
||||
};
|
||||
/include/ "pq3-etsec1-0.dtsi"
|
||||
/include/ "pq3-etsec1-timer-0.dtsi"
|
||||
|
||||
|
|
|
@ -309,12 +309,14 @@ sdhc@114000 {
|
|||
/include/ "qoriq-gpio-0.dtsi"
|
||||
/include/ "qoriq-usb2-mph-0.dtsi"
|
||||
usb0: usb@210000 {
|
||||
compatible = "fsl-usb2-mph-v1.6", "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph";
|
||||
phy_type = "utmi";
|
||||
port0;
|
||||
};
|
||||
|
||||
/include/ "qoriq-usb2-dr-0.dtsi"
|
||||
usb1: usb@211000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
|
||||
dr_mode = "host";
|
||||
phy_type = "utmi";
|
||||
};
|
||||
|
|
|
@ -336,12 +336,14 @@ sdhc@114000 {
|
|||
/include/ "qoriq-gpio-0.dtsi"
|
||||
/include/ "qoriq-usb2-mph-0.dtsi"
|
||||
usb0: usb@210000 {
|
||||
compatible = "fsl-usb2-mph-v1.6", "fsl-usb2-mph";
|
||||
phy_type = "utmi";
|
||||
port0;
|
||||
};
|
||||
|
||||
/include/ "qoriq-usb2-dr-0.dtsi"
|
||||
usb1: usb@211000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
|
||||
dr_mode = "host";
|
||||
phy_type = "utmi";
|
||||
};
|
||||
|
|
|
@ -291,6 +291,12 @@ spi@110000 {
|
|||
/include/ "qoriq-duart-1.dtsi"
|
||||
/include/ "qoriq-gpio-0.dtsi"
|
||||
/include/ "qoriq-usb2-mph-0.dtsi"
|
||||
usb@210000 {
|
||||
compatible = "fsl-usb2-mph-v2.2", "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph";
|
||||
};
|
||||
/include/ "qoriq-usb2-dr-0.dtsi"
|
||||
usb@211000 {
|
||||
compatible = "fsl-usb2-dr-v2.2", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
|
||||
};
|
||||
/include/ "qoriq-sec4.1-0.dtsi"
|
||||
};
|
||||
|
|
|
@ -339,12 +339,14 @@ sdhc@114000 {
|
|||
/include/ "qoriq-gpio-0.dtsi"
|
||||
/include/ "qoriq-usb2-mph-0.dtsi"
|
||||
usb0: usb@210000 {
|
||||
compatible = "fsl-usb2-mph-v1.6", "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph";
|
||||
phy_type = "utmi";
|
||||
port0;
|
||||
};
|
||||
|
||||
/include/ "qoriq-usb2-dr-0.dtsi"
|
||||
usb1: usb@211000 {
|
||||
compatible = "fsl-usb2-dr-v1.6", "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
|
||||
dr_mode = "host";
|
||||
phy_type = "utmi";
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* PQ3 eTSEC device tree stub [ @ offsets 0x24000 ]
|
||||
*
|
||||
* Copyright 2011 Freescale Semiconductor Inc.
|
||||
* Copyright 2011-2012 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
|
@ -41,6 +41,7 @@ ethernet@24000 {
|
|||
compatible = "gianfar";
|
||||
reg = <0x24000 0x1000>;
|
||||
ranges = <0x0 0x24000 0x1000>;
|
||||
fsl,magic-packet;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <29 2 0 0 30 2 0 0 34 2 0 0>;
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* PQ3 eTSEC device tree stub [ @ offsets 0x25000 ]
|
||||
*
|
||||
* Copyright 2011 Freescale Semiconductor Inc.
|
||||
* Copyright 2011-2012 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
|
@ -41,6 +41,7 @@ ethernet@25000 {
|
|||
compatible = "gianfar";
|
||||
reg = <0x25000 0x1000>;
|
||||
ranges = <0x0 0x25000 0x1000>;
|
||||
fsl,magic-packet;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <35 2 0 0 36 2 0 0 40 2 0 0>;
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* PQ3 eTSEC device tree stub [ @ offsets 0x26000 ]
|
||||
*
|
||||
* Copyright 2011 Freescale Semiconductor Inc.
|
||||
* Copyright 2011-2012 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
|
@ -41,6 +41,7 @@ ethernet@26000 {
|
|||
compatible = "gianfar";
|
||||
reg = <0x26000 0x1000>;
|
||||
ranges = <0x0 0x26000 0x1000>;
|
||||
fsl,magic-packet;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <31 2 0 0 32 2 0 0 33 2 0 0>;
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* PQ3 eTSEC device tree stub [ @ offsets 0x27000 ]
|
||||
*
|
||||
* Copyright 2011 Freescale Semiconductor Inc.
|
||||
* Copyright 2011-2012 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
|
@ -41,6 +41,7 @@ ethernet@27000 {
|
|||
compatible = "gianfar";
|
||||
reg = <0x27000 0x1000>;
|
||||
ranges = <0x0 0x27000 0x1000>;
|
||||
fsl,magic-packet;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <37 2 0 0 38 2 0 0 39 2 0 0>;
|
||||
};
|
||||
|
|
|
@ -33,32 +33,32 @@
|
|||
*/
|
||||
|
||||
crypto@30000 {
|
||||
compatible = "fsl,sec4.4", "fsl,sec4.0";
|
||||
compatible = "fsl,sec-v4.4", "fsl,sec-v4.0";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x30000 0x10000>;
|
||||
interrupts = <58 2 0 0>;
|
||||
|
||||
sec_jr0: jr@1000 {
|
||||
compatible = "fsl,sec4.4-job-ring", "fsl,sec4.0-job-ring";
|
||||
compatible = "fsl,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <45 2 0 0>;
|
||||
};
|
||||
|
||||
sec_jr1: jr@2000 {
|
||||
compatible = "fsl,sec4.4-job-ring", "fsl,sec4.0-job-ring";
|
||||
compatible = "fsl,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring";
|
||||
reg = <0x2000 0x1000>;
|
||||
interrupts = <45 2 0 0>;
|
||||
};
|
||||
|
||||
sec_jr2: jr@3000 {
|
||||
compatible = "fsl,sec4.4-job-ring", "fsl,sec4.0-job-ring";
|
||||
compatible = "fsl,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring";
|
||||
reg = <0x3000 0x1000>;
|
||||
interrupts = <45 2 0 0>;
|
||||
};
|
||||
|
||||
sec_jr3: jr@4000 {
|
||||
compatible = "fsl,sec4.4-job-ring", "fsl,sec4.0-job-ring";
|
||||
compatible = "fsl,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring";
|
||||
reg = <0x4000 0x1000>;
|
||||
interrupts = <45 2 0 0>;
|
||||
};
|
||||
|
|
|
@ -53,7 +53,7 @@ timer@41100 {
|
|||
|
||||
msi0: msi@41600 {
|
||||
compatible = "fsl,mpic-msi";
|
||||
reg = <0x41600 0x200>;
|
||||
reg = <0x41600 0x200 0x44140 4>;
|
||||
msi-available-ranges = <0 0x100>;
|
||||
interrupts = <
|
||||
0xe0 0 0 0
|
||||
|
@ -68,7 +68,7 @@ msi0: msi@41600 {
|
|||
|
||||
msi1: msi@41800 {
|
||||
compatible = "fsl,mpic-msi";
|
||||
reg = <0x41800 0x200>;
|
||||
reg = <0x41800 0x200 0x45140 4>;
|
||||
msi-available-ranges = <0 0x100>;
|
||||
interrupts = <
|
||||
0xe8 0 0 0
|
||||
|
@ -83,7 +83,7 @@ msi1: msi@41800 {
|
|||
|
||||
msi2: msi@41a00 {
|
||||
compatible = "fsl,mpic-msi";
|
||||
reg = <0x41a00 0x200>;
|
||||
reg = <0x41a00 0x200 0x46140 4>;
|
||||
msi-available-ranges = <0 0x100>;
|
||||
interrupts = <
|
||||
0xf0 0 0 0
|
||||
|
|
255
arch/powerpc/boot/dts/ge_imp3a.dts
Normal file
255
arch/powerpc/boot/dts/ge_imp3a.dts
Normal file
|
@ -0,0 +1,255 @@
|
|||
/*
|
||||
* GE IMP3A Device Tree Source
|
||||
*
|
||||
* Copyright 2010-2011 GE Intelligent Platforms Embedded Systems, 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.
|
||||
*
|
||||
* Based on: P2020 DS Device Tree Source
|
||||
* Copyright 2009 Freescale Semiconductor Inc.
|
||||
*/
|
||||
|
||||
/include/ "fsl/p2020si-pre.dtsi"
|
||||
|
||||
/ {
|
||||
model = "GE_IMP3A";
|
||||
compatible = "ge,imp3a";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
lbc: localbus@fef05000 {
|
||||
reg = <0 0xfef05000 0 0x1000>;
|
||||
|
||||
ranges = <0x0 0x0 0x0 0xff000000 0x01000000
|
||||
0x1 0x0 0x0 0xe0000000 0x08000000
|
||||
0x2 0x0 0x0 0xe8000000 0x08000000
|
||||
0x3 0x0 0x0 0xfc100000 0x00020000
|
||||
0x4 0x0 0x0 0xfc000000 0x00008000
|
||||
0x5 0x0 0x0 0xfc008000 0x00008000
|
||||
0x6 0x0 0x0 0xfee00000 0x00040000
|
||||
0x7 0x0 0x0 0xfee80000 0x00040000>;
|
||||
|
||||
/* nor@0,0 is a mirror of part of the memory in nor@1,0
|
||||
nor@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "ge,imp3a-firmware-mirror", "cfi-flash";
|
||||
reg = <0x0 0x0 0x1000000>;
|
||||
bank-width = <2>;
|
||||
device-width = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "firmware";
|
||||
reg = <0x0 0x1000000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
*/
|
||||
|
||||
nor@1,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "ge,imp3a-paged-flash", "cfi-flash";
|
||||
reg = <0x1 0x0 0x8000000>;
|
||||
bank-width = <2>;
|
||||
device-width = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "user";
|
||||
reg = <0x0 0x7800000>;
|
||||
};
|
||||
|
||||
partition@7800000 {
|
||||
label = "firmware";
|
||||
reg = <0x7800000 0x800000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
nvram@3,0 {
|
||||
device_type = "nvram";
|
||||
compatible = "simtek,stk14ca8";
|
||||
reg = <0x3 0x0 0x20000>;
|
||||
};
|
||||
|
||||
fpga@4,0 {
|
||||
compatible = "ge,imp3a-fpga-regs";
|
||||
reg = <0x4 0x0 0x20>;
|
||||
};
|
||||
|
||||
gef_pic: pic@4,20 {
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
device_type = "interrupt-controller";
|
||||
compatible = "ge,imp3a-fpga-pic", "gef,fpga-pic-1.00";
|
||||
reg = <0x4 0x20 0x20>;
|
||||
interrupts = <6 7 0 0>;
|
||||
};
|
||||
|
||||
gef_gpio: gpio@4,400 {
|
||||
#gpio-cells = <2>;
|
||||
compatible = "ge,imp3a-gpio";
|
||||
reg = <0x4 0x400 0x24>;
|
||||
gpio-controller;
|
||||
};
|
||||
|
||||
wdt@4,800 {
|
||||
compatible = "ge,imp3a-fpga-wdt", "gef,fpga-wdt-1.00",
|
||||
"gef,fpga-wdt";
|
||||
reg = <0x4 0x800 0x8>;
|
||||
interrupts = <10 4>;
|
||||
interrupt-parent = <&gef_pic>;
|
||||
};
|
||||
|
||||
/* Second watchdog available, driver currently supports one.
|
||||
wdt@4,808 {
|
||||
compatible = "gef,imp3a-fpga-wdt", "gef,fpga-wdt-1.00",
|
||||
"gef,fpga-wdt";
|
||||
reg = <0x4 0x808 0x8>;
|
||||
interrupts = <9 4>;
|
||||
interrupt-parent = <&gef_pic>;
|
||||
};
|
||||
*/
|
||||
|
||||
nand@6,0 {
|
||||
compatible = "fsl,elbc-fcm-nand";
|
||||
reg = <0x6 0x0 0x40000>;
|
||||
};
|
||||
|
||||
nand@7,0 {
|
||||
compatible = "fsl,elbc-fcm-nand";
|
||||
reg = <0x7 0x0 0x40000>;
|
||||
};
|
||||
};
|
||||
|
||||
soc: soc@fef00000 {
|
||||
ranges = <0x0 0 0xfef00000 0x100000>;
|
||||
|
||||
i2c@3000 {
|
||||
hwmon@48 {
|
||||
compatible = "national,lm92";
|
||||
reg = <0x48>;
|
||||
};
|
||||
|
||||
hwmon@4c {
|
||||
compatible = "adi,adt7461";
|
||||
reg = <0x4c>;
|
||||
};
|
||||
|
||||
rtc@51 {
|
||||
compatible = "epson,rx8581";
|
||||
reg = <0x51>;
|
||||
};
|
||||
|
||||
eti@6b {
|
||||
compatible = "dallas,ds1682";
|
||||
reg = <0x6b>;
|
||||
};
|
||||
};
|
||||
|
||||
usb@22000 {
|
||||
phy_type = "ulpi";
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
mdio@24520 {
|
||||
phy0: ethernet-phy@0 {
|
||||
interrupt-parent = <&gef_pic>;
|
||||
interrupts = <0xc 0x4>;
|
||||
reg = <0x1>;
|
||||
};
|
||||
phy1: ethernet-phy@1 {
|
||||
interrupt-parent = <&gef_pic>;
|
||||
interrupts = <0xb 0x4>;
|
||||
reg = <0x2>;
|
||||
};
|
||||
tbi0: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
mdio@25520 {
|
||||
tbi1: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
mdio@26520 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
enet0: ethernet@24000 {
|
||||
tbi-handle = <&tbi0>;
|
||||
phy-handle = <&phy0>;
|
||||
phy-connection-type = "gmii";
|
||||
};
|
||||
|
||||
enet1: ethernet@25000 {
|
||||
tbi-handle = <&tbi1>;
|
||||
phy-handle = <&phy1>;
|
||||
phy-connection-type = "gmii";
|
||||
};
|
||||
|
||||
enet2: ethernet@26000 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
pci0: pcie@fef08000 {
|
||||
ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xfe020000 0x0 0x10000>;
|
||||
reg = <0 0xfef08000 0 0x1000>;
|
||||
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xc0000000
|
||||
0x2000000 0x0 0xc0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x10000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci1: pcie@fef09000 {
|
||||
reg = <0 0xfef09000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xfe010000 0x0 0x10000>;
|
||||
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xa0000000
|
||||
0x2000000 0x0 0xa0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x10000>;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
pci2: pcie@fef0a000 {
|
||||
reg = <0 0xfef0a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xfe000000 0x0 0x10000>;
|
||||
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0x80000000
|
||||
0x2000000 0x0 0x80000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x10000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "fsl/p2020si-post.dtsi"
|
|
@ -405,6 +405,10 @@ phy1: ethernet-phy@01 {
|
|||
reg = <0x1>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
tbi-phy@2 {
|
||||
device_type = "tbi-phy";
|
||||
reg = <0x2>;
|
||||
};
|
||||
};
|
||||
|
||||
qeic: interrupt-controller@80 {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* MPC8536 DS Device Tree Source
|
||||
*
|
||||
* Copyright 2008 Freescale Semiconductor, Inc.
|
||||
* Copyright 2008, 2011 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
|
||||
|
@ -34,6 +34,10 @@ memory {
|
|||
|
||||
lbc: localbus@ffe05000 {
|
||||
reg = <0 0xffe05000 0 0x1000>;
|
||||
|
||||
ranges = <0x0 0x0 0x0 0xe8000000 0x08000000
|
||||
0x2 0x0 0x0 0xffa00000 0x00040000
|
||||
0x3 0x0 0x0 0xffdf0000 0x00008000>;
|
||||
};
|
||||
|
||||
board_soc: soc: soc@ffe00000 {
|
||||
|
|
|
@ -32,6 +32,99 @@
|
|||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
&lbc {
|
||||
nor@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x0 0x0 0x8000000>;
|
||||
bank-width = <2>;
|
||||
device-width = <1>;
|
||||
|
||||
partition@0 {
|
||||
reg = <0x0 0x03000000>;
|
||||
label = "ramdisk-nor";
|
||||
};
|
||||
|
||||
partition@3000000 {
|
||||
reg = <0x03000000 0x00e00000>;
|
||||
label = "diagnostic-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@3e00000 {
|
||||
reg = <0x03e00000 0x00200000>;
|
||||
label = "dink-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@4000000 {
|
||||
reg = <0x04000000 0x00400000>;
|
||||
label = "kernel-nor";
|
||||
};
|
||||
|
||||
partition@4400000 {
|
||||
reg = <0x04400000 0x03b00000>;
|
||||
label = "fs-nor";
|
||||
};
|
||||
|
||||
partition@7f00000 {
|
||||
reg = <0x07f00000 0x00080000>;
|
||||
label = "dtb-nor";
|
||||
};
|
||||
|
||||
partition@7f80000 {
|
||||
reg = <0x07f80000 0x00080000>;
|
||||
label = "u-boot-nor";
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
nand@2,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,mpc8536-fcm-nand",
|
||||
"fsl,elbc-fcm-nand";
|
||||
reg = <0x2 0x0 0x40000>;
|
||||
|
||||
partition@0 {
|
||||
reg = <0x0 0x02000000>;
|
||||
label = "u-boot-nand";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@2000000 {
|
||||
reg = <0x02000000 0x10000000>;
|
||||
label = "fs-nand";
|
||||
};
|
||||
|
||||
partition@12000000 {
|
||||
reg = <0x12000000 0x08000000>;
|
||||
label = "ramdisk-nand";
|
||||
};
|
||||
|
||||
partition@1a000000 {
|
||||
reg = <0x1a000000 0x04000000>;
|
||||
label = "kernel-nand";
|
||||
};
|
||||
|
||||
partition@1e000000 {
|
||||
reg = <0x1e000000 0x01000000>;
|
||||
label = "dtb-nand";
|
||||
};
|
||||
|
||||
partition@1f000000 {
|
||||
reg = <0x1f000000 0x21000000>;
|
||||
label = "empty-nand";
|
||||
};
|
||||
};
|
||||
|
||||
board-control@3,0 {
|
||||
compatible = "fsl,mpc8536ds-fpga-pixis";
|
||||
reg = <0x3 0x0 0x8000>;
|
||||
};
|
||||
};
|
||||
|
||||
&board_soc {
|
||||
i2c@3100 {
|
||||
rtc@68 {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* MPC8536DS Device Tree Source (36-bit address map)
|
||||
*
|
||||
* Copyright 2008-2009 Freescale Semiconductor, Inc.
|
||||
* Copyright 2008-2009, 2011 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
|
||||
|
@ -33,7 +33,11 @@ memory {
|
|||
};
|
||||
|
||||
lbc: localbus@ffe05000 {
|
||||
reg = <0 0xffe05000 0 0x1000>;
|
||||
reg = <0xf 0xffe05000 0 0x1000>;
|
||||
|
||||
ranges = <0x0 0x0 0xf 0xe8000000 0x08000000
|
||||
0x2 0x0 0xf 0xffa00000 0x00040000
|
||||
0x3 0x0 0xf 0xffdf0000 0x00008000>;
|
||||
};
|
||||
|
||||
board_soc: soc: soc@fffe00000 {
|
||||
|
|
|
@ -1,306 +0,0 @@
|
|||
/*
|
||||
* MPC8548 CDS Device Tree Source
|
||||
*
|
||||
* Copyright 2006, 2008 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 = "MPC8548CDS";
|
||||
compatible = "MPC8548CDS", "MPC85xxCDS";
|
||||
|
||||
aliases {
|
||||
ethernet0 = &enet0;
|
||||
ethernet1 = &enet1;
|
||||
ethernet2 = &enet2;
|
||||
ethernet3 = &enet3;
|
||||
serial0 = &serial0;
|
||||
serial1 = &serial1;
|
||||
pci0 = &pci0;
|
||||
pci1 = &pci1;
|
||||
pci2 = &pci2;
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0 0 0x0 0x8000000>; // 128M at 0x0
|
||||
};
|
||||
|
||||
lbc: localbus@e0005000 {
|
||||
reg = <0 0xe0005000 0 0x1000>;
|
||||
};
|
||||
|
||||
soc: soc8548@e0000000 {
|
||||
ranges = <0 0x0 0xe0000000 0x100000>;
|
||||
|
||||
i2c@3000 {
|
||||
eeprom@50 {
|
||||
compatible = "atmel,24c64";
|
||||
reg = <0x50>;
|
||||
};
|
||||
|
||||
eeprom@56 {
|
||||
compatible = "atmel,24c64";
|
||||
reg = <0x56>;
|
||||
};
|
||||
|
||||
eeprom@57 {
|
||||
compatible = "atmel,24c64";
|
||||
reg = <0x57>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@3100 {
|
||||
eeprom@50 {
|
||||
compatible = "atmel,24c64";
|
||||
reg = <0x50>;
|
||||
};
|
||||
};
|
||||
|
||||
enet0: ethernet@24000 {
|
||||
tbi-handle = <&tbi0>;
|
||||
phy-handle = <&phy0>;
|
||||
};
|
||||
|
||||
mdio@24520 {
|
||||
phy0: ethernet-phy@0 {
|
||||
interrupts = <5 1 0 0>;
|
||||
reg = <0x0>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
phy1: ethernet-phy@1 {
|
||||
interrupts = <5 1 0 0>;
|
||||
reg = <0x1>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
phy2: ethernet-phy@2 {
|
||||
interrupts = <5 1 0 0>;
|
||||
reg = <0x2>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
phy3: ethernet-phy@3 {
|
||||
interrupts = <5 1 0 0>;
|
||||
reg = <0x3>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
tbi0: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet1: ethernet@25000 {
|
||||
tbi-handle = <&tbi1>;
|
||||
phy-handle = <&phy1>;
|
||||
};
|
||||
|
||||
mdio@25520 {
|
||||
tbi1: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet2: ethernet@26000 {
|
||||
tbi-handle = <&tbi2>;
|
||||
phy-handle = <&phy2>;
|
||||
};
|
||||
|
||||
mdio@26520 {
|
||||
tbi2: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet3: ethernet@27000 {
|
||||
tbi-handle = <&tbi3>;
|
||||
phy-handle = <&phy3>;
|
||||
};
|
||||
|
||||
mdio@27520 {
|
||||
tbi3: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
reg = <0 0xe0008000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x10000000
|
||||
0x1000000 0x0 0x00000000 0 0xe2000000 0x0 0x800000>;
|
||||
clock-frequency = <66666666>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x4 (PCIX Slot 2) */
|
||||
0x2000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0x2000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0x2000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0x2000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0x5 (PCIX Slot 3) */
|
||||
0x2800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0
|
||||
0x2800 0x0 0x0 0x2 &mpic 0x2 0x1 0 0
|
||||
0x2800 0x0 0x0 0x3 &mpic 0x3 0x1 0 0
|
||||
0x2800 0x0 0x0 0x4 &mpic 0x0 0x1 0 0
|
||||
|
||||
/* IDSEL 0x6 (PCIX Slot 4) */
|
||||
0x3000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
|
||||
0x3000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
|
||||
0x3000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0
|
||||
0x3000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
|
||||
|
||||
/* IDSEL 0x8 (PCIX Slot 5) */
|
||||
0x4000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0x4000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0x4000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0x4000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0xC (Tsi310 bridge) */
|
||||
0x6000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0x6000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0x6000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0x6000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0x14 (Slot 2) */
|
||||
0xa000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0xa000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0xa000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0xa000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0x15 (Slot 3) */
|
||||
0xa800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0
|
||||
0xa800 0x0 0x0 0x2 &mpic 0x2 0x1 0 0
|
||||
0xa800 0x0 0x0 0x3 &mpic 0x3 0x1 0 0
|
||||
0xa800 0x0 0x0 0x4 &mpic 0x0 0x1 0 0
|
||||
|
||||
/* IDSEL 0x16 (Slot 4) */
|
||||
0xb000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
|
||||
0xb000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
|
||||
0xb000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0
|
||||
0xb000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
|
||||
|
||||
/* IDSEL 0x18 (Slot 5) */
|
||||
0xc000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0xc000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0xc000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0xc000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0x1C (Tsi310 bridge PCI primary) */
|
||||
0xe000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0xe000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0xe000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0xe000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0>;
|
||||
|
||||
pci_bridge@1c {
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
/* IDSEL 0x00 (PrPMC Site) */
|
||||
0000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0x04 (VIA chip) */
|
||||
0x2000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0x2000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0x2000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0x2000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0x05 (8139) */
|
||||
0x2800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0
|
||||
|
||||
/* IDSEL 0x06 (Slot 6) */
|
||||
0x3000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
|
||||
0x3000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
|
||||
0x3000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0
|
||||
0x3000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
|
||||
|
||||
/* IDESL 0x07 (Slot 7) */
|
||||
0x3800 0x0 0x0 0x1 &mpic 0x3 0x1 0 0
|
||||
0x3800 0x0 0x0 0x2 &mpic 0x0 0x1 0 0
|
||||
0x3800 0x0 0x0 0x3 &mpic 0x1 0x1 0 0
|
||||
0x3800 0x0 0x0 0x4 &mpic 0x2 0x1 0 0>;
|
||||
|
||||
reg = <0xe000 0x0 0x0 0x0 0x0>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
ranges = <0x2000000 0x0 0x80000000
|
||||
0x2000000 0x0 0x80000000
|
||||
0x0 0x20000000
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x80000>;
|
||||
clock-frequency = <33333333>;
|
||||
|
||||
isa@4 {
|
||||
device_type = "isa";
|
||||
#interrupt-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
#address-cells = <2>;
|
||||
reg = <0x2000 0x0 0x0 0x0 0x0>;
|
||||
ranges = <0x1 0x0 0x1000000 0x0 0x0 0x1000>;
|
||||
interrupt-parent = <&i8259>;
|
||||
|
||||
i8259: interrupt-controller@20 {
|
||||
interrupt-controller;
|
||||
device_type = "interrupt-controller";
|
||||
reg = <0x1 0x20 0x2
|
||||
0x1 0xa0 0x2
|
||||
0x1 0x4d0 0x2>;
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <2>;
|
||||
compatible = "chrp,iic";
|
||||
interrupts = <0 1 0 0>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
rtc@70 {
|
||||
compatible = "pnpPNP,b00";
|
||||
reg = <0x1 0x70 0x2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pci1: pci@e0009000 {
|
||||
reg = <0 0xe0009000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0x90000000 0 0x90000000 0x0 0x10000000
|
||||
0x1000000 0x0 0x00000000 0 0xe2800000 0x0 0x800000>;
|
||||
clock-frequency = <66666666>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
/* IDSEL 0x15 */
|
||||
0xa800 0x0 0x0 0x1 &mpic 0xb 0x1 0 0
|
||||
0xa800 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0xa800 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0xa800 0x0 0x0 0x4 &mpic 0x3 0x1 0 0>;
|
||||
};
|
||||
|
||||
pci2: pcie@e000a000 {
|
||||
reg = <0 0xe000a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xe3000000 0x0 0x100000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xa0000000
|
||||
0x2000000 0x0 0xa0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "fsl/mpc8548si-post.dtsi"
|
306
arch/powerpc/boot/dts/mpc8548cds.dtsi
Normal file
306
arch/powerpc/boot/dts/mpc8548cds.dtsi
Normal file
|
@ -0,0 +1,306 @@
|
|||
/*
|
||||
* MPC8548CDS Device Tree Source stub (no addresses or top-level ranges)
|
||||
*
|
||||
* Copyright 2012 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
&board_lbc {
|
||||
nor@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x0 0x0 0x01000000>;
|
||||
bank-width = <2>;
|
||||
device-width = <2>;
|
||||
|
||||
partition@0 {
|
||||
reg = <0x0 0x0b00000>;
|
||||
label = "ramdisk-nor";
|
||||
};
|
||||
|
||||
partition@300000 {
|
||||
reg = <0x0b00000 0x0400000>;
|
||||
label = "kernel-nor";
|
||||
};
|
||||
|
||||
partition@700000 {
|
||||
reg = <0x0f00000 0x060000>;
|
||||
label = "dtb-nor";
|
||||
};
|
||||
|
||||
partition@760000 {
|
||||
reg = <0x0f60000 0x020000>;
|
||||
label = "env-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@780000 {
|
||||
reg = <0x0f80000 0x080000>;
|
||||
label = "u-boot-nor";
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
board-control@1,0 {
|
||||
compatible = "fsl,mpc8548cds-fpga";
|
||||
reg = <0x1 0x0 0x1000>;
|
||||
};
|
||||
};
|
||||
|
||||
&board_soc {
|
||||
i2c@3000 {
|
||||
eeprom@50 {
|
||||
compatible = "atmel,24c64";
|
||||
reg = <0x50>;
|
||||
};
|
||||
|
||||
eeprom@56 {
|
||||
compatible = "atmel,24c64";
|
||||
reg = <0x56>;
|
||||
};
|
||||
|
||||
eeprom@57 {
|
||||
compatible = "atmel,24c64";
|
||||
reg = <0x57>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@3100 {
|
||||
eeprom@50 {
|
||||
compatible = "atmel,24c64";
|
||||
reg = <0x50>;
|
||||
};
|
||||
};
|
||||
|
||||
enet0: ethernet@24000 {
|
||||
tbi-handle = <&tbi0>;
|
||||
phy-handle = <&phy0>;
|
||||
};
|
||||
|
||||
mdio@24520 {
|
||||
phy0: ethernet-phy@0 {
|
||||
interrupts = <5 1 0 0>;
|
||||
reg = <0x0>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
phy1: ethernet-phy@1 {
|
||||
interrupts = <5 1 0 0>;
|
||||
reg = <0x1>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
phy2: ethernet-phy@2 {
|
||||
interrupts = <5 1 0 0>;
|
||||
reg = <0x2>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
phy3: ethernet-phy@3 {
|
||||
interrupts = <5 1 0 0>;
|
||||
reg = <0x3>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
tbi0: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet1: ethernet@25000 {
|
||||
tbi-handle = <&tbi1>;
|
||||
phy-handle = <&phy1>;
|
||||
};
|
||||
|
||||
mdio@25520 {
|
||||
tbi1: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet2: ethernet@26000 {
|
||||
tbi-handle = <&tbi2>;
|
||||
phy-handle = <&phy2>;
|
||||
};
|
||||
|
||||
mdio@26520 {
|
||||
tbi2: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet3: ethernet@27000 {
|
||||
tbi-handle = <&tbi3>;
|
||||
phy-handle = <&phy3>;
|
||||
};
|
||||
|
||||
mdio@27520 {
|
||||
tbi3: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&board_pci0 {
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x4 (PCIX Slot 2) */
|
||||
0x2000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0x2000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0x2000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0x2000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0x5 (PCIX Slot 3) */
|
||||
0x2800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0
|
||||
0x2800 0x0 0x0 0x2 &mpic 0x2 0x1 0 0
|
||||
0x2800 0x0 0x0 0x3 &mpic 0x3 0x1 0 0
|
||||
0x2800 0x0 0x0 0x4 &mpic 0x0 0x1 0 0
|
||||
|
||||
/* IDSEL 0x6 (PCIX Slot 4) */
|
||||
0x3000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
|
||||
0x3000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
|
||||
0x3000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0
|
||||
0x3000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
|
||||
|
||||
/* IDSEL 0x8 (PCIX Slot 5) */
|
||||
0x4000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0x4000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0x4000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0x4000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0xC (Tsi310 bridge) */
|
||||
0x6000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0x6000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0x6000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0x6000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0x14 (Slot 2) */
|
||||
0xa000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0xa000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0xa000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0xa000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0x15 (Slot 3) */
|
||||
0xa800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0
|
||||
0xa800 0x0 0x0 0x2 &mpic 0x2 0x1 0 0
|
||||
0xa800 0x0 0x0 0x3 &mpic 0x3 0x1 0 0
|
||||
0xa800 0x0 0x0 0x4 &mpic 0x0 0x1 0 0
|
||||
|
||||
/* IDSEL 0x16 (Slot 4) */
|
||||
0xb000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
|
||||
0xb000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
|
||||
0xb000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0
|
||||
0xb000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
|
||||
|
||||
/* IDSEL 0x18 (Slot 5) */
|
||||
0xc000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0xc000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0xc000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0xc000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0x1C (Tsi310 bridge PCI primary) */
|
||||
0xe000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0xe000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0xe000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0xe000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0>;
|
||||
|
||||
pci_bridge@1c {
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
/* IDSEL 0x00 (PrPMC Site) */
|
||||
0000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0x04 (VIA chip) */
|
||||
0x2000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
|
||||
0x2000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0x2000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0x2000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
|
||||
|
||||
/* IDSEL 0x05 (8139) */
|
||||
0x2800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0
|
||||
|
||||
/* IDSEL 0x06 (Slot 6) */
|
||||
0x3000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
|
||||
0x3000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
|
||||
0x3000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0
|
||||
0x3000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
|
||||
|
||||
/* IDESL 0x07 (Slot 7) */
|
||||
0x3800 0x0 0x0 0x1 &mpic 0x3 0x1 0 0
|
||||
0x3800 0x0 0x0 0x2 &mpic 0x0 0x1 0 0
|
||||
0x3800 0x0 0x0 0x3 &mpic 0x1 0x1 0 0
|
||||
0x3800 0x0 0x0 0x4 &mpic 0x2 0x1 0 0>;
|
||||
|
||||
reg = <0xe000 0x0 0x0 0x0 0x0>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
ranges = <0x2000000 0x0 0x80000000
|
||||
0x2000000 0x0 0x80000000
|
||||
0x0 0x20000000
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x80000>;
|
||||
clock-frequency = <33333333>;
|
||||
|
||||
isa@4 {
|
||||
device_type = "isa";
|
||||
#interrupt-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
#address-cells = <2>;
|
||||
reg = <0x2000 0x0 0x0 0x0 0x0>;
|
||||
ranges = <0x1 0x0 0x1000000 0x0 0x0 0x1000>;
|
||||
interrupt-parent = <&i8259>;
|
||||
|
||||
i8259: interrupt-controller@20 {
|
||||
interrupt-controller;
|
||||
device_type = "interrupt-controller";
|
||||
reg = <0x1 0x20 0x2
|
||||
0x1 0xa0 0x2
|
||||
0x1 0x4d0 0x2>;
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <2>;
|
||||
compatible = "chrp,iic";
|
||||
interrupts = <0 1 0 0>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
rtc@70 {
|
||||
compatible = "pnpPNP,b00";
|
||||
reg = <0x1 0x70 0x2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
86
arch/powerpc/boot/dts/mpc8548cds_32b.dts
Normal file
86
arch/powerpc/boot/dts/mpc8548cds_32b.dts
Normal file
|
@ -0,0 +1,86 @@
|
|||
/*
|
||||
* MPC8548 CDS Device Tree Source (32-bit address map)
|
||||
*
|
||||
* Copyright 2006, 2008, 2011-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 = "MPC8548CDS";
|
||||
compatible = "MPC8548CDS", "MPC85xxCDS";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0 0 0x0 0x8000000>; // 128M at 0x0
|
||||
};
|
||||
|
||||
board_lbc: lbc: localbus@e0005000 {
|
||||
reg = <0 0xe0005000 0 0x1000>;
|
||||
|
||||
ranges = <0x0 0x0 0x0 0xff000000 0x01000000
|
||||
0x1 0x0 0x0 0xf8004000 0x00001000>;
|
||||
|
||||
};
|
||||
|
||||
board_soc: soc: soc8548@e0000000 {
|
||||
ranges = <0 0x0 0xe0000000 0x100000>;
|
||||
};
|
||||
|
||||
board_pci0: pci0: pci@e0008000 {
|
||||
reg = <0 0xe0008000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x10000000
|
||||
0x1000000 0x0 0x00000000 0 0xe2000000 0x0 0x800000>;
|
||||
clock-frequency = <66666666>;
|
||||
};
|
||||
|
||||
pci1: pci@e0009000 {
|
||||
reg = <0 0xe0009000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0x90000000 0 0x90000000 0x0 0x10000000
|
||||
0x1000000 0x0 0x00000000 0 0xe2800000 0x0 0x800000>;
|
||||
clock-frequency = <66666666>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
/* IDSEL 0x15 */
|
||||
0xa800 0x0 0x0 0x1 &mpic 0xb 0x1 0 0
|
||||
0xa800 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0xa800 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0xa800 0x0 0x0 0x4 &mpic 0x3 0x1 0 0>;
|
||||
};
|
||||
|
||||
pci2: pcie@e000a000 {
|
||||
reg = <0 0xe000a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xe3000000 0x0 0x100000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xa0000000
|
||||
0x2000000 0x0 0xa0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
rio: rapidio@e00c0000 {
|
||||
reg = <0x0 0xe00c0000 0x0 0x20000>;
|
||||
port1 {
|
||||
ranges = <0x0 0x0 0x0 0xc0000000 0x0 0x20000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* mpc8548cds.dtsi must be last to ensure board_pci0 overrides pci0 settings
|
||||
* for interrupt-map & interrupt-map-mask.
|
||||
*/
|
||||
|
||||
/include/ "fsl/mpc8548si-post.dtsi"
|
||||
/include/ "mpc8548cds.dtsi"
|
86
arch/powerpc/boot/dts/mpc8548cds_36b.dts
Normal file
86
arch/powerpc/boot/dts/mpc8548cds_36b.dts
Normal file
|
@ -0,0 +1,86 @@
|
|||
/*
|
||||
* 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 = "MPC8548CDS";
|
||||
compatible = "MPC8548CDS", "MPC85xxCDS";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0 0 0x0 0x8000000>; // 128M at 0x0
|
||||
};
|
||||
|
||||
board_lbc: lbc: localbus@fe0005000 {
|
||||
reg = <0xf 0xe0005000 0 0x1000>;
|
||||
|
||||
ranges = <0x0 0x0 0xf 0xff000000 0x01000000
|
||||
0x1 0x0 0xf 0xf8004000 0x00001000>;
|
||||
|
||||
};
|
||||
|
||||
board_soc: soc: soc8548@fe0000000 {
|
||||
ranges = <0 0xf 0xe0000000 0x100000>;
|
||||
};
|
||||
|
||||
board_pci0: pci0: pci@fe0008000 {
|
||||
reg = <0xf 0xe0008000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x00000000 0x0 0x10000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xe2000000 0x0 0x800000>;
|
||||
clock-frequency = <66666666>;
|
||||
};
|
||||
|
||||
pci1: pci@fe0009000 {
|
||||
reg = <0xf 0xe0009000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x10000000 0x0 0x10000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xe2800000 0x0 0x800000>;
|
||||
clock-frequency = <66666666>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
/* IDSEL 0x15 */
|
||||
0xa800 0x0 0x0 0x1 &mpic 0xb 0x1 0 0
|
||||
0xa800 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
|
||||
0xa800 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
|
||||
0xa800 0x0 0x0 0x4 &mpic 0x3 0x1 0 0>;
|
||||
};
|
||||
|
||||
pci2: pcie@fe000a000 {
|
||||
reg = <0xf 0xe000a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xe3000000 0x0 0x100000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xa0000000
|
||||
0x2000000 0x0 0xa0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
rio: rapidio@fe00c0000 {
|
||||
reg = <0xf 0xe00c0000 0x0 0x20000>;
|
||||
port1 {
|
||||
ranges = <0x0 0x0 0xc 0x40000000 0x0 0x20000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* mpc8548cds.dtsi must be last to ensure board_pci0 overrides pci0 settings
|
||||
* for interrupt-map & interrupt-map-mask.
|
||||
*/
|
||||
|
||||
/include/ "fsl/mpc8548si-post.dtsi"
|
||||
/include/ "mpc8548cds.dtsi"
|
|
@ -41,37 +41,47 @@ nor@0,0 {
|
|||
bank-width = <2>;
|
||||
device-width = <1>;
|
||||
|
||||
ramdisk@0 {
|
||||
partition@0 {
|
||||
reg = <0x0 0x03000000>;
|
||||
read-only;
|
||||
label = "ramdisk-nor";
|
||||
};
|
||||
|
||||
diagnostic@3000000 {
|
||||
partition@3000000 {
|
||||
reg = <0x03000000 0x00e00000>;
|
||||
label = "diagnostic-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
dink@3e00000 {
|
||||
partition@3e00000 {
|
||||
reg = <0x03e00000 0x00200000>;
|
||||
label = "dink-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
kernel@4000000 {
|
||||
partition@4000000 {
|
||||
reg = <0x04000000 0x00400000>;
|
||||
read-only;
|
||||
label = "kernel-nor";
|
||||
};
|
||||
|
||||
jffs2@4400000 {
|
||||
partition@4400000 {
|
||||
reg = <0x04400000 0x03b00000>;
|
||||
label = "fs-nor";
|
||||
};
|
||||
|
||||
dtb@7f00000 {
|
||||
reg = <0x07f00000 0x00080000>;
|
||||
partition@7f00000 {
|
||||
reg = <0x07f00000 0x00060000>;
|
||||
label = "dtb-nor";
|
||||
};
|
||||
|
||||
partition@7f60000 {
|
||||
reg = <0x07f60000 0x00020000>;
|
||||
label = "env-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
u-boot@7f80000 {
|
||||
partition@7f80000 {
|
||||
reg = <0x07f80000 0x00080000>;
|
||||
label = "u-boot-nor";
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
@ -83,31 +93,35 @@ nand@2,0 {
|
|||
"fsl,elbc-fcm-nand";
|
||||
reg = <0x2 0x0 0x40000>;
|
||||
|
||||
u-boot@0 {
|
||||
partition@0 {
|
||||
reg = <0x0 0x02000000>;
|
||||
label = "u-boot-nand";
|
||||
read-only;
|
||||
};
|
||||
|
||||
jffs2@2000000 {
|
||||
partition@2000000 {
|
||||
reg = <0x02000000 0x10000000>;
|
||||
label = "fs-nand";
|
||||
};
|
||||
|
||||
ramdisk@12000000 {
|
||||
partition@12000000 {
|
||||
reg = <0x12000000 0x08000000>;
|
||||
read-only;
|
||||
label = "ramdisk-nand";
|
||||
};
|
||||
|
||||
kernel@1a000000 {
|
||||
partition@1a000000 {
|
||||
reg = <0x1a000000 0x04000000>;
|
||||
label = "kernel-nand";
|
||||
};
|
||||
|
||||
dtb@1e000000 {
|
||||
partition@1e000000 {
|
||||
reg = <0x1e000000 0x01000000>;
|
||||
read-only;
|
||||
label = "dtb-nand";
|
||||
};
|
||||
|
||||
empty@1f000000 {
|
||||
partition@1f000000 {
|
||||
reg = <0x1f000000 0x21000000>;
|
||||
label = "empty-nand";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -138,7 +138,7 @@ flash@0 {
|
|||
#size-cells = <1>;
|
||||
compatible = "spansion,s25sl12801";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <50000000>;
|
||||
spi-max-frequency = <40000000>;
|
||||
|
||||
partition@0 {
|
||||
/* 1MB for u-boot Bootloader Image */
|
||||
|
@ -196,7 +196,7 @@ phy2: ethernet-phy@2 {
|
|||
};
|
||||
|
||||
tbi-phy@3 {
|
||||
device-type = "tbi-phy";
|
||||
device_type = "tbi-phy";
|
||||
reg = <0x3>;
|
||||
};
|
||||
};
|
||||
|
|
247
arch/powerpc/boot/dts/p1020rdb-pc.dtsi
Normal file
247
arch/powerpc/boot/dts/p1020rdb-pc.dtsi
Normal file
|
@ -0,0 +1,247 @@
|
|||
/*
|
||||
* P1020 RDB-PC Device Tree Source stub (no addresses or top-level ranges)
|
||||
*
|
||||
* Copyright 2012 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
&lbc {
|
||||
nor@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x0 0x0 0x1000000>;
|
||||
bank-width = <2>;
|
||||
device-width = <1>;
|
||||
|
||||
partition@0 {
|
||||
/* This location must not be altered */
|
||||
/* 256KB for Vitesse 7385 Switch firmware */
|
||||
reg = <0x0 0x00040000>;
|
||||
label = "NOR Vitesse-7385 Firmware";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
/* 256KB for DTB Image */
|
||||
reg = <0x00040000 0x00040000>;
|
||||
label = "NOR DTB Image";
|
||||
};
|
||||
|
||||
partition@80000 {
|
||||
/* 3.5 MB for Linux Kernel Image */
|
||||
reg = <0x00080000 0x00380000>;
|
||||
label = "NOR Linux Kernel Image";
|
||||
};
|
||||
|
||||
partition@400000 {
|
||||
/* 11MB for JFFS2 based Root file System */
|
||||
reg = <0x00400000 0x00b00000>;
|
||||
label = "NOR JFFS2 Root File System";
|
||||
};
|
||||
|
||||
partition@f00000 {
|
||||
/* This location must not be altered */
|
||||
/* 512KB for u-boot Bootloader Image */
|
||||
/* 512KB for u-boot Environment Variables */
|
||||
reg = <0x00f00000 0x00100000>;
|
||||
label = "NOR U-Boot Image";
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
nand@1,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,p1020-fcm-nand",
|
||||
"fsl,elbc-fcm-nand";
|
||||
reg = <0x1 0x0 0x40000>;
|
||||
|
||||
partition@0 {
|
||||
/* This location must not be altered */
|
||||
/* 1MB for u-boot Bootloader Image */
|
||||
reg = <0x0 0x00100000>;
|
||||
label = "NAND U-Boot Image";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
/* 1MB for DTB Image */
|
||||
reg = <0x00100000 0x00100000>;
|
||||
label = "NAND DTB Image";
|
||||
};
|
||||
|
||||
partition@200000 {
|
||||
/* 4MB for Linux Kernel Image */
|
||||
reg = <0x00200000 0x00400000>;
|
||||
label = "NAND Linux Kernel Image";
|
||||
};
|
||||
|
||||
partition@600000 {
|
||||
/* 4MB for Compressed Root file System Image */
|
||||
reg = <0x00600000 0x00400000>;
|
||||
label = "NAND Compressed RFS Image";
|
||||
};
|
||||
|
||||
partition@a00000 {
|
||||
/* 7MB for JFFS2 based Root file System */
|
||||
reg = <0x00a00000 0x00700000>;
|
||||
label = "NAND JFFS2 Root File System";
|
||||
};
|
||||
|
||||
partition@1100000 {
|
||||
/* 15MB for JFFS2 based Root file System */
|
||||
reg = <0x01100000 0x00f00000>;
|
||||
label = "NAND Writable User area";
|
||||
};
|
||||
};
|
||||
|
||||
L2switch@2,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "vitesse-7385";
|
||||
reg = <0x2 0x0 0x20000>;
|
||||
};
|
||||
|
||||
cpld@3,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cpld";
|
||||
reg = <0x3 0x0 0x20000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
i2c@3000 {
|
||||
rtc@68 {
|
||||
compatible = "pericom,pt7c4338";
|
||||
reg = <0x68>;
|
||||
};
|
||||
};
|
||||
|
||||
spi@7000 {
|
||||
flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "spansion,s25sl12801";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <40000000>; /* input clock */
|
||||
|
||||
partition@u-boot {
|
||||
/* 512KB for u-boot Bootloader Image */
|
||||
reg = <0x0 0x00080000>;
|
||||
label = "u-boot";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@dtb {
|
||||
/* 512KB for DTB Image*/
|
||||
reg = <0x00080000 0x00080000>;
|
||||
label = "dtb";
|
||||
};
|
||||
|
||||
partition@kernel {
|
||||
/* 4MB for Linux Kernel Image */
|
||||
reg = <0x00100000 0x00400000>;
|
||||
label = "kernel";
|
||||
};
|
||||
|
||||
partition@fs {
|
||||
/* 4MB for Compressed RFS Image */
|
||||
reg = <0x00500000 0x00400000>;
|
||||
label = "file system";
|
||||
};
|
||||
|
||||
partition@jffs-fs {
|
||||
/* 7MB for JFFS2 based RFS */
|
||||
reg = <0x00900000 0x00700000>;
|
||||
label = "file system jffs2";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
usb@22000 {
|
||||
phy_type = "ulpi";
|
||||
};
|
||||
|
||||
/* USB2 is shared with localbus, so it must be disabled
|
||||
by default. We can't put 'status = "disabled";' here
|
||||
since U-Boot doesn't clear the status property when
|
||||
it enables USB2. OTOH, U-Boot does create a new node
|
||||
when there isn't any. So, just comment it out.
|
||||
usb@23000 {
|
||||
phy_type = "ulpi";
|
||||
};
|
||||
*/
|
||||
|
||||
mdio@24000 {
|
||||
phy0: ethernet-phy@0 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <3 1>;
|
||||
reg = <0x0>;
|
||||
};
|
||||
|
||||
phy1: ethernet-phy@1 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <2 1>;
|
||||
reg = <0x1>;
|
||||
};
|
||||
|
||||
tbi0: tbi-phy@11 {
|
||||
device_type = "tbi-phy";
|
||||
reg = <0x11>;
|
||||
};
|
||||
};
|
||||
|
||||
mdio@25000 {
|
||||
tbi1: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet0: ethernet@b0000 {
|
||||
fixed-link = <1 1 1000 0 0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
|
||||
};
|
||||
|
||||
enet1: ethernet@b1000 {
|
||||
phy-handle = <&phy0>;
|
||||
tbi-handle = <&tbi1>;
|
||||
phy-connection-type = "sgmii";
|
||||
};
|
||||
|
||||
enet2: ethernet@b2000 {
|
||||
phy-handle = <&phy1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
};
|
90
arch/powerpc/boot/dts/p1020rdb-pc_32b.dts
Normal file
90
arch/powerpc/boot/dts/p1020rdb-pc_32b.dts
Normal file
|
@ -0,0 +1,90 @@
|
|||
/*
|
||||
* P1020 RDB-PC Device Tree Source (32-bit address map)
|
||||
*
|
||||
* Copyright 2012 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/include/ "fsl/p1020si-pre.dtsi"
|
||||
/ {
|
||||
model = "fsl,P1020RDB-PC";
|
||||
compatible = "fsl,P1020RDB-PC";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
lbc: localbus@ffe05000 {
|
||||
reg = <0 0xffe05000 0 0x1000>;
|
||||
|
||||
/* NOR, NAND Flashes and Vitesse 5 port L2 switch */
|
||||
ranges = <0x0 0x0 0x0 0xef000000 0x01000000
|
||||
0x1 0x0 0x0 0xff800000 0x00040000
|
||||
0x2 0x0 0x0 0xffb00000 0x00020000
|
||||
0x3 0x0 0x0 0xffa00000 0x00020000>;
|
||||
};
|
||||
|
||||
soc: soc@ffe00000 {
|
||||
ranges = <0x0 0x0 0xffe00000 0x100000>;
|
||||
};
|
||||
|
||||
pci0: pcie@ffe09000 {
|
||||
ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
|
||||
reg = <0 0xffe09000 0 0x1000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xa0000000
|
||||
0x2000000 0x0 0xa0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci1: pcie@ffe0a000 {
|
||||
reg = <0 0xffe0a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0x80000000
|
||||
0x2000000 0x0 0x80000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "p1020rdb-pc.dtsi"
|
||||
/include/ "fsl/p1020si-post.dtsi"
|
90
arch/powerpc/boot/dts/p1020rdb-pc_36b.dts
Normal file
90
arch/powerpc/boot/dts/p1020rdb-pc_36b.dts
Normal file
|
@ -0,0 +1,90 @@
|
|||
/*
|
||||
* P1020 RDB-PC Device Tree Source (36-bit address map)
|
||||
*
|
||||
* Copyright 2012 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/include/ "fsl/p1020si-pre.dtsi"
|
||||
/ {
|
||||
model = "fsl,P1020RDB-PC";
|
||||
compatible = "fsl,P1020RDB-PC";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
lbc: localbus@fffe05000 {
|
||||
reg = <0xf 0xffe05000 0 0x1000>;
|
||||
|
||||
/* NOR, NAND Flashes and Vitesse 5 port L2 switch */
|
||||
ranges = <0x0 0x0 0xf 0xef000000 0x01000000
|
||||
0x1 0x0 0xf 0xff800000 0x00040000
|
||||
0x2 0x0 0xf 0xffb00000 0x00040000
|
||||
0x3 0x0 0xf 0xffa00000 0x00020000>;
|
||||
};
|
||||
|
||||
soc: soc@fffe00000 {
|
||||
ranges = <0x0 0xf 0xffe00000 0x100000>;
|
||||
};
|
||||
|
||||
pci0: pcie@fffe09000 {
|
||||
reg = <0xf 0xffe09000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xc0000000 0xc 0x20000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xc0000000
|
||||
0x2000000 0x0 0xc0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci1: pcie@fffe0a000 {
|
||||
reg = <0xf 0xffe0a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0x80000000 0xc 0x00000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0x80000000
|
||||
0x2000000 0x0 0x80000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "p1020rdb-pc.dtsi"
|
||||
/include/ "fsl/p1020si-post.dtsi"
|
64
arch/powerpc/boot/dts/p1020rdb-pc_camp_core0.dts
Normal file
64
arch/powerpc/boot/dts/p1020rdb-pc_camp_core0.dts
Normal file
|
@ -0,0 +1,64 @@
|
|||
/*
|
||||
* P1020 RDB-PC Core0 Device Tree Source in CAMP mode.
|
||||
*
|
||||
* In CAMP mode, each core needs to have its own dts. Only mpic and L2 cache
|
||||
* can be shared, all the other devices must be assigned to one core only.
|
||||
* This dts file allows core0 to have memory, l2, i2c, spi, gpio, tdm, dma, usb,
|
||||
* eth1, eth2, sdhc, crypto, global-util, message, pci0, pci1, msi.
|
||||
*
|
||||
* Please note to add "-b 0" for core0's dts compiling.
|
||||
*
|
||||
* 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/ "p1020rdb-pc_32b.dts"
|
||||
|
||||
/ {
|
||||
model = "fsl,P1020RDB-PC";
|
||||
compatible = "fsl,P1020RDB-PC";
|
||||
|
||||
aliases {
|
||||
ethernet1 = &enet1;
|
||||
ethernet2 = &enet2;
|
||||
serial0 = &serial0;
|
||||
pci0 = &pci0;
|
||||
pci1 = &pci1;
|
||||
};
|
||||
|
||||
cpus {
|
||||
PowerPC,P1020@1 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
localbus@ffe05000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
soc@ffe00000 {
|
||||
serial1: serial@4600 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
enet0: ethernet@b0000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mpic: pic@40000 {
|
||||
protected-sources = <
|
||||
42 29 30 34 /* serial1, enet0-queue-group0 */
|
||||
17 18 24 45 /* enet0-queue-group1, crypto */
|
||||
>;
|
||||
pic-no-reset;
|
||||
};
|
||||
};
|
||||
};
|
142
arch/powerpc/boot/dts/p1020rdb-pc_camp_core1.dts
Normal file
142
arch/powerpc/boot/dts/p1020rdb-pc_camp_core1.dts
Normal file
|
@ -0,0 +1,142 @@
|
|||
/*
|
||||
* P1020 RDB-PC Core1 Device Tree Source in CAMP mode.
|
||||
*
|
||||
* In CAMP mode, each core needs to have its own dts. Only mpic and L2 cache
|
||||
* can be shared, all the other devices must be assigned to one core only.
|
||||
* This dts allows core1 to have l2, eth0, crypto.
|
||||
*
|
||||
* Please note to add "-b 1" for core1's dts compiling.
|
||||
*
|
||||
* 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/ "p1020rdb-pc_32b.dts"
|
||||
|
||||
/ {
|
||||
model = "fsl,P1020RDB-PC";
|
||||
compatible = "fsl,P1020RDB-PC";
|
||||
|
||||
aliases {
|
||||
ethernet0 = &enet0;
|
||||
serial0 = &serial1;
|
||||
};
|
||||
|
||||
cpus {
|
||||
PowerPC,P1020@0 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
localbus@ffe05000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
soc@ffe00000 {
|
||||
ecm-law@0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c@3000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c@3100 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
serial0: serial@4500 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi@7000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpio: gpio-controller@f000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dma@21300 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mdio@24000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mdio@25000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
enet1: ethernet@b1000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
enet2: ethernet@b2000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb@22000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdhci@2e000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mpic: pic@40000 {
|
||||
protected-sources = <
|
||||
16 /* ecm, mem, L2, pci0, pci1 */
|
||||
43 42 59 /* i2c, serial0, spi */
|
||||
47 63 62 /* gpio, tdm */
|
||||
20 21 22 23 /* dma */
|
||||
03 02 /* mdio */
|
||||
35 36 40 /* enet1-queue-group0 */
|
||||
51 52 67 /* enet1-queue-group1 */
|
||||
31 32 33 /* enet2-queue-group0 */
|
||||
25 26 27 /* enet2-queue-group1 */
|
||||
28 72 58 /* usb, sdhci, crypto */
|
||||
0xb0 0xb1 0xb2 /* message */
|
||||
0xb3 0xb4 0xb5
|
||||
0xb6 0xb7
|
||||
0xe0 0xe1 0xe2 /* msi */
|
||||
0xe3 0xe4 0xe5
|
||||
0xe6 0xe7 /* sdhci, crypto , pci */
|
||||
>;
|
||||
pic-no-reset;
|
||||
};
|
||||
|
||||
msi@41600 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
global-utilities@e0000 { //global utilities block
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
pci0: pcie@ffe09000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pci1: pcie@ffe0a000 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
96
arch/powerpc/boot/dts/p1021rdb.dts
Normal file
96
arch/powerpc/boot/dts/p1021rdb.dts
Normal file
|
@ -0,0 +1,96 @@
|
|||
/*
|
||||
* P1021 RDB Device Tree Source
|
||||
*
|
||||
* Copyright 2011 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/include/ "fsl/p1021si-pre.dtsi"
|
||||
/ {
|
||||
model = "fsl,P1021RDB";
|
||||
compatible = "fsl,P1021RDB-PC";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
lbc: localbus@ffe05000 {
|
||||
reg = <0 0xffe05000 0 0x1000>;
|
||||
|
||||
/* NOR, NAND Flashes and Vitesse 5 port L2 switch */
|
||||
ranges = <0x0 0x0 0x0 0xef000000 0x01000000
|
||||
0x1 0x0 0x0 0xff800000 0x00040000
|
||||
0x2 0x0 0x0 0xffb00000 0x00020000>;
|
||||
};
|
||||
|
||||
soc: soc@ffe00000 {
|
||||
ranges = <0x0 0x0 0xffe00000 0x100000>;
|
||||
};
|
||||
|
||||
pci0: pcie@ffe09000 {
|
||||
ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
|
||||
reg = <0 0xffe09000 0 0x1000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xa0000000
|
||||
0x2000000 0x0 0xa0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci1: pcie@ffe0a000 {
|
||||
reg = <0 0xffe0a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0x80000000
|
||||
0x2000000 0x0 0x80000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
qe: qe@ffe80000 {
|
||||
ranges = <0x0 0x0 0xffe80000 0x40000>;
|
||||
reg = <0 0xffe80000 0 0x480>;
|
||||
brg-frequency = <0>;
|
||||
bus-frequency = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "p1021rdb.dtsi"
|
||||
/include/ "fsl/p1021si-post.dtsi"
|
236
arch/powerpc/boot/dts/p1021rdb.dtsi
Normal file
236
arch/powerpc/boot/dts/p1021rdb.dtsi
Normal file
|
@ -0,0 +1,236 @@
|
|||
/*
|
||||
* P1021 RDB Device Tree Source stub (no addresses or top-level ranges)
|
||||
*
|
||||
* Copyright 2011 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
&lbc {
|
||||
nor@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x0 0x0 0x1000000>;
|
||||
bank-width = <2>;
|
||||
device-width = <1>;
|
||||
|
||||
partition@0 {
|
||||
/* This location must not be altered */
|
||||
/* 256KB for Vitesse 7385 Switch firmware */
|
||||
reg = <0x0 0x00040000>;
|
||||
label = "NOR Vitesse-7385 Firmware";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
/* 256KB for DTB Image */
|
||||
reg = <0x00040000 0x00040000>;
|
||||
label = "NOR DTB Image";
|
||||
};
|
||||
|
||||
partition@80000 {
|
||||
/* 3.5 MB for Linux Kernel Image */
|
||||
reg = <0x00080000 0x00380000>;
|
||||
label = "NOR Linux Kernel Image";
|
||||
};
|
||||
|
||||
partition@400000 {
|
||||
/* 11MB for JFFS2 based Root file System */
|
||||
reg = <0x00400000 0x00b00000>;
|
||||
label = "NOR JFFS2 Root File System";
|
||||
};
|
||||
|
||||
partition@f00000 {
|
||||
/* This location must not be altered */
|
||||
/* 512KB for u-boot Bootloader Image */
|
||||
/* 512KB for u-boot Environment Variables */
|
||||
reg = <0x00f00000 0x00100000>;
|
||||
label = "NOR U-Boot Image";
|
||||
};
|
||||
};
|
||||
|
||||
nand@1,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,p1021-fcm-nand",
|
||||
"fsl,elbc-fcm-nand";
|
||||
reg = <0x1 0x0 0x40000>;
|
||||
|
||||
partition@0 {
|
||||
/* This location must not be altered */
|
||||
/* 1MB for u-boot Bootloader Image */
|
||||
reg = <0x0 0x00100000>;
|
||||
label = "NAND U-Boot Image";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
/* 1MB for DTB Image */
|
||||
reg = <0x00100000 0x00100000>;
|
||||
label = "NAND DTB Image";
|
||||
};
|
||||
|
||||
partition@200000 {
|
||||
/* 4MB for Linux Kernel Image */
|
||||
reg = <0x00200000 0x00400000>;
|
||||
label = "NAND Linux Kernel Image";
|
||||
};
|
||||
|
||||
partition@600000 {
|
||||
/* 4MB for Compressed Root file System Image */
|
||||
reg = <0x00600000 0x00400000>;
|
||||
label = "NAND Compressed RFS Image";
|
||||
};
|
||||
|
||||
partition@a00000 {
|
||||
/* 7MB for JFFS2 based Root file System */
|
||||
reg = <0x00a00000 0x00700000>;
|
||||
label = "NAND JFFS2 Root File System";
|
||||
};
|
||||
|
||||
partition@1100000 {
|
||||
/* 15MB for User Writable Area */
|
||||
reg = <0x01100000 0x00f00000>;
|
||||
label = "NAND Writable User area";
|
||||
};
|
||||
};
|
||||
|
||||
L2switch@2,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "vitesse-7385";
|
||||
reg = <0x2 0x0 0x20000>;
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
i2c@3000 {
|
||||
rtc@68 {
|
||||
compatible = "pericom,pt7c4338";
|
||||
reg = <0x68>;
|
||||
};
|
||||
};
|
||||
|
||||
spi@7000 {
|
||||
flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "spansion,s25sl12801";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <40000000>; /* input clock */
|
||||
|
||||
partition@u-boot {
|
||||
/* 512KB for u-boot Bootloader Image */
|
||||
reg = <0x0 0x00080000>;
|
||||
label = "SPI Flash U-Boot Image";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@dtb {
|
||||
/* 512KB for DTB Image */
|
||||
reg = <0x00080000 0x00080000>;
|
||||
label = "SPI Flash DTB Image";
|
||||
};
|
||||
|
||||
partition@kernel {
|
||||
/* 4MB for Linux Kernel Image */
|
||||
reg = <0x00100000 0x00400000>;
|
||||
label = "SPI Flash Linux Kernel Image";
|
||||
};
|
||||
|
||||
partition@fs {
|
||||
/* 4MB for Compressed RFS Image */
|
||||
reg = <0x00500000 0x00400000>;
|
||||
label = "SPI Flash Compressed RFSImage";
|
||||
};
|
||||
|
||||
partition@jffs-fs {
|
||||
/* 7MB for JFFS2 based RFS */
|
||||
reg = <0x00900000 0x00700000>;
|
||||
label = "SPI Flash JFFS2 RFS";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
usb@22000 {
|
||||
phy_type = "ulpi";
|
||||
};
|
||||
|
||||
mdio@24000 {
|
||||
phy0: ethernet-phy@0 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <3 1 0 0>;
|
||||
reg = <0x0>;
|
||||
};
|
||||
|
||||
phy1: ethernet-phy@1 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <2 1 0 0>;
|
||||
reg = <0x1>;
|
||||
};
|
||||
|
||||
tbi0: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
mdio@25000 {
|
||||
tbi1: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
mdio@26000 {
|
||||
tbi2: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet0: ethernet@b0000 {
|
||||
fixed-link = <1 1 1000 0 0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
|
||||
};
|
||||
|
||||
enet1: ethernet@b1000 {
|
||||
phy-handle = <&phy0>;
|
||||
tbi-handle = <&tbi1>;
|
||||
phy-connection-type = "sgmii";
|
||||
};
|
||||
|
||||
enet2: ethernet@b2000 {
|
||||
phy-handle = <&phy1>;
|
||||
tbi-handle = <&tbi2>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
};
|
96
arch/powerpc/boot/dts/p1021rdb_36b.dts
Normal file
96
arch/powerpc/boot/dts/p1021rdb_36b.dts
Normal file
|
@ -0,0 +1,96 @@
|
|||
/*
|
||||
* P1021 RDB Device Tree Source (36-bit address map)
|
||||
*
|
||||
* Copyright 2011 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/include/ "fsl/p1021si-pre.dtsi"
|
||||
/ {
|
||||
model = "fsl,P1021RDB";
|
||||
compatible = "fsl,P1021RDB-PC";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
lbc: localbus@fffe05000 {
|
||||
reg = <0xf 0xffe05000 0 0x1000>;
|
||||
|
||||
/* NOR, NAND Flashes and Vitesse 5 port L2 switch */
|
||||
ranges = <0x0 0x0 0xf 0xef000000 0x01000000
|
||||
0x1 0x0 0xf 0xff800000 0x00040000
|
||||
0x2 0x0 0xf 0xffb00000 0x00020000>;
|
||||
};
|
||||
|
||||
soc: soc@fffe00000 {
|
||||
ranges = <0x0 0xf 0xffe00000 0x100000>;
|
||||
};
|
||||
|
||||
pci0: pcie@fffe09000 {
|
||||
ranges = <0x2000000 0x0 0xc0000000 0xc 0x20000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>;
|
||||
reg = <0xf 0xffe09000 0 0x1000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xa0000000
|
||||
0x2000000 0x0 0xa0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci1: pcie@fffe0a000 {
|
||||
reg = <0xf 0xffe0a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0x80000000 0xc 0x00000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xc0000000
|
||||
0x2000000 0x0 0xc0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
qe: qe@fffe80000 {
|
||||
ranges = <0x0 0xf 0xffe80000 0x40000>;
|
||||
reg = <0xf 0xffe80000 0 0x480>;
|
||||
brg-frequency = <0>;
|
||||
bus-frequency = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "p1021rdb.dtsi"
|
||||
/include/ "fsl/p1021si-post.dtsi"
|
|
@ -1,274 +0,0 @@
|
|||
/*
|
||||
* P1022 DS 36Bit Physical Address Map Device Tree Source
|
||||
*
|
||||
* Copyright 2010 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public License
|
||||
* version 2. This program is licensed "as is" without any warranty of any
|
||||
* kind, whether express or implied.
|
||||
*/
|
||||
|
||||
/include/ "fsl/p1022si-pre.dtsi"
|
||||
/ {
|
||||
model = "fsl,P1022DS";
|
||||
compatible = "fsl,P1022DS";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
lbc: localbus@fffe05000 {
|
||||
reg = <0xf 0xffe05000 0 0x1000>;
|
||||
ranges = <0x0 0x0 0xf 0xe8000000 0x08000000
|
||||
0x1 0x0 0xf 0xe0000000 0x08000000
|
||||
0x2 0x0 0xf 0xff800000 0x00040000
|
||||
0x3 0x0 0xf 0xffdf0000 0x00008000>;
|
||||
|
||||
/*
|
||||
* This node is used to access the pixis via "indirect" mode,
|
||||
* which is done by writing the pixis register index to chip
|
||||
* select 0 and the value to/from chip select 1. Indirect
|
||||
* mode is the only way to access the pixis when DIU video
|
||||
* is enabled. Note that this assumes that the first column
|
||||
* of the 'ranges' property above is the chip select number.
|
||||
*/
|
||||
board-control@0,0 {
|
||||
compatible = "fsl,p1022ds-indirect-pixis";
|
||||
reg = <0x0 0x0 1 /* CS0 */
|
||||
0x1 0x0 1>; /* CS1 */
|
||||
};
|
||||
|
||||
nor@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x0 0x0 0x8000000>;
|
||||
bank-width = <2>;
|
||||
device-width = <1>;
|
||||
|
||||
partition@0 {
|
||||
reg = <0x0 0x03000000>;
|
||||
label = "ramdisk-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@3000000 {
|
||||
reg = <0x03000000 0x00e00000>;
|
||||
label = "diagnostic-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@3e00000 {
|
||||
reg = <0x03e00000 0x00200000>;
|
||||
label = "dink-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@4000000 {
|
||||
reg = <0x04000000 0x00400000>;
|
||||
label = "kernel-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@4400000 {
|
||||
reg = <0x04400000 0x03b00000>;
|
||||
label = "jffs2-nor";
|
||||
};
|
||||
|
||||
partition@7f00000 {
|
||||
reg = <0x07f00000 0x00080000>;
|
||||
label = "dtb-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@7f80000 {
|
||||
reg = <0x07f80000 0x00080000>;
|
||||
label = "u-boot-nor";
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
nand@2,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,elbc-fcm-nand";
|
||||
reg = <0x2 0x0 0x40000>;
|
||||
|
||||
partition@0 {
|
||||
reg = <0x0 0x02000000>;
|
||||
label = "u-boot-nand";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@2000000 {
|
||||
reg = <0x02000000 0x10000000>;
|
||||
label = "jffs2-nand";
|
||||
};
|
||||
|
||||
partition@12000000 {
|
||||
reg = <0x12000000 0x10000000>;
|
||||
label = "ramdisk-nand";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@22000000 {
|
||||
reg = <0x22000000 0x04000000>;
|
||||
label = "kernel-nand";
|
||||
};
|
||||
|
||||
partition@26000000 {
|
||||
reg = <0x26000000 0x01000000>;
|
||||
label = "dtb-nand";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@27000000 {
|
||||
reg = <0x27000000 0x19000000>;
|
||||
label = "reserved-nand";
|
||||
};
|
||||
};
|
||||
|
||||
board-control@3,0 {
|
||||
compatible = "fsl,p1022ds-fpga", "fsl,fpga-ngpixis";
|
||||
reg = <3 0 0x30>;
|
||||
interrupt-parent = <&mpic>;
|
||||
/*
|
||||
* IRQ8 is generated if the "EVENT" switch is pressed
|
||||
* and PX_CTL[EVESEL] is set to 00.
|
||||
*/
|
||||
interrupts = <8 8 0 0>;
|
||||
};
|
||||
};
|
||||
|
||||
soc: soc@fffe00000 {
|
||||
ranges = <0x0 0xf 0xffe00000 0x100000>;
|
||||
|
||||
i2c@3100 {
|
||||
wm8776:codec@1a {
|
||||
compatible = "wlf,wm8776";
|
||||
reg = <0x1a>;
|
||||
/*
|
||||
* clock-frequency will be set by U-Boot if
|
||||
* the clock is enabled.
|
||||
*/
|
||||
};
|
||||
};
|
||||
|
||||
spi@7000 {
|
||||
flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "spansion,s25sl12801";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <40000000>; /* input clock */
|
||||
|
||||
partition@0 {
|
||||
label = "u-boot-spi";
|
||||
reg = <0x00000000 0x00100000>;
|
||||
read-only;
|
||||
};
|
||||
partition@100000 {
|
||||
label = "kernel-spi";
|
||||
reg = <0x00100000 0x00500000>;
|
||||
read-only;
|
||||
};
|
||||
partition@600000 {
|
||||
label = "dtb-spi";
|
||||
reg = <0x00600000 0x00100000>;
|
||||
read-only;
|
||||
};
|
||||
partition@700000 {
|
||||
label = "file system-spi";
|
||||
reg = <0x00700000 0x00900000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ssi@15000 {
|
||||
fsl,mode = "i2s-slave";
|
||||
codec-handle = <&wm8776>;
|
||||
fsl,ssi-asynchronous;
|
||||
};
|
||||
|
||||
usb@22000 {
|
||||
phy_type = "ulpi";
|
||||
};
|
||||
|
||||
usb@23000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mdio@24000 {
|
||||
phy0: ethernet-phy@0 {
|
||||
interrupts = <3 1 0 0>;
|
||||
reg = <0x1>;
|
||||
};
|
||||
phy1: ethernet-phy@1 {
|
||||
interrupts = <9 1 0 0>;
|
||||
reg = <0x2>;
|
||||
};
|
||||
tbi-phy@2 {
|
||||
device_type = "tbi-phy";
|
||||
reg = <0x2>;
|
||||
};
|
||||
};
|
||||
|
||||
ethernet@b0000 {
|
||||
phy-handle = <&phy0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
|
||||
ethernet@b1000 {
|
||||
phy-handle = <&phy1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
};
|
||||
|
||||
pci0: pcie@fffe09000 {
|
||||
reg = <0xf 0xffe09000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci1: pcie@fffe0a000 {
|
||||
reg = <0xf 0xffe0a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x40000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc20000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
reg = <0x0 0x0 0x0 0x0 0x0>;
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci2: pcie@fffe0b000 {
|
||||
reg = <0xf 0xffe0b000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x00000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "fsl/p1022si-post.dtsi"
|
234
arch/powerpc/boot/dts/p1022ds.dtsi
Normal file
234
arch/powerpc/boot/dts/p1022ds.dtsi
Normal file
|
@ -0,0 +1,234 @@
|
|||
/*
|
||||
* P1022 DS Device Tree Source stub (no addresses or top-level ranges)
|
||||
*
|
||||
* Copyright 2012 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
&board_lbc {
|
||||
/*
|
||||
* This node is used to access the pixis via "indirect" mode,
|
||||
* which is done by writing the pixis register index to chip
|
||||
* select 0 and the value to/from chip select 1. Indirect
|
||||
* mode is the only way to access the pixis when DIU video
|
||||
* is enabled. Note that this assumes that the first column
|
||||
* of the 'ranges' property above is the chip select number.
|
||||
*/
|
||||
board-control@0,0 {
|
||||
compatible = "fsl,p1022ds-indirect-pixis";
|
||||
reg = <0x0 0x0 1 /* CS0 */
|
||||
0x1 0x0 1>; /* CS1 */
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <8 0 0 0>;
|
||||
};
|
||||
|
||||
nor@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x0 0x0 0x8000000>;
|
||||
bank-width = <2>;
|
||||
device-width = <1>;
|
||||
|
||||
partition@0 {
|
||||
reg = <0x0 0x03000000>;
|
||||
label = "ramdisk-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@3000000 {
|
||||
reg = <0x03000000 0x00e00000>;
|
||||
label = "diagnostic-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@3e00000 {
|
||||
reg = <0x03e00000 0x00200000>;
|
||||
label = "dink-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@4000000 {
|
||||
reg = <0x04000000 0x00400000>;
|
||||
label = "kernel-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@4400000 {
|
||||
reg = <0x04400000 0x03b00000>;
|
||||
label = "jffs2-nor";
|
||||
};
|
||||
|
||||
partition@7f00000 {
|
||||
reg = <0x07f00000 0x00080000>;
|
||||
label = "dtb-nor";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@7f80000 {
|
||||
reg = <0x07f80000 0x00080000>;
|
||||
label = "u-boot-nor";
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
nand@2,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,elbc-fcm-nand";
|
||||
reg = <0x2 0x0 0x40000>;
|
||||
|
||||
partition@0 {
|
||||
reg = <0x0 0x02000000>;
|
||||
label = "u-boot-nand";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@2000000 {
|
||||
reg = <0x02000000 0x10000000>;
|
||||
label = "jffs2-nand";
|
||||
};
|
||||
|
||||
partition@12000000 {
|
||||
reg = <0x12000000 0x10000000>;
|
||||
label = "ramdisk-nand";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@22000000 {
|
||||
reg = <0x22000000 0x04000000>;
|
||||
label = "kernel-nand";
|
||||
};
|
||||
|
||||
partition@26000000 {
|
||||
reg = <0x26000000 0x01000000>;
|
||||
label = "dtb-nand";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@27000000 {
|
||||
reg = <0x27000000 0x19000000>;
|
||||
label = "reserved-nand";
|
||||
};
|
||||
};
|
||||
|
||||
board-control@3,0 {
|
||||
compatible = "fsl,p1022ds-fpga", "fsl,fpga-ngpixis";
|
||||
reg = <3 0 0x30>;
|
||||
interrupt-parent = <&mpic>;
|
||||
/*
|
||||
* IRQ8 is generated if the "EVENT" switch is pressed
|
||||
* and PX_CTL[EVESEL] is set to 00.
|
||||
*/
|
||||
interrupts = <8 0 0 0>;
|
||||
};
|
||||
};
|
||||
|
||||
&board_soc {
|
||||
i2c@3100 {
|
||||
wm8776:codec@1a {
|
||||
compatible = "wlf,wm8776";
|
||||
reg = <0x1a>;
|
||||
/*
|
||||
* clock-frequency will be set by U-Boot if
|
||||
* the clock is enabled.
|
||||
*/
|
||||
};
|
||||
};
|
||||
|
||||
spi@7000 {
|
||||
flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "spansion,s25sl12801";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <40000000>; /* input clock */
|
||||
|
||||
partition@0 {
|
||||
label = "u-boot-spi";
|
||||
reg = <0x00000000 0x00100000>;
|
||||
read-only;
|
||||
};
|
||||
partition@100000 {
|
||||
label = "kernel-spi";
|
||||
reg = <0x00100000 0x00500000>;
|
||||
read-only;
|
||||
};
|
||||
partition@600000 {
|
||||
label = "dtb-spi";
|
||||
reg = <0x00600000 0x00100000>;
|
||||
read-only;
|
||||
};
|
||||
partition@700000 {
|
||||
label = "file system-spi";
|
||||
reg = <0x00700000 0x00900000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ssi@15000 {
|
||||
fsl,mode = "i2s-slave";
|
||||
codec-handle = <&wm8776>;
|
||||
fsl,ssi-asynchronous;
|
||||
};
|
||||
|
||||
usb@22000 {
|
||||
phy_type = "ulpi";
|
||||
};
|
||||
|
||||
usb@23000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mdio@24000 {
|
||||
phy0: ethernet-phy@0 {
|
||||
interrupts = <3 1 0 0>;
|
||||
reg = <0x1>;
|
||||
};
|
||||
phy1: ethernet-phy@1 {
|
||||
interrupts = <9 1 0 0>;
|
||||
reg = <0x2>;
|
||||
};
|
||||
tbi-phy@2 {
|
||||
device_type = "tbi-phy";
|
||||
reg = <0x2>;
|
||||
};
|
||||
};
|
||||
|
||||
ethernet@b0000 {
|
||||
phy-handle = <&phy0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
|
||||
ethernet@b1000 {
|
||||
phy-handle = <&phy1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
};
|
103
arch/powerpc/boot/dts/p1022ds_32b.dts
Normal file
103
arch/powerpc/boot/dts/p1022ds_32b.dts
Normal file
|
@ -0,0 +1,103 @@
|
|||
/*
|
||||
* P1022 DS 32-bit Physical Address Map Device Tree Source
|
||||
*
|
||||
* Copyright 2012 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/include/ "fsl/p1022si-pre.dtsi"
|
||||
/ {
|
||||
model = "fsl,P1022DS";
|
||||
compatible = "fsl,P1022DS";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
board_lbc: lbc: localbus@ffe05000 {
|
||||
ranges = <0x0 0x0 0x0 0xe8000000 0x08000000
|
||||
0x1 0x0 0x0 0xe0000000 0x08000000
|
||||
0x2 0x0 0x0 0xff800000 0x00040000
|
||||
0x3 0x0 0x0 0xffdf0000 0x00008000>;
|
||||
reg = <0x0 0xffe05000 0 0x1000>;
|
||||
};
|
||||
|
||||
board_soc: soc: soc@ffe00000 {
|
||||
ranges = <0x0 0x0 0xffe00000 0x100000>;
|
||||
};
|
||||
|
||||
pci0: pcie@ffe09000 {
|
||||
ranges = <0x2000000 0x0 0xe0000000 0 0xa0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
|
||||
reg = <0x0 0xffe09000 0 0x1000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci1: pcie@ffe0a000 {
|
||||
ranges = <0x2000000 0x0 0xe0000000 0 0xc0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;
|
||||
reg = <0 0xffe0a000 0 0x1000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci2: pcie@ffe0b000 {
|
||||
ranges = <0x2000000 0x0 0xe0000000 0 0x80000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
|
||||
reg = <0 0xffe0b000 0 0x1000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "fsl/p1022si-post.dtsi"
|
||||
/include/ "p1022ds.dtsi"
|
103
arch/powerpc/boot/dts/p1022ds_36b.dts
Normal file
103
arch/powerpc/boot/dts/p1022ds_36b.dts
Normal file
|
@ -0,0 +1,103 @@
|
|||
/*
|
||||
* P1022 DS 36-bit Physical Address Map Device Tree Source
|
||||
*
|
||||
* Copyright 2012 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/include/ "fsl/p1022si-pre.dtsi"
|
||||
/ {
|
||||
model = "fsl,P1022DS";
|
||||
compatible = "fsl,P1022DS";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
board_lbc: lbc: localbus@fffe05000 {
|
||||
ranges = <0x0 0x0 0xf 0xe8000000 0x08000000
|
||||
0x1 0x0 0xf 0xe0000000 0x08000000
|
||||
0x2 0x0 0xf 0xff800000 0x00040000
|
||||
0x3 0x0 0xf 0xffdf0000 0x00008000>;
|
||||
reg = <0xf 0xffe05000 0 0x1000>;
|
||||
};
|
||||
|
||||
board_soc: soc: soc@fffe00000 {
|
||||
ranges = <0x0 0xf 0xffe00000 0x100000>;
|
||||
};
|
||||
|
||||
pci0: pcie@fffe09000 {
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>;
|
||||
reg = <0xf 0xffe09000 0 0x1000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci1: pcie@fffe0a000 {
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x40000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc20000 0x0 0x10000>;
|
||||
reg = <0xf 0xffe0a000 0 0x1000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci2: pcie@fffe0b000 {
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x00000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>;
|
||||
reg = <0xf 0xffe0b000 0 0x1000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "fsl/p1022si-post.dtsi"
|
||||
/include/ "p1022ds.dtsi"
|
286
arch/powerpc/boot/dts/p1025rdb.dtsi
Normal file
286
arch/powerpc/boot/dts/p1025rdb.dtsi
Normal file
|
@ -0,0 +1,286 @@
|
|||
/*
|
||||
* P1025 RDB Device Tree Source stub (no addresses or top-level ranges)
|
||||
*
|
||||
* Copyright 2011 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
&lbc {
|
||||
nor@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x0 0x0 0x1000000>;
|
||||
bank-width = <2>;
|
||||
device-width = <1>;
|
||||
|
||||
partition@0 {
|
||||
/* This location must not be altered */
|
||||
/* 256KB for Vitesse 7385 Switch firmware */
|
||||
reg = <0x0 0x00040000>;
|
||||
label = "NOR Vitesse-7385 Firmware";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
/* 256KB for DTB Image */
|
||||
reg = <0x00040000 0x00040000>;
|
||||
label = "NOR DTB Image";
|
||||
};
|
||||
|
||||
partition@80000 {
|
||||
/* 3.5 MB for Linux Kernel Image */
|
||||
reg = <0x00080000 0x00380000>;
|
||||
label = "NOR Linux Kernel Image";
|
||||
};
|
||||
|
||||
partition@400000 {
|
||||
/* 11MB for JFFS2 based Root file System */
|
||||
reg = <0x00400000 0x00b00000>;
|
||||
label = "NOR JFFS2 Root File System";
|
||||
};
|
||||
|
||||
partition@f00000 {
|
||||
/* This location must not be altered */
|
||||
/* 512KB for u-boot Bootloader Image */
|
||||
/* 512KB for u-boot Environment Variables */
|
||||
reg = <0x00f00000 0x00100000>;
|
||||
label = "NOR U-Boot Image";
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
nand@1,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,p1025-fcm-nand",
|
||||
"fsl,elbc-fcm-nand";
|
||||
reg = <0x1 0x0 0x40000>;
|
||||
|
||||
partition@0 {
|
||||
/* This location must not be altered */
|
||||
/* 1MB for u-boot Bootloader Image */
|
||||
reg = <0x0 0x00100000>;
|
||||
label = "NAND U-Boot Image";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
/* 1MB for DTB Image */
|
||||
reg = <0x00100000 0x00100000>;
|
||||
label = "NAND DTB Image";
|
||||
};
|
||||
|
||||
partition@200000 {
|
||||
/* 4MB for Linux Kernel Image */
|
||||
reg = <0x00200000 0x00400000>;
|
||||
label = "NAND Linux Kernel Image";
|
||||
};
|
||||
|
||||
partition@600000 {
|
||||
/* 4MB for Compressed Root file System Image */
|
||||
reg = <0x00600000 0x00400000>;
|
||||
label = "NAND Compressed RFS Image";
|
||||
};
|
||||
|
||||
partition@a00000 {
|
||||
/* 7MB for JFFS2 based Root file System */
|
||||
reg = <0x00a00000 0x00700000>;
|
||||
label = "NAND JFFS2 Root File System";
|
||||
};
|
||||
|
||||
partition@1100000 {
|
||||
/* 15MB for JFFS2 based Root file System */
|
||||
reg = <0x01100000 0x00f00000>;
|
||||
label = "NAND Writable User area";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&soc {
|
||||
i2c@3000 {
|
||||
rtc@68 {
|
||||
compatible = "dallas,ds1339";
|
||||
reg = <0x68>;
|
||||
};
|
||||
};
|
||||
|
||||
spi@7000 {
|
||||
flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "spansion,s25sl12801";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <40000000>; /* input clock */
|
||||
|
||||
partition@u-boot {
|
||||
/* 512KB for u-boot Bootloader Image */
|
||||
reg = <0x0 0x00080000>;
|
||||
label = "u-boot";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@dtb {
|
||||
/* 512KB for DTB Image */
|
||||
reg = <0x00080000 0x00080000>;
|
||||
label = "dtb";
|
||||
};
|
||||
|
||||
partition@kernel {
|
||||
/* 4MB for Linux Kernel Image */
|
||||
reg = <0x00100000 0x00400000>;
|
||||
label = "kernel";
|
||||
};
|
||||
|
||||
partition@fs {
|
||||
/* 4MB for Compressed RFS Image */
|
||||
reg = <0x00500000 0x00400000>;
|
||||
label = "file system";
|
||||
};
|
||||
|
||||
partition@jffs-fs {
|
||||
/* 7MB for JFFS2 based RFS */
|
||||
reg = <0x00900000 0x00700000>;
|
||||
label = "file system jffs2";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
usb@22000 {
|
||||
phy_type = "ulpi";
|
||||
};
|
||||
|
||||
/* USB2 is shared with localbus, so it must be disabled
|
||||
by default. We can't put 'status = "disabled";' here
|
||||
since U-Boot doesn't clear the status property when
|
||||
it enables USB2. OTOH, U-Boot does create a new node
|
||||
when there isn't any. So, just comment it out.
|
||||
usb@23000 {
|
||||
phy_type = "ulpi";
|
||||
};
|
||||
*/
|
||||
|
||||
mdio@24000 {
|
||||
phy0: ethernet-phy@0 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <3 1>;
|
||||
reg = <0x0>;
|
||||
};
|
||||
|
||||
phy1: ethernet-phy@1 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <2 1>;
|
||||
reg = <0x1>;
|
||||
};
|
||||
|
||||
tbi0: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
mdio@25000 {
|
||||
tbi1: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
mdio@26000 {
|
||||
tbi2: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet0: ethernet@b0000 {
|
||||
fixed-link = <1 1 1000 0 0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
|
||||
};
|
||||
|
||||
enet1: ethernet@b1000 {
|
||||
phy-handle = <&phy0>;
|
||||
tbi-handle = <&tbi1>;
|
||||
phy-connection-type = "sgmii";
|
||||
};
|
||||
|
||||
enet2: ethernet@b2000 {
|
||||
phy-handle = <&phy1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
|
||||
par_io@e0100 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0xe0100 0x60>;
|
||||
ranges = <0x0 0xe0100 0x60>;
|
||||
device_type = "par_io";
|
||||
num-ports = <3>;
|
||||
pio1: ucc_pin@01 {
|
||||
pio-map = <
|
||||
/* port pin dir open_drain assignment has_irq */
|
||||
0x1 0x13 0x1 0x0 0x1 0x0 /* QE_MUX_MDC */
|
||||
0x1 0x14 0x3 0x0 0x1 0x0 /* QE_MUX_MDIO */
|
||||
0x0 0x17 0x2 0x0 0x2 0x0 /* CLK12 */
|
||||
0x0 0x18 0x2 0x0 0x1 0x0 /* CLK9 */
|
||||
0x0 0x7 0x1 0x0 0x2 0x0 /* ENET1_TXD0_SER1_TXD0 */
|
||||
0x0 0x9 0x1 0x0 0x2 0x0 /* ENET1_TXD1_SER1_TXD1 */
|
||||
0x0 0xb 0x1 0x0 0x2 0x0 /* ENET1_TXD2_SER1_TXD2 */
|
||||
0x0 0xc 0x1 0x0 0x2 0x0 /* ENET1_TXD3_SER1_TXD3 */
|
||||
0x0 0x6 0x2 0x0 0x2 0x0 /* ENET1_RXD0_SER1_RXD0 */
|
||||
0x0 0xa 0x2 0x0 0x2 0x0 /* ENET1_RXD1_SER1_RXD1 */
|
||||
0x0 0xe 0x2 0x0 0x2 0x0 /* ENET1_RXD2_SER1_RXD2 */
|
||||
0x0 0xf 0x2 0x0 0x2 0x0 /* ENET1_RXD3_SER1_RXD3 */
|
||||
0x0 0x5 0x1 0x0 0x2 0x0 /* ENET1_TX_EN_SER1_RTS_B */
|
||||
0x0 0xd 0x1 0x0 0x2 0x0 /* ENET1_TX_ER */
|
||||
0x0 0x4 0x2 0x0 0x2 0x0 /* ENET1_RX_DV_SER1_CTS_B */
|
||||
0x0 0x8 0x2 0x0 0x2 0x0 /* ENET1_RX_ER_SER1_CD_B */
|
||||
0x0 0x11 0x2 0x0 0x2 0x0 /* ENET1_CRS */
|
||||
0x0 0x10 0x2 0x0 0x2 0x0>; /* ENET1_COL */
|
||||
};
|
||||
|
||||
pio2: ucc_pin@02 {
|
||||
pio-map = <
|
||||
/* port pin dir open_drain assignment has_irq */
|
||||
0x1 0x13 0x1 0x0 0x1 0x0 /* QE_MUX_MDC */
|
||||
0x1 0x14 0x3 0x0 0x1 0x0 /* QE_MUX_MDIO */
|
||||
0x1 0xb 0x2 0x0 0x1 0x0 /* CLK13 */
|
||||
0x1 0x7 0x1 0x0 0x2 0x0 /* ENET5_TXD0_SER5_TXD0 */
|
||||
0x1 0xa 0x1 0x0 0x2 0x0 /* ENET5_TXD1_SER5_TXD1 */
|
||||
0x1 0x6 0x2 0x0 0x2 0x0 /* ENET5_RXD0_SER5_RXD0 */
|
||||
0x1 0x9 0x2 0x0 0x2 0x0 /* ENET5_RXD1_SER5_RXD1 */
|
||||
0x1 0x5 0x1 0x0 0x2 0x0 /* ENET5_TX_EN_SER5_RTS_B */
|
||||
0x1 0x4 0x2 0x0 0x2 0x0 /* ENET5_RX_DV_SER5_CTS_B */
|
||||
0x1 0x8 0x2 0x0 0x2 0x0>; /* ENET5_RX_ER_SER5_CD_B */
|
||||
};
|
||||
};
|
||||
};
|
135
arch/powerpc/boot/dts/p1025rdb_32b.dts
Normal file
135
arch/powerpc/boot/dts/p1025rdb_32b.dts
Normal file
|
@ -0,0 +1,135 @@
|
|||
/*
|
||||
* P1025 RDB Device Tree Source (32-bit address map)
|
||||
*
|
||||
* Copyright 2011 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/include/ "fsl/p1021si-pre.dtsi"
|
||||
/ {
|
||||
model = "fsl,P1025RDB";
|
||||
compatible = "fsl,P1025RDB";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
lbc: localbus@ffe05000 {
|
||||
reg = <0 0xffe05000 0 0x1000>;
|
||||
|
||||
/* NOR, NAND Flashes */
|
||||
ranges = <0x0 0x0 0x0 0xef000000 0x01000000
|
||||
0x1 0x0 0x0 0xff800000 0x00040000>;
|
||||
};
|
||||
|
||||
soc: soc@ffe00000 {
|
||||
ranges = <0x0 0x0 0xffe00000 0x100000>;
|
||||
};
|
||||
|
||||
pci0: pcie@ffe09000 {
|
||||
ranges = <0x2000000 0x0 0xe0000000 0 0xe0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
|
||||
reg = <0 0xffe09000 0 0x1000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci1: pcie@ffe0a000 {
|
||||
reg = <0 0xffe0a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xe0000000 0 0xe0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
qe: qe@ffe80000 {
|
||||
ranges = <0x0 0x0 0xffe80000 0x40000>;
|
||||
reg = <0 0xffe80000 0 0x480>;
|
||||
brg-frequency = <0>;
|
||||
bus-frequency = <0>;
|
||||
status = "disabled"; /* no firmware loaded */
|
||||
|
||||
enet3: ucc@2000 {
|
||||
device_type = "network";
|
||||
compatible = "ucc_geth";
|
||||
rx-clock-name = "clk12";
|
||||
tx-clock-name = "clk9";
|
||||
pio-handle = <&pio1>;
|
||||
phy-handle = <&qe_phy0>;
|
||||
phy-connection-type = "mii";
|
||||
};
|
||||
|
||||
mdio@2120 {
|
||||
qe_phy0: ethernet-phy@0 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <4 1 0 0>;
|
||||
reg = <0x6>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
qe_phy1: ethernet-phy@03 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <5 1 0 0>;
|
||||
reg = <0x3>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet4: ucc@2400 {
|
||||
device_type = "network";
|
||||
compatible = "ucc_geth";
|
||||
rx-clock-name = "none";
|
||||
tx-clock-name = "clk13";
|
||||
pio-handle = <&pio2>;
|
||||
phy-handle = <&qe_phy1>;
|
||||
phy-connection-type = "rmii";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "p1025rdb.dtsi"
|
||||
/include/ "fsl/p1021si-post.dtsi"
|
88
arch/powerpc/boot/dts/p1025rdb_36b.dts
Normal file
88
arch/powerpc/boot/dts/p1025rdb_36b.dts
Normal file
|
@ -0,0 +1,88 @@
|
|||
/*
|
||||
* P1025 RDB Device Tree Source (36-bit address map)
|
||||
*
|
||||
* Copyright 2011 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/include/ "fsl/p1021si-pre.dtsi"
|
||||
/ {
|
||||
model = "fsl,P1025RDB";
|
||||
compatible = "fsl,P1025RDB";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
lbc: localbus@fffe05000 {
|
||||
reg = <0xf 0xffe05000 0 0x1000>;
|
||||
|
||||
/* NOR, NAND Flashes */
|
||||
ranges = <0x0 0x0 0xf 0xef000000 0x01000000
|
||||
0x1 0x0 0xf 0xff800000 0x00040000>;
|
||||
};
|
||||
|
||||
soc: soc@fffe00000 {
|
||||
ranges = <0x0 0xf 0xffe00000 0x100000>;
|
||||
};
|
||||
|
||||
pci0: pcie@fffe09000 {
|
||||
reg = <0xf 0xffe09000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xe 0x20000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci1: pcie@fffe0a000 {
|
||||
reg = <0xf 0xffe0a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x00000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "p1025rdb.dtsi"
|
||||
/include/ "fsl/p1021si-post.dtsi"
|
241
arch/powerpc/boot/dts/p2020rdb-pc.dtsi
Normal file
241
arch/powerpc/boot/dts/p2020rdb-pc.dtsi
Normal file
|
@ -0,0 +1,241 @@
|
|||
/*
|
||||
* P2020 RDB-PC Device Tree Source stub (no addresses or top-level ranges)
|
||||
*
|
||||
* Copyright 2011 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
&lbc {
|
||||
nor@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x0 0x0 0x1000000>;
|
||||
bank-width = <2>;
|
||||
device-width = <1>;
|
||||
|
||||
partition@0 {
|
||||
/* This location must not be altered */
|
||||
/* 256KB for Vitesse 7385 Switch firmware */
|
||||
reg = <0x0 0x00040000>;
|
||||
label = "NOR Vitesse-7385 Firmware";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
/* 256KB for DTB Image */
|
||||
reg = <0x00040000 0x00040000>;
|
||||
label = "NOR DTB Image";
|
||||
};
|
||||
|
||||
partition@80000 {
|
||||
/* 3.5 MB for Linux Kernel Image */
|
||||
reg = <0x00080000 0x00380000>;
|
||||
label = "NOR Linux Kernel Image";
|
||||
};
|
||||
|
||||
partition@400000 {
|
||||
/* 11MB for JFFS2 based Root file System */
|
||||
reg = <0x00400000 0x00b00000>;
|
||||
label = "NOR JFFS2 Root File System";
|
||||
};
|
||||
|
||||
partition@f00000 {
|
||||
/* This location must not be altered */
|
||||
/* 512KB for u-boot Bootloader Image */
|
||||
/* 512KB for u-boot Environment Variables */
|
||||
reg = <0x00f00000 0x00100000>;
|
||||
label = "NOR U-Boot Image";
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
nand@1,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,p2020-fcm-nand",
|
||||
"fsl,elbc-fcm-nand";
|
||||
reg = <0x1 0x0 0x40000>;
|
||||
|
||||
partition@0 {
|
||||
/* This location must not be altered */
|
||||
/* 1MB for u-boot Bootloader Image */
|
||||
reg = <0x0 0x00100000>;
|
||||
label = "NAND U-Boot Image";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
/* 1MB for DTB Image */
|
||||
reg = <0x00100000 0x00100000>;
|
||||
label = "NAND DTB Image";
|
||||
};
|
||||
|
||||
partition@200000 {
|
||||
/* 4MB for Linux Kernel Image */
|
||||
reg = <0x00200000 0x00400000>;
|
||||
label = "NAND Linux Kernel Image";
|
||||
};
|
||||
|
||||
partition@600000 {
|
||||
/* 4MB for Compressed Root file System Image */
|
||||
reg = <0x00600000 0x00400000>;
|
||||
label = "NAND Compressed RFS Image";
|
||||
};
|
||||
|
||||
partition@a00000 {
|
||||
/* 7MB for JFFS2 based Root file System */
|
||||
reg = <0x00a00000 0x00700000>;
|
||||
label = "NAND JFFS2 Root File System";
|
||||
};
|
||||
|
||||
partition@1100000 {
|
||||
/* 15MB for JFFS2 based Root file System */
|
||||
reg = <0x01100000 0x00f00000>;
|
||||
label = "NAND Writable User area";
|
||||
};
|
||||
};
|
||||
|
||||
L2switch@2,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "vitesse-7385";
|
||||
reg = <0x2 0x0 0x20000>;
|
||||
};
|
||||
|
||||
cpld@3,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cpld";
|
||||
reg = <0x3 0x0 0x20000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
i2c@3000 {
|
||||
rtc@68 {
|
||||
compatible = "pericom,pt7c4338";
|
||||
reg = <0x68>;
|
||||
};
|
||||
};
|
||||
|
||||
spi@7000 {
|
||||
flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "spansion,m25p80";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <40000000>;
|
||||
|
||||
partition@0 {
|
||||
/* 512KB for u-boot Bootloader Image */
|
||||
reg = <0x0 0x00080000>;
|
||||
label = "SPI U-Boot Image";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@80000 {
|
||||
/* 512KB for DTB Image */
|
||||
reg = <0x00080000 0x00080000>;
|
||||
label = "SPI DTB Image";
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
/* 4MB for Linux Kernel Image */
|
||||
reg = <0x00100000 0x00400000>;
|
||||
label = "SPI Linux Kernel Image";
|
||||
};
|
||||
|
||||
partition@500000 {
|
||||
/* 4MB for Compressed RFS Image */
|
||||
reg = <0x00500000 0x00400000>;
|
||||
label = "SPI Compressed RFS Image";
|
||||
};
|
||||
|
||||
partition@900000 {
|
||||
/* 7MB for JFFS2 based RFS */
|
||||
reg = <0x00900000 0x00700000>;
|
||||
label = "SPI JFFS2 RFS";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
usb@22000 {
|
||||
phy_type = "ulpi";
|
||||
};
|
||||
|
||||
mdio@24520 {
|
||||
phy0: ethernet-phy@0 {
|
||||
interrupts = <3 1 0 0>;
|
||||
reg = <0x0>;
|
||||
};
|
||||
phy1: ethernet-phy@1 {
|
||||
interrupts = <2 1 0 0>;
|
||||
reg = <0x1>;
|
||||
};
|
||||
};
|
||||
|
||||
mdio@25520 {
|
||||
tbi0: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
|
||||
mdio@26520 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ptp_clock@24e00 {
|
||||
fsl,tclk-period = <5>;
|
||||
fsl,tmr-prsc = <200>;
|
||||
fsl,tmr-add = <0xCCCCCCCD>;
|
||||
fsl,tmr-fiper1 = <0x3B9AC9FB>;
|
||||
fsl,tmr-fiper2 = <0x0001869B>;
|
||||
fsl,max-adj = <249999999>;
|
||||
};
|
||||
|
||||
enet0: ethernet@24000 {
|
||||
fixed-link = <1 1 1000 0 0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
|
||||
enet1: ethernet@25000 {
|
||||
tbi-handle = <&tbi0>;
|
||||
phy-handle = <&phy0>;
|
||||
phy-connection-type = "sgmii";
|
||||
};
|
||||
|
||||
enet2: ethernet@26000 {
|
||||
phy-handle = <&phy1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
};
|
96
arch/powerpc/boot/dts/p2020rdb-pc_32b.dts
Normal file
96
arch/powerpc/boot/dts/p2020rdb-pc_32b.dts
Normal file
|
@ -0,0 +1,96 @@
|
|||
/*
|
||||
* P2020 RDB-PC 32Bit Physical Address Map Device Tree Source
|
||||
*
|
||||
* Copyright 2011 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/include/ "fsl/p2020si-pre.dtsi"
|
||||
|
||||
/ {
|
||||
model = "fsl,P2020RDB";
|
||||
compatible = "fsl,P2020RDB-PC";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
lbc: localbus@ffe05000 {
|
||||
reg = <0 0xffe05000 0 0x1000>;
|
||||
|
||||
/* NOR and NAND Flashes */
|
||||
ranges = <0x0 0x0 0x0 0xef000000 0x01000000
|
||||
0x1 0x0 0x0 0xff800000 0x00040000
|
||||
0x2 0x0 0x0 0xffb00000 0x00020000
|
||||
0x3 0x0 0x0 0xffa00000 0x00020000>;
|
||||
};
|
||||
|
||||
soc: soc@ffe00000 {
|
||||
ranges = <0x0 0x0 0xffe00000 0x100000>;
|
||||
};
|
||||
|
||||
pci0: pcie@ffe08000 {
|
||||
reg = <0 0xffe08000 0 0x1000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pci1: pcie@ffe09000 {
|
||||
reg = <0 0xffe09000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xe0000000 0 0xa0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci2: pcie@ffe0a000 {
|
||||
reg = <0 0xffe0a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xe0000000 0 0x80000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "p2020rdb-pc.dtsi"
|
||||
/include/ "fsl/p2020si-post.dtsi"
|
96
arch/powerpc/boot/dts/p2020rdb-pc_36b.dts
Normal file
96
arch/powerpc/boot/dts/p2020rdb-pc_36b.dts
Normal file
|
@ -0,0 +1,96 @@
|
|||
/*
|
||||
* P2020 RDB-PC 36Bit Physical Address Map Device Tree Source
|
||||
*
|
||||
* Copyright 2011 Freescale Semiconductor Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of Freescale Semiconductor nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* ALTERNATIVELY, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") as published by the Free Software
|
||||
* Foundation, either version 2 of that License or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/include/ "fsl/p2020si-pre.dtsi"
|
||||
|
||||
/ {
|
||||
model = "fsl,P2020RDB";
|
||||
compatible = "fsl,P2020RDB-PC";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
lbc: localbus@fffe05000 {
|
||||
reg = <0xf 0xffe05000 0 0x1000>;
|
||||
|
||||
/* NOR and NAND Flashes */
|
||||
ranges = <0x0 0x0 0xf 0xef000000 0x01000000
|
||||
0x1 0x0 0xf 0xff800000 0x00040000
|
||||
0x2 0x0 0xf 0xffb00000 0x00020000
|
||||
0x3 0x0 0xf 0xffa00000 0x00020000>;
|
||||
};
|
||||
|
||||
soc: soc@fffe00000 {
|
||||
ranges = <0x0 0xf 0xffe00000 0x100000>;
|
||||
};
|
||||
|
||||
pci0: pcie@fffe08000 {
|
||||
reg = <0xf 0xffe08000 0 0x1000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pci1: pcie@fffe09000 {
|
||||
reg = <0xf 0xffe09000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci2: pcie@fffe0a000 {
|
||||
reg = <0xf 0xffe0a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x00000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "p2020rdb-pc.dtsi"
|
||||
/include/ "fsl/p2020si-post.dtsi"
|
|
@ -34,7 +34,7 @@ lbc: localbus@ffe05000 {
|
|||
|
||||
/* NOR and NAND Flashes */
|
||||
ranges = <0x0 0x0 0x0 0xef000000 0x01000000
|
||||
0x1 0x0 0x0 0xffa00000 0x00040000
|
||||
0x1 0x0 0x0 0xff800000 0x00040000
|
||||
0x2 0x0 0x0 0xffb00000 0x00020000>;
|
||||
|
||||
nor@0,0 {
|
||||
|
@ -157,7 +157,7 @@ flash@0 {
|
|||
#size-cells = <1>;
|
||||
compatible = "spansion,s25sl12801";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <50000000>;
|
||||
spi-max-frequency = <40000000>;
|
||||
|
||||
partition@0 {
|
||||
/* 512KB for u-boot Bootloader Image */
|
||||
|
|
257
arch/powerpc/configs/85xx/ge_imp3a_defconfig
Normal file
257
arch/powerpc/configs/85xx/ge_imp3a_defconfig
Normal file
|
@ -0,0 +1,257 @@
|
|||
CONFIG_PPC_85xx=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=2
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
CONFIG_BSD_PROCESS_ACCT_V3=y
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_IPC_NS is not set
|
||||
# CONFIG_USER_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
# CONFIG_NET_NS is not set
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
CONFIG_RELAY=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
CONFIG_SLAB=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_GE_IMP3A=y
|
||||
CONFIG_QUICC_ENGINE=y
|
||||
CONFIG_QE_GPIO=y
|
||||
CONFIG_CPM2=y
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_HZ_1000=y
|
||||
CONFIG_PREEMPT=y
|
||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
|
||||
CONFIG_BINFMT_MISC=m
|
||||
CONFIG_MATH_EMULATION=y
|
||||
CONFIG_IRQ_ALL_CPUS=y
|
||||
CONFIG_FORCE_MAX_ZONEORDER=17
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCIEPORTBUS=y
|
||||
CONFIG_PCI_MSI=y
|
||||
CONFIG_PCCARD=y
|
||||
# CONFIG_PCMCIA_LOAD_CIS is not set
|
||||
CONFIG_YENTA=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_XFRM_USER=m
|
||||
CONFIG_NET_KEY=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_ADVANCED_ROUTER=y
|
||||
CONFIG_IP_MULTIPLE_TABLES=y
|
||||
CONFIG_IP_ROUTE_MULTIPATH=y
|
||||
CONFIG_IP_ROUTE_VERBOSE=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
CONFIG_IP_PNP_RARP=y
|
||||
CONFIG_NET_IPIP=m
|
||||
CONFIG_IP_MROUTE=y
|
||||
CONFIG_IP_PIMSM_V1=y
|
||||
CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
CONFIG_INET6_AH=m
|
||||
CONFIG_INET6_IPCOMP=m
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
CONFIG_NET_PKTGEN=m
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_OF_PARTS=y
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_JEDECPROBE=y
|
||||
CONFIG_MTD_CFI_INTELEXT=y
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
CONFIG_MTD_PHYSMAP_OF=y
|
||||
CONFIG_MTD_NAND=y
|
||||
CONFIG_MTD_NAND_FSL_ELBC=y
|
||||
CONFIG_PROC_DEVICETREE=y
|
||||
CONFIG_BLK_DEV_LOOP=m
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=131072
|
||||
CONFIG_MISC_DEVICES=y
|
||||
CONFIG_DS1682=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_ST=y
|
||||
CONFIG_BLK_DEV_SR=y
|
||||
CONFIG_ATA=y
|
||||
CONFIG_SATA_AHCI=y
|
||||
CONFIG_SATA_SIL24=y
|
||||
# CONFIG_ATA_SFF is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_BONDING=m
|
||||
CONFIG_DUMMY=m
|
||||
CONFIG_NETCONSOLE=y
|
||||
CONFIG_NETPOLL_TRAP=y
|
||||
CONFIG_TUN=m
|
||||
# CONFIG_NET_VENDOR_3COM is not set
|
||||
CONFIG_FS_ENET=y
|
||||
CONFIG_UCC_GETH=y
|
||||
CONFIG_GIANFAR=y
|
||||
CONFIG_PPP=m
|
||||
CONFIG_PPP_BSDCOMP=m
|
||||
CONFIG_PPP_DEFLATE=m
|
||||
CONFIG_PPP_FILTER=y
|
||||
CONFIG_PPP_MULTILINK=y
|
||||
CONFIG_PPPOE=m
|
||||
CONFIG_PPP_ASYNC=m
|
||||
CONFIG_PPP_SYNC_TTY=m
|
||||
CONFIG_SLIP=m
|
||||
CONFIG_SLIP_COMPRESSED=y
|
||||
CONFIG_SLIP_SMART=y
|
||||
CONFIG_SLIP_MODE_SLIP6=y
|
||||
# CONFIG_INPUT_KEYBOARD is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=2
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=2
|
||||
CONFIG_SERIAL_8250_EXTENDED=y
|
||||
CONFIG_SERIAL_8250_MANY_PORTS=y
|
||||
CONFIG_SERIAL_8250_DETECT_IRQ=y
|
||||
CONFIG_SERIAL_8250_RSA=y
|
||||
CONFIG_SERIAL_QE=m
|
||||
CONFIG_NVRAM=y
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_CPM=m
|
||||
CONFIG_I2C_MPC=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_GPIO_GE_FPGA=y
|
||||
CONFIG_SENSORS_LM90=y
|
||||
CONFIG_SENSORS_LM92=y
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_GEF_WDT=y
|
||||
CONFIG_VIDEO_OUTPUT_CONTROL=m
|
||||
CONFIG_HID_DRAGONRISE=y
|
||||
CONFIG_HID_GYRATION=y
|
||||
CONFIG_HID_TWINHAN=y
|
||||
CONFIG_HID_ORTEK=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
CONFIG_HID_PETALYNX=y
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
CONFIG_HID_GREENASIA=y
|
||||
CONFIG_HID_SMARTJOYPLUS=y
|
||||
CONFIG_HID_TOPSEED=y
|
||||
CONFIG_HID_THRUSTMASTER=y
|
||||
CONFIG_HID_ZEROPLUS=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_DEVICEFS=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
|
||||
CONFIG_USB_EHCI_FSL=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
|
||||
CONFIG_USB_OHCI_HCD_PPC_OF_LE=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_EDAC=y
|
||||
CONFIG_EDAC_MM_EDAC=y
|
||||
CONFIG_EDAC_MPC85XX=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
# CONFIG_RTC_INTF_PROC is not set
|
||||
CONFIG_RTC_DRV_RX8581=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_FSL_DMA=y
|
||||
# CONFIG_NET_DMA is not set
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT2_FS_XATTR=y
|
||||
CONFIG_EXT2_FS_POSIX_ACL=y
|
||||
CONFIG_EXT3_FS=y
|
||||
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
|
||||
CONFIG_EXT3_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_FUSE_FS=y
|
||||
CONFIG_ISO9660_FS=y
|
||||
CONFIG_JOLIET=y
|
||||
CONFIG_ZISOFS=y
|
||||
CONFIG_UDF_FS=y
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_FAT_DEFAULT_CODEPAGE=850
|
||||
CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
|
||||
CONFIG_NTFS_FS=y
|
||||
CONFIG_PROC_KCORE=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_JFFS2_FS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
CONFIG_NFS_V4=y
|
||||
CONFIG_ROOT_NFS=y
|
||||
CONFIG_NFSD=y
|
||||
CONFIG_NFSD_V4=y
|
||||
CONFIG_CIFS=m
|
||||
CONFIG_CIFS_XATTR=y
|
||||
CONFIG_CIFS_POSIX=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_CODEPAGE_737=m
|
||||
CONFIG_NLS_CODEPAGE_775=m
|
||||
CONFIG_NLS_CODEPAGE_850=y
|
||||
CONFIG_NLS_CODEPAGE_852=m
|
||||
CONFIG_NLS_CODEPAGE_855=m
|
||||
CONFIG_NLS_CODEPAGE_857=m
|
||||
CONFIG_NLS_CODEPAGE_860=m
|
||||
CONFIG_NLS_CODEPAGE_861=m
|
||||
CONFIG_NLS_CODEPAGE_862=m
|
||||
CONFIG_NLS_CODEPAGE_863=m
|
||||
CONFIG_NLS_CODEPAGE_864=m
|
||||
CONFIG_NLS_CODEPAGE_865=m
|
||||
CONFIG_NLS_CODEPAGE_866=m
|
||||
CONFIG_NLS_CODEPAGE_869=m
|
||||
CONFIG_NLS_CODEPAGE_936=m
|
||||
CONFIG_NLS_CODEPAGE_950=m
|
||||
CONFIG_NLS_CODEPAGE_932=m
|
||||
CONFIG_NLS_CODEPAGE_949=m
|
||||
CONFIG_NLS_CODEPAGE_874=m
|
||||
CONFIG_NLS_ISO8859_8=m
|
||||
CONFIG_NLS_CODEPAGE_1250=m
|
||||
CONFIG_NLS_CODEPAGE_1251=m
|
||||
CONFIG_NLS_ASCII=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_NLS_ISO8859_2=m
|
||||
CONFIG_NLS_ISO8859_3=m
|
||||
CONFIG_NLS_ISO8859_4=m
|
||||
CONFIG_NLS_ISO8859_5=m
|
||||
CONFIG_NLS_ISO8859_6=m
|
||||
CONFIG_NLS_ISO8859_7=m
|
||||
CONFIG_NLS_ISO8859_9=m
|
||||
CONFIG_NLS_ISO8859_13=m
|
||||
CONFIG_NLS_ISO8859_14=m
|
||||
CONFIG_NLS_ISO8859_15=y
|
||||
CONFIG_NLS_KOI8_R=m
|
||||
CONFIG_NLS_KOI8_U=m
|
||||
CONFIG_NLS_UTF8=y
|
||||
CONFIG_CRC_CCITT=y
|
||||
CONFIG_CRC_T10DIF=y
|
||||
CONFIG_LIBCRC32C=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||
CONFIG_CRYPTO_CBC=y
|
||||
CONFIG_CRYPTO_MD5=y
|
||||
CONFIG_CRYPTO_SHA256=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_DES=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRYPTO_DEV_TALITOS=y
|
|
@ -131,6 +131,7 @@ CONFIG_I2C=y
|
|||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_MPC=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_GPIO_GE_FPGA=y
|
||||
CONFIG_SENSORS_LM90=y
|
||||
CONFIG_SENSORS_LM92=y
|
||||
CONFIG_WATCHDOG=y
|
||||
|
|
|
@ -132,6 +132,7 @@ CONFIG_I2C=y
|
|||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_MPC=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_GPIO_GE_FPGA=y
|
||||
CONFIG_SENSORS_LM90=y
|
||||
CONFIG_SENSORS_LM92=y
|
||||
CONFIG_WATCHDOG=y
|
||||
|
|
|
@ -183,6 +183,8 @@ CONFIG_NVRAM=y
|
|||
CONFIG_I2C=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_MPC=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_GPIO_GE_FPGA=y
|
||||
CONFIG_SENSORS_LM90=y
|
||||
CONFIG_SENSORS_LM92=y
|
||||
CONFIG_WATCHDOG=y
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
CONFIG_PPC_85xx=y
|
||||
CONFIG_PHYS_64BIT=y
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
CONFIG_PPC_85xx=y
|
||||
CONFIG_PHYS_64BIT=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=8
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
|
|
|
@ -390,6 +390,10 @@ extern const char *powerpc_base_platform;
|
|||
CPU_FTR_L2CSR | CPU_FTR_LWSYNC | CPU_FTR_NOEXECUTE | \
|
||||
CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \
|
||||
CPU_FTR_DEBUG_LVL_EXC)
|
||||
#define CPU_FTRS_E6500 (CPU_FTR_USE_TB | CPU_FTR_NODSISRALIGN | \
|
||||
CPU_FTR_L2CSR | CPU_FTR_LWSYNC | CPU_FTR_NOEXECUTE | \
|
||||
CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \
|
||||
CPU_FTR_DEBUG_LVL_EXC)
|
||||
#define CPU_FTRS_GENERIC_32 (CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN)
|
||||
|
||||
/* 64-bit CPUs */
|
||||
|
@ -442,7 +446,7 @@ extern const char *powerpc_base_platform;
|
|||
|
||||
#ifdef __powerpc64__
|
||||
#ifdef CONFIG_PPC_BOOK3E
|
||||
#define CPU_FTRS_POSSIBLE (CPU_FTRS_E5500 | CPU_FTRS_A2)
|
||||
#define CPU_FTRS_POSSIBLE (CPU_FTRS_E6500 | CPU_FTRS_E5500 | CPU_FTRS_A2)
|
||||
#else
|
||||
#define CPU_FTRS_POSSIBLE \
|
||||
(CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \
|
||||
|
@ -483,7 +487,7 @@ enum {
|
|||
#endif
|
||||
#ifdef CONFIG_E500
|
||||
CPU_FTRS_E500 | CPU_FTRS_E500_2 | CPU_FTRS_E500MC |
|
||||
CPU_FTRS_E5500 |
|
||||
CPU_FTRS_E5500 | CPU_FTRS_E6500 |
|
||||
#endif
|
||||
0,
|
||||
};
|
||||
|
@ -491,7 +495,7 @@ enum {
|
|||
|
||||
#ifdef __powerpc64__
|
||||
#ifdef CONFIG_PPC_BOOK3E
|
||||
#define CPU_FTRS_ALWAYS (CPU_FTRS_E5500 & CPU_FTRS_A2)
|
||||
#define CPU_FTRS_ALWAYS (CPU_FTRS_E6500 & CPU_FTRS_E5500 & CPU_FTRS_A2)
|
||||
#else
|
||||
#define CPU_FTRS_ALWAYS \
|
||||
(CPU_FTRS_POWER3 & CPU_FTRS_RS64 & CPU_FTRS_POWER4 & \
|
||||
|
@ -528,7 +532,7 @@ enum {
|
|||
#endif
|
||||
#ifdef CONFIG_E500
|
||||
CPU_FTRS_E500 & CPU_FTRS_E500_2 & CPU_FTRS_E500MC &
|
||||
CPU_FTRS_E5500 &
|
||||
CPU_FTRS_E5500 & CPU_FTRS_E6500 &
|
||||
#endif
|
||||
CPU_FTRS_POSSIBLE,
|
||||
};
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Authors: Jeff Brown
|
||||
* Timur Tabi <timur@freescale.com>
|
||||
*
|
||||
* Copyright 2004,2007 Freescale Semiconductor, Inc
|
||||
* Copyright 2004,2007,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
|
||||
|
@ -114,6 +114,10 @@ struct ccsr_guts_86xx {
|
|||
__be32 srds2cr1; /* 0x.0f44 - SerDes2 Control Register 0 */
|
||||
} __attribute__ ((packed));
|
||||
|
||||
|
||||
/* Alternate function signal multiplex control */
|
||||
#define MPC85xx_PMUXCR_QE(x) (0x8000 >> (x))
|
||||
|
||||
#ifdef CONFIG_PPC_86xx
|
||||
|
||||
#define CCSR_GUTS_DMACR_DEV_SSI 0 /* DMA controller/channel set to SSI */
|
||||
|
|
132
arch/powerpc/include/asm/mpic_msgr.h
Normal file
132
arch/powerpc/include/asm/mpic_msgr.h
Normal file
|
@ -0,0 +1,132 @@
|
|||
/*
|
||||
* Copyright 2011-2012, Meador Inge, Mentor Graphics Corporation.
|
||||
*
|
||||
* 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; version 2 of the
|
||||
* License.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MPIC_MSGR_H
|
||||
#define _ASM_MPIC_MSGR_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
||||
struct mpic_msgr {
|
||||
u32 __iomem *base;
|
||||
u32 __iomem *mer;
|
||||
int irq;
|
||||
unsigned char in_use;
|
||||
raw_spinlock_t lock;
|
||||
int num;
|
||||
};
|
||||
|
||||
/* Get a message register
|
||||
*
|
||||
* @reg_num: the MPIC message register to get
|
||||
*
|
||||
* A pointer to the message register is returned. If
|
||||
* the message register asked for is already in use, then
|
||||
* EBUSY is returned. If the number given is not associated
|
||||
* with an actual message register, then ENODEV is returned.
|
||||
* Successfully getting the register marks it as in use.
|
||||
*/
|
||||
extern struct mpic_msgr *mpic_msgr_get(unsigned int reg_num);
|
||||
|
||||
/* Relinquish a message register
|
||||
*
|
||||
* @msgr: the message register to return
|
||||
*
|
||||
* Disables the given message register and marks it as free.
|
||||
* After this call has completed successully the message
|
||||
* register is available to be acquired by a call to
|
||||
* mpic_msgr_get.
|
||||
*/
|
||||
extern void mpic_msgr_put(struct mpic_msgr *msgr);
|
||||
|
||||
/* Enable a message register
|
||||
*
|
||||
* @msgr: the message register to enable
|
||||
*
|
||||
* The given message register is enabled for sending
|
||||
* messages.
|
||||
*/
|
||||
extern void mpic_msgr_enable(struct mpic_msgr *msgr);
|
||||
|
||||
/* Disable a message register
|
||||
*
|
||||
* @msgr: the message register to disable
|
||||
*
|
||||
* The given message register is disabled for sending
|
||||
* messages.
|
||||
*/
|
||||
extern void mpic_msgr_disable(struct mpic_msgr *msgr);
|
||||
|
||||
/* Write a message to a message register
|
||||
*
|
||||
* @msgr: the message register to write to
|
||||
* @message: the message to write
|
||||
*
|
||||
* The given 32-bit message is written to the given message
|
||||
* register. Writing to an enabled message registers fires
|
||||
* an interrupt.
|
||||
*/
|
||||
static inline void mpic_msgr_write(struct mpic_msgr *msgr, u32 message)
|
||||
{
|
||||
out_be32(msgr->base, message);
|
||||
}
|
||||
|
||||
/* Read a message from a message register
|
||||
*
|
||||
* @msgr: the message register to read from
|
||||
*
|
||||
* Returns the 32-bit value currently in the given message register.
|
||||
* Upon reading the register any interrupts for that register are
|
||||
* cleared.
|
||||
*/
|
||||
static inline u32 mpic_msgr_read(struct mpic_msgr *msgr)
|
||||
{
|
||||
return in_be32(msgr->base);
|
||||
}
|
||||
|
||||
/* Clear a message register
|
||||
*
|
||||
* @msgr: the message register to clear
|
||||
*
|
||||
* Clears any interrupts associated with the given message register.
|
||||
*/
|
||||
static inline void mpic_msgr_clear(struct mpic_msgr *msgr)
|
||||
{
|
||||
(void) mpic_msgr_read(msgr);
|
||||
}
|
||||
|
||||
/* Set the destination CPU for the message register
|
||||
*
|
||||
* @msgr: the message register whose destination is to be set
|
||||
* @cpu_num: the Linux CPU number to bind the message register to
|
||||
*
|
||||
* Note that the CPU number given is the CPU number used by the kernel
|
||||
* and *not* the actual hardware CPU number.
|
||||
*/
|
||||
static inline void mpic_msgr_set_destination(struct mpic_msgr *msgr,
|
||||
u32 cpu_num)
|
||||
{
|
||||
out_be32(msgr->base, 1 << get_hard_smp_processor_id(cpu_num));
|
||||
}
|
||||
|
||||
/* Get the IRQ number for the message register
|
||||
* @msgr: the message register whose IRQ is to be returned
|
||||
*
|
||||
* Returns the IRQ number associated with the given message register.
|
||||
* NO_IRQ is returned if this message register is not capable of
|
||||
* receiving interrupts. What message register can and cannot receive
|
||||
* interrupts is specified in the device tree for the system.
|
||||
*/
|
||||
static inline int mpic_msgr_get_irq(struct mpic_msgr *msgr)
|
||||
{
|
||||
return msgr->irq;
|
||||
}
|
||||
|
||||
#endif
|
|
@ -62,6 +62,7 @@
|
|||
#define SPRN_DVC2 0x13F /* Data Value Compare Register 2 */
|
||||
#define SPRN_MAS8 0x155 /* MMU Assist Register 8 */
|
||||
#define SPRN_TLB0PS 0x158 /* TLB 0 Page Size Register */
|
||||
#define SPRN_TLB1PS 0x159 /* TLB 1 Page Size Register */
|
||||
#define SPRN_MAS5_MAS6 0x15c /* MMU Assist Register 5 || 6 */
|
||||
#define SPRN_MAS8_MAS1 0x15d /* MMU Assist Register 8 || 1 */
|
||||
#define SPRN_EPTCFG 0x15e /* Embedded Page Table Config */
|
||||
|
|
|
@ -2019,6 +2019,24 @@ static struct cpu_spec __initdata cpu_specs[] = {
|
|||
.machine_check = machine_check_e500mc,
|
||||
.platform = "ppce5500",
|
||||
},
|
||||
{ /* e6500 */
|
||||
.pvr_mask = 0xffff0000,
|
||||
.pvr_value = 0x80400000,
|
||||
.cpu_name = "e6500",
|
||||
.cpu_features = CPU_FTRS_E6500,
|
||||
.cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
|
||||
.mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS |
|
||||
MMU_FTR_USE_TLBILX,
|
||||
.icache_bsize = 64,
|
||||
.dcache_bsize = 64,
|
||||
.num_pmcs = 4,
|
||||
.oprofile_cpu_type = "ppc/e6500",
|
||||
.oprofile_type = PPC_OPROFILE_FSL_EMB,
|
||||
.cpu_setup = __setup_cpu_e5500,
|
||||
.cpu_restore = __restore_cpu_e5500,
|
||||
.machine_check = machine_check_e500mc,
|
||||
.platform = "ppce6500",
|
||||
},
|
||||
#ifdef CONFIG_PPC32
|
||||
{ /* default match */
|
||||
.pvr_mask = 0x00000000,
|
||||
|
|
|
@ -149,12 +149,19 @@ static void settlbcam(int index, unsigned long virt, phys_addr_t phys,
|
|||
unsigned long calc_cam_sz(unsigned long ram, unsigned long virt,
|
||||
phys_addr_t phys)
|
||||
{
|
||||
unsigned int camsize = __ilog2(ram) & ~1U;
|
||||
unsigned int align = __ffs(virt | phys) & ~1U;
|
||||
unsigned long max_cam = (mfspr(SPRN_TLB1CFG) >> 16) & 0xf;
|
||||
unsigned int camsize = __ilog2(ram);
|
||||
unsigned int align = __ffs(virt | phys);
|
||||
unsigned long max_cam;
|
||||
|
||||
/* Convert (4^max) kB to (2^max) bytes */
|
||||
max_cam = max_cam * 2 + 10;
|
||||
if ((mfspr(SPRN_MMUCFG) & MMUCFG_MAVN) == MMUCFG_MAVN_V1) {
|
||||
/* Convert (4^max) kB to (2^max) bytes */
|
||||
max_cam = ((mfspr(SPRN_TLB1CFG) >> 16) & 0xf) * 2 + 10;
|
||||
camsize &= ~1U;
|
||||
align &= ~1U;
|
||||
} else {
|
||||
/* Convert (2^max) kB to (2^max) bytes */
|
||||
max_cam = __ilog2(mfspr(SPRN_TLB1PS)) + 10;
|
||||
}
|
||||
|
||||
if (camsize > align)
|
||||
camsize = align;
|
||||
|
|
|
@ -6,6 +6,7 @@ menuconfig FSL_SOC_BOOKE
|
|||
select MPIC
|
||||
select PPC_PCI_CHOICE
|
||||
select FSL_PCI if PCI
|
||||
select SERIAL_8250_EXTENDED if SERIAL_8250
|
||||
select SERIAL_8250_SHARE_IRQ if SERIAL_8250
|
||||
default y
|
||||
|
||||
|
@ -13,6 +14,15 @@ if FSL_SOC_BOOKE
|
|||
|
||||
if PPC32
|
||||
|
||||
config FSL_85XX_CACHE_SRAM
|
||||
bool
|
||||
select PPC_LIB_RHEAP
|
||||
help
|
||||
When selected, this option enables cache-sram support
|
||||
for memory allocation on P1/P2 QorIQ platforms.
|
||||
cache-sram-size and cache-sram-offset kernel boot
|
||||
parameters should be passed when this option is enabled.
|
||||
|
||||
config MPC8540_ADS
|
||||
bool "Freescale MPC8540 ADS"
|
||||
select DEFAULT_UIMAGE
|
||||
|
@ -30,6 +40,7 @@ config MPC85xx_CDS
|
|||
bool "Freescale MPC85xx CDS"
|
||||
select DEFAULT_UIMAGE
|
||||
select PPC_I8259
|
||||
select HAS_RAPIDIO
|
||||
help
|
||||
This option enables support for the MPC85xx CDS board
|
||||
|
||||
|
@ -80,7 +91,6 @@ config P1010_RDB
|
|||
config P1022_DS
|
||||
bool "Freescale P1022 DS"
|
||||
select DEFAULT_UIMAGE
|
||||
select PHYS_64BIT # The DTS has 36-bit addresses
|
||||
select SWIOTLB
|
||||
help
|
||||
This option enables support for the Freescale P1022DS reference board.
|
||||
|
@ -171,6 +181,21 @@ config SBC8560
|
|||
help
|
||||
This option enables support for the Wind River SBC8560 board
|
||||
|
||||
config GE_IMP3A
|
||||
bool "GE Intelligent Platforms IMP3A"
|
||||
select DEFAULT_UIMAGE
|
||||
select SWIOTLB
|
||||
select MMIO_NVRAM
|
||||
select GENERIC_GPIO
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GE_FPGA
|
||||
help
|
||||
This option enables support for the GE Intelligent Platforms IMP3A
|
||||
board.
|
||||
|
||||
This board is a 3U CompactPCI Single Board Computer with a Freescale
|
||||
P2020 processor.
|
||||
|
||||
config P2041_RDB
|
||||
bool "Freescale P2041 RDB"
|
||||
select DEFAULT_UIMAGE
|
||||
|
|
|
@ -27,3 +27,4 @@ obj-$(CONFIG_SBC8548) += sbc8548.o
|
|||
obj-$(CONFIG_SOCRATES) += socrates.o socrates_fpga_pic.o
|
||||
obj-$(CONFIG_KSI8560) += ksi8560.o
|
||||
obj-$(CONFIG_XES_MPC85xx) += xes_mpc85xx.o
|
||||
obj-$(CONFIG_GE_IMP3A) += ge_imp3a.o
|
||||
|
|
246
arch/powerpc/platforms/85xx/ge_imp3a.c
Normal file
246
arch/powerpc/platforms/85xx/ge_imp3a.c
Normal file
|
@ -0,0 +1,246 @@
|
|||
/*
|
||||
* GE IMP3A Board Setup
|
||||
*
|
||||
* Author Martyn Welch <martyn.welch@ge.com>
|
||||
*
|
||||
* Copyright 2010 GE Intelligent Platforms Embedded Systems, 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.
|
||||
*
|
||||
* Based on: mpc85xx_ds.c (MPC85xx DS Board Setup)
|
||||
* Copyright 2007 Freescale Semiconductor Inc.
|
||||
*/
|
||||
|
||||
#include <linux/stddef.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/kdev_t.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/memblock.h>
|
||||
|
||||
#include <asm/system.h>
|
||||
#include <asm/time.h>
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/pci-bridge.h>
|
||||
#include <mm/mmu_decl.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/udbg.h>
|
||||
#include <asm/mpic.h>
|
||||
#include <asm/swiotlb.h>
|
||||
#include <asm/nvram.h>
|
||||
|
||||
#include <sysdev/fsl_soc.h>
|
||||
#include <sysdev/fsl_pci.h>
|
||||
#include "smp.h"
|
||||
|
||||
#include "mpc85xx.h"
|
||||
#include <sysdev/ge/ge_pic.h>
|
||||
|
||||
void __iomem *imp3a_regs;
|
||||
|
||||
void __init ge_imp3a_pic_init(void)
|
||||
{
|
||||
struct mpic *mpic;
|
||||
struct device_node *np;
|
||||
struct device_node *cascade_node = NULL;
|
||||
unsigned long root = of_get_flat_dt_root();
|
||||
|
||||
if (of_flat_dt_is_compatible(root, "fsl,MPC8572DS-CAMP")) {
|
||||
mpic = mpic_alloc(NULL, 0,
|
||||
MPIC_NO_RESET |
|
||||
MPIC_BIG_ENDIAN |
|
||||
MPIC_SINGLE_DEST_CPU,
|
||||
0, 256, " OpenPIC ");
|
||||
} else {
|
||||
mpic = mpic_alloc(NULL, 0,
|
||||
MPIC_BIG_ENDIAN |
|
||||
MPIC_SINGLE_DEST_CPU,
|
||||
0, 256, " OpenPIC ");
|
||||
}
|
||||
|
||||
BUG_ON(mpic == NULL);
|
||||
mpic_init(mpic);
|
||||
/*
|
||||
* There is a simple interrupt handler in the main FPGA, this needs
|
||||
* to be cascaded into the MPIC
|
||||
*/
|
||||
for_each_node_by_type(np, "interrupt-controller")
|
||||
if (of_device_is_compatible(np, "gef,fpga-pic-1.00")) {
|
||||
cascade_node = np;
|
||||
break;
|
||||
}
|
||||
|
||||
if (cascade_node == NULL) {
|
||||
printk(KERN_WARNING "IMP3A: No FPGA PIC\n");
|
||||
return;
|
||||
}
|
||||
|
||||
gef_pic_init(cascade_node);
|
||||
of_node_put(cascade_node);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
static int primary_phb_addr;
|
||||
#endif /* CONFIG_PCI */
|
||||
|
||||
/*
|
||||
* Setup the architecture
|
||||
*/
|
||||
static void __init ge_imp3a_setup_arch(void)
|
||||
{
|
||||
struct device_node *regs;
|
||||
#ifdef CONFIG_PCI
|
||||
struct device_node *np;
|
||||
struct pci_controller *hose;
|
||||
#endif
|
||||
dma_addr_t max = 0xffffffff;
|
||||
|
||||
if (ppc_md.progress)
|
||||
ppc_md.progress("ge_imp3a_setup_arch()", 0);
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
for_each_node_by_type(np, "pci") {
|
||||
if (of_device_is_compatible(np, "fsl,mpc8540-pci") ||
|
||||
of_device_is_compatible(np, "fsl,mpc8548-pcie") ||
|
||||
of_device_is_compatible(np, "fsl,p2020-pcie")) {
|
||||
struct resource rsrc;
|
||||
of_address_to_resource(np, 0, &rsrc);
|
||||
if ((rsrc.start & 0xfffff) == primary_phb_addr)
|
||||
fsl_add_bridge(np, 1);
|
||||
else
|
||||
fsl_add_bridge(np, 0);
|
||||
|
||||
hose = pci_find_hose_for_OF_device(np);
|
||||
max = min(max, hose->dma_window_base_cur +
|
||||
hose->dma_window_size);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
mpc85xx_smp_init();
|
||||
|
||||
#ifdef CONFIG_SWIOTLB
|
||||
if (memblock_end_of_DRAM() > max) {
|
||||
ppc_swiotlb_enable = 1;
|
||||
set_pci_dma_ops(&swiotlb_dma_ops);
|
||||
ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Remap basic board registers */
|
||||
regs = of_find_compatible_node(NULL, NULL, "ge,imp3a-fpga-regs");
|
||||
if (regs) {
|
||||
imp3a_regs = of_iomap(regs, 0);
|
||||
if (imp3a_regs == NULL)
|
||||
printk(KERN_WARNING "Unable to map board registers\n");
|
||||
of_node_put(regs);
|
||||
}
|
||||
|
||||
#if defined(CONFIG_MMIO_NVRAM)
|
||||
mmio_nvram_init();
|
||||
#endif
|
||||
|
||||
printk(KERN_INFO "GE Intelligent Platforms IMP3A 3U cPCI SBC\n");
|
||||
}
|
||||
|
||||
/* Return the PCB revision */
|
||||
static unsigned int ge_imp3a_get_pcb_rev(void)
|
||||
{
|
||||
unsigned int reg;
|
||||
|
||||
reg = ioread16(imp3a_regs);
|
||||
return (reg >> 8) & 0xff;
|
||||
}
|
||||
|
||||
/* Return the board (software) revision */
|
||||
static unsigned int ge_imp3a_get_board_rev(void)
|
||||
{
|
||||
unsigned int reg;
|
||||
|
||||
reg = ioread16(imp3a_regs + 0x2);
|
||||
return reg & 0xff;
|
||||
}
|
||||
|
||||
/* Return the FPGA revision */
|
||||
static unsigned int ge_imp3a_get_fpga_rev(void)
|
||||
{
|
||||
unsigned int reg;
|
||||
|
||||
reg = ioread16(imp3a_regs + 0x2);
|
||||
return (reg >> 8) & 0xff;
|
||||
}
|
||||
|
||||
/* Return compactPCI Geographical Address */
|
||||
static unsigned int ge_imp3a_get_cpci_geo_addr(void)
|
||||
{
|
||||
unsigned int reg;
|
||||
|
||||
reg = ioread16(imp3a_regs + 0x6);
|
||||
return (reg & 0x0f00) >> 8;
|
||||
}
|
||||
|
||||
/* Return compactPCI System Controller Status */
|
||||
static unsigned int ge_imp3a_get_cpci_is_syscon(void)
|
||||
{
|
||||
unsigned int reg;
|
||||
|
||||
reg = ioread16(imp3a_regs + 0x6);
|
||||
return reg & (1 << 12);
|
||||
}
|
||||
|
||||
static void ge_imp3a_show_cpuinfo(struct seq_file *m)
|
||||
{
|
||||
seq_printf(m, "Vendor\t\t: GE Intelligent Platforms\n");
|
||||
|
||||
seq_printf(m, "Revision\t: %u%c\n", ge_imp3a_get_pcb_rev(),
|
||||
('A' + ge_imp3a_get_board_rev() - 1));
|
||||
|
||||
seq_printf(m, "FPGA Revision\t: %u\n", ge_imp3a_get_fpga_rev());
|
||||
|
||||
seq_printf(m, "cPCI geo. addr\t: %u\n", ge_imp3a_get_cpci_geo_addr());
|
||||
|
||||
seq_printf(m, "cPCI syscon\t: %s\n",
|
||||
ge_imp3a_get_cpci_is_syscon() ? "yes" : "no");
|
||||
}
|
||||
|
||||
/*
|
||||
* Called very early, device-tree isn't unflattened
|
||||
*/
|
||||
static int __init ge_imp3a_probe(void)
|
||||
{
|
||||
unsigned long root = of_get_flat_dt_root();
|
||||
|
||||
if (of_flat_dt_is_compatible(root, "ge,IMP3A")) {
|
||||
#ifdef CONFIG_PCI
|
||||
primary_phb_addr = 0x9000;
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
machine_device_initcall(ge_imp3a, mpc85xx_common_publish_devices);
|
||||
|
||||
machine_arch_initcall(ge_imp3a, swiotlb_setup_bus_notifier);
|
||||
|
||||
define_machine(ge_imp3a) {
|
||||
.name = "GE_IMP3A",
|
||||
.probe = ge_imp3a_probe,
|
||||
.setup_arch = ge_imp3a_setup_arch,
|
||||
.init_IRQ = ge_imp3a_pic_init,
|
||||
.show_cpuinfo = ge_imp3a_show_cpuinfo,
|
||||
#ifdef CONFIG_PCI
|
||||
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
|
||||
#endif
|
||||
.get_irq = mpic_get_irq,
|
||||
.restart = fsl_rstcr_restart,
|
||||
.calibrate_decr = generic_calibrate_decr,
|
||||
.progress = udbg_progress,
|
||||
};
|
|
@ -3,7 +3,7 @@
|
|||
*
|
||||
* Maintained by Kumar Gala (see MAINTAINERS for contact information)
|
||||
*
|
||||
* Copyright 2005 Freescale Semiconductor Inc.
|
||||
* Copyright 2005, 2011-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
|
||||
|
@ -48,17 +48,24 @@
|
|||
|
||||
#include "mpc85xx.h"
|
||||
|
||||
/* CADMUS info */
|
||||
/* xxx - galak, move into device tree */
|
||||
#define CADMUS_BASE (0xf8004000)
|
||||
#define CADMUS_SIZE (256)
|
||||
#define CM_VER (0)
|
||||
#define CM_CSR (1)
|
||||
#define CM_RST (2)
|
||||
/*
|
||||
* The CDS board contains an FPGA/CPLD called "Cadmus", which collects
|
||||
* various logic and performs system control functions.
|
||||
* Here is the FPGA/CPLD register map.
|
||||
*/
|
||||
struct cadmus_reg {
|
||||
u8 cm_ver; /* Board version */
|
||||
u8 cm_csr; /* General control/status */
|
||||
u8 cm_rst; /* Reset control */
|
||||
u8 cm_hsclk; /* High speed clock */
|
||||
u8 cm_hsxclk; /* High speed clock extended */
|
||||
u8 cm_led; /* LED data */
|
||||
u8 cm_pci; /* PCI control/status */
|
||||
u8 cm_dma; /* DMA control */
|
||||
u8 res[248]; /* Total 256 bytes */
|
||||
};
|
||||
|
||||
|
||||
static int cds_pci_slot = 2;
|
||||
static volatile u8 *cadmus;
|
||||
static struct cadmus_reg *cadmus;
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
|
||||
|
@ -158,6 +165,33 @@ DECLARE_PCI_FIXUP_EARLY(0x1957, 0x3fff, skip_fake_bridge);
|
|||
DECLARE_PCI_FIXUP_EARLY(0x3fff, 0x1957, skip_fake_bridge);
|
||||
DECLARE_PCI_FIXUP_EARLY(0xff3f, 0x5719, skip_fake_bridge);
|
||||
|
||||
#define PCI_DEVICE_ID_IDT_TSI310 0x01a7
|
||||
|
||||
/*
|
||||
* Fix Tsi310 PCI-X bridge resource.
|
||||
* Force the bridge to open a window from 0x0000-0x1fff in PCI I/O space.
|
||||
* This allows legacy I/O(i8259, etc) on the VIA southbridge to be accessed.
|
||||
*/
|
||||
void mpc85xx_cds_fixup_bus(struct pci_bus *bus)
|
||||
{
|
||||
struct pci_dev *dev = bus->self;
|
||||
struct resource *res = bus->resource[0];
|
||||
|
||||
if (dev != NULL &&
|
||||
dev->vendor == PCI_VENDOR_ID_IBM &&
|
||||
dev->device == PCI_DEVICE_ID_IDT_TSI310) {
|
||||
if (res) {
|
||||
res->start = 0;
|
||||
res->end = 0x1fff;
|
||||
res->flags = IORESOURCE_IO;
|
||||
pr_info("mpc85xx_cds: PCI bridge resource fixup applied\n");
|
||||
pr_info("mpc85xx_cds: %pR\n", res);
|
||||
}
|
||||
}
|
||||
|
||||
fsl_pcibios_fixup_bus(bus);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PPC_I8259
|
||||
static void mpc85xx_8259_cascade_handler(unsigned int irq,
|
||||
struct irq_desc *desc)
|
||||
|
@ -248,20 +282,30 @@ machine_device_initcall(mpc85xx_cds, mpc85xx_cds_8259_attach);
|
|||
*/
|
||||
static void __init mpc85xx_cds_setup_arch(void)
|
||||
{
|
||||
#ifdef CONFIG_PCI
|
||||
struct device_node *np;
|
||||
#endif
|
||||
int cds_pci_slot;
|
||||
|
||||
if (ppc_md.progress)
|
||||
ppc_md.progress("mpc85xx_cds_setup_arch()", 0);
|
||||
|
||||
cadmus = ioremap(CADMUS_BASE, CADMUS_SIZE);
|
||||
cds_pci_slot = ((cadmus[CM_CSR] >> 6) & 0x3) + 1;
|
||||
np = of_find_compatible_node(NULL, NULL, "fsl,mpc8548cds-fpga");
|
||||
if (!np) {
|
||||
pr_err("Could not find FPGA node.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
cadmus = of_iomap(np, 0);
|
||||
of_node_put(np);
|
||||
if (!cadmus) {
|
||||
pr_err("Fail to map FPGA area.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (ppc_md.progress) {
|
||||
char buf[40];
|
||||
cds_pci_slot = ((in_8(&cadmus->cm_csr) >> 6) & 0x3) + 1;
|
||||
snprintf(buf, 40, "CDS Version = 0x%x in slot %d\n",
|
||||
cadmus[CM_VER], cds_pci_slot);
|
||||
in_8(&cadmus->cm_ver), cds_pci_slot);
|
||||
ppc_md.progress(buf, 0);
|
||||
}
|
||||
|
||||
|
@ -291,7 +335,8 @@ static void mpc85xx_cds_show_cpuinfo(struct seq_file *m)
|
|||
svid = mfspr(SPRN_SVR);
|
||||
|
||||
seq_printf(m, "Vendor\t\t: Freescale Semiconductor\n");
|
||||
seq_printf(m, "Machine\t\t: MPC85xx CDS (0x%x)\n", cadmus[CM_VER]);
|
||||
seq_printf(m, "Machine\t\t: MPC85xx CDS (0x%x)\n",
|
||||
in_8(&cadmus->cm_ver));
|
||||
seq_printf(m, "PVR\t\t: 0x%x\n", pvid);
|
||||
seq_printf(m, "SVR\t\t: 0x%x\n", svid);
|
||||
|
||||
|
@ -322,7 +367,7 @@ define_machine(mpc85xx_cds) {
|
|||
.get_irq = mpic_get_irq,
|
||||
#ifdef CONFIG_PCI
|
||||
.restart = mpc85xx_cds_restart,
|
||||
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
|
||||
.pcibios_fixup_bus = mpc85xx_cds_fixup_bus,
|
||||
#else
|
||||
.restart = fsl_rstcr_restart,
|
||||
#endif
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (C) Freescale Semicondutor, Inc. 2006-2010. All rights reserved.
|
||||
* Copyright (C) 2006-2010, 2012 Freescale Semicondutor, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Author: Andy Fleming <afleming@freescale.com>
|
||||
*
|
||||
|
@ -51,6 +52,7 @@
|
|||
#include <asm/qe_ic.h>
|
||||
#include <asm/mpic.h>
|
||||
#include <asm/swiotlb.h>
|
||||
#include <asm/fsl_guts.h>
|
||||
#include "smp.h"
|
||||
|
||||
#include "mpc85xx.h"
|
||||
|
@ -268,34 +270,27 @@ static void __init mpc85xx_mds_qe_init(void)
|
|||
mpc85xx_mds_reset_ucc_phys();
|
||||
|
||||
if (machine_is(p1021_mds)) {
|
||||
#define MPC85xx_PMUXCR_OFFSET 0x60
|
||||
#define MPC85xx_PMUXCR_QE0 0x00008000
|
||||
#define MPC85xx_PMUXCR_QE3 0x00001000
|
||||
#define MPC85xx_PMUXCR_QE9 0x00000040
|
||||
#define MPC85xx_PMUXCR_QE12 0x00000008
|
||||
static __be32 __iomem *pmuxcr;
|
||||
|
||||
struct ccsr_guts_85xx __iomem *guts;
|
||||
|
||||
np = of_find_node_by_name(NULL, "global-utilities");
|
||||
|
||||
if (np) {
|
||||
pmuxcr = of_iomap(np, 0) + MPC85xx_PMUXCR_OFFSET;
|
||||
|
||||
if (!pmuxcr)
|
||||
printk(KERN_EMERG "Error: Alternate function"
|
||||
" signal multiplex control register not"
|
||||
" mapped!\n");
|
||||
else
|
||||
guts = of_iomap(np, 0);
|
||||
if (!guts)
|
||||
pr_err("mpc85xx-rdb: could not map global utilities register\n");
|
||||
else{
|
||||
/* P1021 has pins muxed for QE and other functions. To
|
||||
* enable QE UEC mode, we need to set bit QE0 for UCC1
|
||||
* in Eth mode, QE0 and QE3 for UCC5 in Eth mode, QE9
|
||||
* and QE12 for QE MII management signals in PMUXCR
|
||||
* register.
|
||||
*/
|
||||
setbits32(pmuxcr, MPC85xx_PMUXCR_QE0 |
|
||||
MPC85xx_PMUXCR_QE3 |
|
||||
MPC85xx_PMUXCR_QE9 |
|
||||
MPC85xx_PMUXCR_QE12);
|
||||
|
||||
setbits32(&guts->pmuxcr, MPC85xx_PMUXCR_QE(0) |
|
||||
MPC85xx_PMUXCR_QE(3) |
|
||||
MPC85xx_PMUXCR_QE(9) |
|
||||
MPC85xx_PMUXCR_QE(12));
|
||||
iounmap(guts);
|
||||
}
|
||||
of_node_put(np);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* MPC85xx RDB Board Setup
|
||||
*
|
||||
* Copyright 2009 Freescale Semiconductor Inc.
|
||||
* Copyright 2009,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
|
||||
|
@ -26,6 +26,9 @@
|
|||
#include <asm/prom.h>
|
||||
#include <asm/udbg.h>
|
||||
#include <asm/mpic.h>
|
||||
#include <asm/qe.h>
|
||||
#include <asm/qe_ic.h>
|
||||
#include <asm/fsl_guts.h>
|
||||
|
||||
#include <sysdev/fsl_soc.h>
|
||||
#include <sysdev/fsl_pci.h>
|
||||
|
@ -47,6 +50,10 @@ void __init mpc85xx_rdb_pic_init(void)
|
|||
struct mpic *mpic;
|
||||
unsigned long root = of_get_flat_dt_root();
|
||||
|
||||
#ifdef CONFIG_QUICC_ENGINE
|
||||
struct device_node *np;
|
||||
#endif
|
||||
|
||||
if (of_flat_dt_is_compatible(root, "fsl,MPC85XXRDB-CAMP")) {
|
||||
mpic = mpic_alloc(NULL, 0, MPIC_NO_RESET |
|
||||
MPIC_BIG_ENDIAN |
|
||||
|
@ -61,6 +68,18 @@ void __init mpc85xx_rdb_pic_init(void)
|
|||
|
||||
BUG_ON(mpic == NULL);
|
||||
mpic_init(mpic);
|
||||
|
||||
#ifdef CONFIG_QUICC_ENGINE
|
||||
np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
|
||||
if (np) {
|
||||
qe_ic_init(np, 0, qe_ic_cascade_low_mpic,
|
||||
qe_ic_cascade_high_mpic);
|
||||
of_node_put(np);
|
||||
|
||||
} else
|
||||
pr_err("%s: Could not find qe-ic node\n", __func__);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -68,7 +87,7 @@ void __init mpc85xx_rdb_pic_init(void)
|
|||
*/
|
||||
static void __init mpc85xx_rdb_setup_arch(void)
|
||||
{
|
||||
#ifdef CONFIG_PCI
|
||||
#if defined(CONFIG_PCI) || defined(CONFIG_QUICC_ENGINE)
|
||||
struct device_node *np;
|
||||
#endif
|
||||
|
||||
|
@ -84,11 +103,73 @@ static void __init mpc85xx_rdb_setup_arch(void)
|
|||
#endif
|
||||
|
||||
mpc85xx_smp_init();
|
||||
|
||||
#ifdef CONFIG_QUICC_ENGINE
|
||||
np = of_find_compatible_node(NULL, NULL, "fsl,qe");
|
||||
if (!np) {
|
||||
pr_err("%s: Could not find Quicc Engine node\n", __func__);
|
||||
goto qe_fail;
|
||||
}
|
||||
|
||||
qe_reset();
|
||||
of_node_put(np);
|
||||
|
||||
np = of_find_node_by_name(NULL, "par_io");
|
||||
if (np) {
|
||||
struct device_node *ucc;
|
||||
|
||||
par_io_init(np);
|
||||
of_node_put(np);
|
||||
|
||||
for_each_node_by_name(ucc, "ucc")
|
||||
par_io_of_config(ucc);
|
||||
|
||||
}
|
||||
#if defined(CONFIG_UCC_GETH) || defined(CONFIG_SERIAL_QE)
|
||||
if (machine_is(p1025_rdb)) {
|
||||
|
||||
struct ccsr_guts_85xx __iomem *guts;
|
||||
|
||||
np = of_find_node_by_name(NULL, "global-utilities");
|
||||
if (np) {
|
||||
guts = of_iomap(np, 0);
|
||||
if (!guts) {
|
||||
|
||||
pr_err("mpc85xx-rdb: could not map global utilities register\n");
|
||||
|
||||
} else {
|
||||
/* P1025 has pins muxed for QE and other functions. To
|
||||
* enable QE UEC mode, we need to set bit QE0 for UCC1
|
||||
* in Eth mode, QE0 and QE3 for UCC5 in Eth mode, QE9
|
||||
* and QE12 for QE MII management singals in PMUXCR
|
||||
* register.
|
||||
*/
|
||||
setbits32(&guts->pmuxcr, MPC85xx_PMUXCR_QE(0) |
|
||||
MPC85xx_PMUXCR_QE(3) |
|
||||
MPC85xx_PMUXCR_QE(9) |
|
||||
MPC85xx_PMUXCR_QE(12));
|
||||
iounmap(guts);
|
||||
}
|
||||
of_node_put(np);
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
qe_fail:
|
||||
#endif /* CONFIG_QUICC_ENGINE */
|
||||
|
||||
printk(KERN_INFO "MPC85xx RDB board from Freescale Semiconductor\n");
|
||||
}
|
||||
|
||||
machine_device_initcall(p2020_rdb, mpc85xx_common_publish_devices);
|
||||
machine_device_initcall(p2020_rdb_pc, mpc85xx_common_publish_devices);
|
||||
machine_device_initcall(p1020_mbg_pc, mpc85xx_common_publish_devices);
|
||||
machine_device_initcall(p1020_rdb, mpc85xx_common_publish_devices);
|
||||
machine_device_initcall(p1020_rdb_pc, mpc85xx_common_publish_devices);
|
||||
machine_device_initcall(p1020_utm_pc, mpc85xx_common_publish_devices);
|
||||
machine_device_initcall(p1021_rdb_pc, mpc85xx_common_publish_devices);
|
||||
machine_device_initcall(p1025_rdb, mpc85xx_common_publish_devices);
|
||||
|
||||
/*
|
||||
* Called very early, device-tree isn't unflattened
|
||||
|
@ -111,6 +192,52 @@ static int __init p1020_rdb_probe(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int __init p1020_rdb_pc_probe(void)
|
||||
{
|
||||
unsigned long root = of_get_flat_dt_root();
|
||||
|
||||
return of_flat_dt_is_compatible(root, "fsl,P1020RDB-PC");
|
||||
}
|
||||
|
||||
static int __init p1021_rdb_pc_probe(void)
|
||||
{
|
||||
unsigned long root = of_get_flat_dt_root();
|
||||
|
||||
if (of_flat_dt_is_compatible(root, "fsl,P1021RDB-PC"))
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __init p2020_rdb_pc_probe(void)
|
||||
{
|
||||
unsigned long root = of_get_flat_dt_root();
|
||||
|
||||
if (of_flat_dt_is_compatible(root, "fsl,P2020RDB-PC"))
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __init p1025_rdb_probe(void)
|
||||
{
|
||||
unsigned long root = of_get_flat_dt_root();
|
||||
|
||||
return of_flat_dt_is_compatible(root, "fsl,P1025RDB");
|
||||
}
|
||||
|
||||
static int __init p1020_mbg_pc_probe(void)
|
||||
{
|
||||
unsigned long root = of_get_flat_dt_root();
|
||||
|
||||
return of_flat_dt_is_compatible(root, "fsl,P1020MBG-PC");
|
||||
}
|
||||
|
||||
static int __init p1020_utm_pc_probe(void)
|
||||
{
|
||||
unsigned long root = of_get_flat_dt_root();
|
||||
|
||||
return of_flat_dt_is_compatible(root, "fsl,P1020UTM-PC");
|
||||
}
|
||||
|
||||
define_machine(p2020_rdb) {
|
||||
.name = "P2020 RDB",
|
||||
.probe = p2020_rdb_probe,
|
||||
|
@ -138,3 +265,87 @@ define_machine(p1020_rdb) {
|
|||
.calibrate_decr = generic_calibrate_decr,
|
||||
.progress = udbg_progress,
|
||||
};
|
||||
|
||||
define_machine(p1021_rdb_pc) {
|
||||
.name = "P1021 RDB-PC",
|
||||
.probe = p1021_rdb_pc_probe,
|
||||
.setup_arch = mpc85xx_rdb_setup_arch,
|
||||
.init_IRQ = mpc85xx_rdb_pic_init,
|
||||
#ifdef CONFIG_PCI
|
||||
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
|
||||
#endif
|
||||
.get_irq = mpic_get_irq,
|
||||
.restart = fsl_rstcr_restart,
|
||||
.calibrate_decr = generic_calibrate_decr,
|
||||
.progress = udbg_progress,
|
||||
};
|
||||
|
||||
define_machine(p2020_rdb_pc) {
|
||||
.name = "P2020RDB-PC",
|
||||
.probe = p2020_rdb_pc_probe,
|
||||
.setup_arch = mpc85xx_rdb_setup_arch,
|
||||
.init_IRQ = mpc85xx_rdb_pic_init,
|
||||
#ifdef CONFIG_PCI
|
||||
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
|
||||
#endif
|
||||
.get_irq = mpic_get_irq,
|
||||
.restart = fsl_rstcr_restart,
|
||||
.calibrate_decr = generic_calibrate_decr,
|
||||
.progress = udbg_progress,
|
||||
};
|
||||
|
||||
define_machine(p1025_rdb) {
|
||||
.name = "P1025 RDB",
|
||||
.probe = p1025_rdb_probe,
|
||||
.setup_arch = mpc85xx_rdb_setup_arch,
|
||||
.init_IRQ = mpc85xx_rdb_pic_init,
|
||||
#ifdef CONFIG_PCI
|
||||
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
|
||||
#endif
|
||||
.get_irq = mpic_get_irq,
|
||||
.restart = fsl_rstcr_restart,
|
||||
.calibrate_decr = generic_calibrate_decr,
|
||||
.progress = udbg_progress,
|
||||
};
|
||||
|
||||
define_machine(p1020_mbg_pc) {
|
||||
.name = "P1020 MBG-PC",
|
||||
.probe = p1020_mbg_pc_probe,
|
||||
.setup_arch = mpc85xx_rdb_setup_arch,
|
||||
.init_IRQ = mpc85xx_rdb_pic_init,
|
||||
#ifdef CONFIG_PCI
|
||||
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
|
||||
#endif
|
||||
.get_irq = mpic_get_irq,
|
||||
.restart = fsl_rstcr_restart,
|
||||
.calibrate_decr = generic_calibrate_decr,
|
||||
.progress = udbg_progress,
|
||||
};
|
||||
|
||||
define_machine(p1020_utm_pc) {
|
||||
.name = "P1020 UTM-PC",
|
||||
.probe = p1020_utm_pc_probe,
|
||||
.setup_arch = mpc85xx_rdb_setup_arch,
|
||||
.init_IRQ = mpc85xx_rdb_pic_init,
|
||||
#ifdef CONFIG_PCI
|
||||
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
|
||||
#endif
|
||||
.get_irq = mpic_get_irq,
|
||||
.restart = fsl_rstcr_restart,
|
||||
.calibrate_decr = generic_calibrate_decr,
|
||||
.progress = udbg_progress,
|
||||
};
|
||||
|
||||
define_machine(p1020_rdb_pc) {
|
||||
.name = "P1020RDB-PC",
|
||||
.probe = p1020_rdb_pc_probe,
|
||||
.setup_arch = mpc85xx_rdb_setup_arch,
|
||||
.init_IRQ = mpc85xx_rdb_pic_init,
|
||||
#ifdef CONFIG_PCI
|
||||
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
|
||||
#endif
|
||||
.get_irq = mpic_get_irq,
|
||||
.restart = fsl_rstcr_restart,
|
||||
.calibrate_decr = generic_calibrate_decr,
|
||||
.progress = udbg_progress,
|
||||
};
|
||||
|
|
|
@ -33,6 +33,10 @@
|
|||
|
||||
#if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE)
|
||||
|
||||
#define PMUXCR_ELBCDIU_MASK 0xc0000000
|
||||
#define PMUXCR_ELBCDIU_NOR16 0x80000000
|
||||
#define PMUXCR_ELBCDIU_DIU 0x40000000
|
||||
|
||||
/*
|
||||
* Board-specific initialization of the DIU. This code should probably be
|
||||
* executed when the DIU is opened, rather than in arch code, but the DIU
|
||||
|
@ -50,11 +54,22 @@
|
|||
#define CLKDVDR_PXCLK_MASK 0x00FF0000
|
||||
|
||||
/* Some ngPIXIS register definitions */
|
||||
#define PX_CTL 3
|
||||
#define PX_BRDCFG0 8
|
||||
#define PX_BRDCFG1 9
|
||||
|
||||
#define PX_BRDCFG0_ELBC_SPI_MASK 0xc0
|
||||
#define PX_BRDCFG0_ELBC_SPI_ELBC 0x00
|
||||
#define PX_BRDCFG0_ELBC_SPI_NULL 0xc0
|
||||
#define PX_BRDCFG0_ELBC_DIU 0x02
|
||||
|
||||
#define PX_BRDCFG1_DVIEN 0x80
|
||||
#define PX_BRDCFG1_DFPEN 0x40
|
||||
#define PX_BRDCFG1_BACKLIGHT 0x20
|
||||
#define PX_BRDCFG1_DDCEN 0x10
|
||||
|
||||
#define PX_CTL_ALTACC 0x80
|
||||
|
||||
/*
|
||||
* DIU Area Descriptor
|
||||
*
|
||||
|
@ -133,44 +148,117 @@ static void p1022ds_set_gamma_table(enum fsl_diu_monitor_port port,
|
|||
*/
|
||||
static void p1022ds_set_monitor_port(enum fsl_diu_monitor_port port)
|
||||
{
|
||||
struct device_node *np;
|
||||
void __iomem *pixis;
|
||||
u8 __iomem *brdcfg1;
|
||||
struct device_node *guts_node;
|
||||
struct device_node *indirect_node = NULL;
|
||||
struct ccsr_guts_85xx __iomem *guts;
|
||||
u8 __iomem *lbc_lcs0_ba = NULL;
|
||||
u8 __iomem *lbc_lcs1_ba = NULL;
|
||||
u8 b;
|
||||
|
||||
np = of_find_compatible_node(NULL, NULL, "fsl,p1022ds-fpga");
|
||||
if (!np)
|
||||
/* older device trees used "fsl,p1022ds-pixis" */
|
||||
np = of_find_compatible_node(NULL, NULL, "fsl,p1022ds-pixis");
|
||||
if (!np) {
|
||||
pr_err("p1022ds: missing ngPIXIS node\n");
|
||||
/* Map the global utilities registers. */
|
||||
guts_node = of_find_compatible_node(NULL, NULL, "fsl,p1022-guts");
|
||||
if (!guts_node) {
|
||||
pr_err("p1022ds: missing global utilties device node\n");
|
||||
return;
|
||||
}
|
||||
|
||||
pixis = of_iomap(np, 0);
|
||||
if (!pixis) {
|
||||
pr_err("p1022ds: could not map ngPIXIS registers\n");
|
||||
return;
|
||||
guts = of_iomap(guts_node, 0);
|
||||
if (!guts) {
|
||||
pr_err("p1022ds: could not map global utilties device\n");
|
||||
goto exit;
|
||||
}
|
||||
brdcfg1 = pixis + 9; /* BRDCFG1 is at offset 9 in the ngPIXIS */
|
||||
|
||||
indirect_node = of_find_compatible_node(NULL, NULL,
|
||||
"fsl,p1022ds-indirect-pixis");
|
||||
if (!indirect_node) {
|
||||
pr_err("p1022ds: missing pixis indirect mode node\n");
|
||||
goto exit;
|
||||
}
|
||||
|
||||
lbc_lcs0_ba = of_iomap(indirect_node, 0);
|
||||
if (!lbc_lcs0_ba) {
|
||||
pr_err("p1022ds: could not map localbus chip select 0\n");
|
||||
goto exit;
|
||||
}
|
||||
|
||||
lbc_lcs1_ba = of_iomap(indirect_node, 1);
|
||||
if (!lbc_lcs1_ba) {
|
||||
pr_err("p1022ds: could not map localbus chip select 1\n");
|
||||
goto exit;
|
||||
}
|
||||
|
||||
/* Make sure we're in indirect mode first. */
|
||||
if ((in_be32(&guts->pmuxcr) & PMUXCR_ELBCDIU_MASK) !=
|
||||
PMUXCR_ELBCDIU_DIU) {
|
||||
struct device_node *pixis_node;
|
||||
void __iomem *pixis;
|
||||
|
||||
pixis_node =
|
||||
of_find_compatible_node(NULL, NULL, "fsl,p1022ds-fpga");
|
||||
if (!pixis_node) {
|
||||
pr_err("p1022ds: missing pixis node\n");
|
||||
goto exit;
|
||||
}
|
||||
|
||||
pixis = of_iomap(pixis_node, 0);
|
||||
of_node_put(pixis_node);
|
||||
if (!pixis) {
|
||||
pr_err("p1022ds: could not map pixis registers\n");
|
||||
goto exit;
|
||||
}
|
||||
|
||||
/* Enable indirect PIXIS mode. */
|
||||
setbits8(pixis + PX_CTL, PX_CTL_ALTACC);
|
||||
iounmap(pixis);
|
||||
|
||||
/* Switch the board mux to the DIU */
|
||||
out_8(lbc_lcs0_ba, PX_BRDCFG0); /* BRDCFG0 */
|
||||
b = in_8(lbc_lcs1_ba);
|
||||
b |= PX_BRDCFG0_ELBC_DIU;
|
||||
out_8(lbc_lcs1_ba, b);
|
||||
|
||||
/* Set the chip mux to DIU mode. */
|
||||
clrsetbits_be32(&guts->pmuxcr, PMUXCR_ELBCDIU_MASK,
|
||||
PMUXCR_ELBCDIU_DIU);
|
||||
in_be32(&guts->pmuxcr);
|
||||
}
|
||||
|
||||
|
||||
switch (port) {
|
||||
case FSL_DIU_PORT_DVI:
|
||||
printk(KERN_INFO "%s:%u\n", __func__, __LINE__);
|
||||
/* Enable the DVI port, disable the DFP and the backlight */
|
||||
clrsetbits_8(brdcfg1, PX_BRDCFG1_DFPEN | PX_BRDCFG1_BACKLIGHT,
|
||||
PX_BRDCFG1_DVIEN);
|
||||
out_8(lbc_lcs0_ba, PX_BRDCFG1);
|
||||
b = in_8(lbc_lcs1_ba);
|
||||
b &= ~(PX_BRDCFG1_DFPEN | PX_BRDCFG1_BACKLIGHT);
|
||||
b |= PX_BRDCFG1_DVIEN;
|
||||
out_8(lbc_lcs1_ba, b);
|
||||
break;
|
||||
case FSL_DIU_PORT_LVDS:
|
||||
printk(KERN_INFO "%s:%u\n", __func__, __LINE__);
|
||||
/*
|
||||
* LVDS also needs backlight enabled, otherwise the display
|
||||
* will be blank.
|
||||
*/
|
||||
/* Enable the DFP port, disable the DVI and the backlight */
|
||||
clrsetbits_8(brdcfg1, PX_BRDCFG1_DVIEN | PX_BRDCFG1_BACKLIGHT,
|
||||
PX_BRDCFG1_DFPEN);
|
||||
out_8(lbc_lcs0_ba, PX_BRDCFG1);
|
||||
b = in_8(lbc_lcs1_ba);
|
||||
b &= ~PX_BRDCFG1_DVIEN;
|
||||
b |= PX_BRDCFG1_DFPEN | PX_BRDCFG1_BACKLIGHT;
|
||||
out_8(lbc_lcs1_ba, b);
|
||||
break;
|
||||
default:
|
||||
pr_err("p1022ds: unsupported monitor port %i\n", port);
|
||||
}
|
||||
|
||||
iounmap(pixis);
|
||||
exit:
|
||||
if (lbc_lcs1_ba)
|
||||
iounmap(lbc_lcs1_ba);
|
||||
if (lbc_lcs0_ba)
|
||||
iounmap(lbc_lcs0_ba);
|
||||
if (guts)
|
||||
iounmap(guts);
|
||||
|
||||
of_node_put(indirect_node);
|
||||
of_node_put(guts_node);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -249,6 +337,49 @@ void __init p1022_ds_pic_init(void)
|
|||
mpic_init(mpic);
|
||||
}
|
||||
|
||||
#if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE)
|
||||
|
||||
/*
|
||||
* Disables a node in the device tree.
|
||||
*
|
||||
* This function is called before kmalloc() is available, so the 'new' object
|
||||
* should be allocated in the global area. The easiest way is to do that is
|
||||
* to allocate one static local variable for each call to this function.
|
||||
*/
|
||||
static void __init disable_one_node(struct device_node *np, struct property *new)
|
||||
{
|
||||
struct property *old;
|
||||
|
||||
old = of_find_property(np, new->name, NULL);
|
||||
if (old)
|
||||
prom_update_property(np, new, old);
|
||||
else
|
||||
prom_add_property(np, new);
|
||||
}
|
||||
|
||||
/* TRUE if there is a "video=fslfb" command-line parameter. */
|
||||
static bool fslfb;
|
||||
|
||||
/*
|
||||
* Search for a "video=fslfb" command-line parameter, and set 'fslfb' to
|
||||
* true if we find it.
|
||||
*
|
||||
* We need to use early_param() instead of __setup() because the normal
|
||||
* __setup() gets called to late. However, early_param() gets called very
|
||||
* early, before the device tree is unflattened, so all we can do now is set a
|
||||
* global variable. Later on, p1022_ds_setup_arch() will use that variable
|
||||
* to determine if we need to update the device tree.
|
||||
*/
|
||||
static int __init early_video_setup(char *options)
|
||||
{
|
||||
fslfb = (strncmp(options, "fslfb:", 6) == 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
early_param("video", early_video_setup);
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Setup the architecture
|
||||
*/
|
||||
|
@ -286,6 +417,34 @@ static void __init p1022_ds_setup_arch(void)
|
|||
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;
|
||||
|
||||
/*
|
||||
* Disable the NOR flash node if there is video=fslfb... command-line
|
||||
* parameter. When the DIU is active, NOR flash is unavailable, so we
|
||||
* have to disable the node before the MTD driver loads.
|
||||
*/
|
||||
if (fslfb) {
|
||||
struct device_node *np =
|
||||
of_find_compatible_node(NULL, NULL, "fsl,p1022-elbc");
|
||||
|
||||
if (np) {
|
||||
np = of_find_compatible_node(np, NULL, "cfi-flash");
|
||||
if (np) {
|
||||
static struct property nor_status = {
|
||||
.name = "status",
|
||||
.value = "disabled",
|
||||
.length = sizeof("disabled"),
|
||||
};
|
||||
|
||||
pr_info("p1022ds: disabling %s node",
|
||||
np->full_name);
|
||||
disable_one_node(np, &nor_status);
|
||||
of_node_put(np);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
mpc85xx_smp_init();
|
||||
|
|
|
@ -39,6 +39,7 @@ config GEF_PPC9A
|
|||
select MMIO_NVRAM
|
||||
select GENERIC_GPIO
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GE_FPGA
|
||||
help
|
||||
This option enables support for the GE PPC9A.
|
||||
|
||||
|
@ -48,6 +49,7 @@ config GEF_SBC310
|
|||
select MMIO_NVRAM
|
||||
select GENERIC_GPIO
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GE_FPGA
|
||||
help
|
||||
This option enables support for the GE SBC310.
|
||||
|
||||
|
@ -57,6 +59,7 @@ config GEF_SBC610
|
|||
select MMIO_NVRAM
|
||||
select GENERIC_GPIO
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select GE_FPGA
|
||||
select HAS_RAPIDIO
|
||||
help
|
||||
This option enables support for the GE SBC610.
|
||||
|
|
|
@ -7,7 +7,6 @@ obj-$(CONFIG_SMP) += mpc86xx_smp.o
|
|||
obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o
|
||||
obj-$(CONFIG_SBC8641D) += sbc8641d.o
|
||||
obj-$(CONFIG_MPC8610_HPCD) += mpc8610_hpcd.o
|
||||
gef-gpio-$(CONFIG_GPIOLIB) += gef_gpio.o
|
||||
obj-$(CONFIG_GEF_SBC610) += gef_sbc610.o gef_pic.o $(gef-gpio-y)
|
||||
obj-$(CONFIG_GEF_SBC310) += gef_sbc310.o gef_pic.o $(gef-gpio-y)
|
||||
obj-$(CONFIG_GEF_PPC9A) += gef_ppc9a.o gef_pic.o $(gef-gpio-y)
|
||||
obj-$(CONFIG_GEF_SBC610) += gef_sbc610.o
|
||||
obj-$(CONFIG_GEF_SBC310) += gef_sbc310.o
|
||||
obj-$(CONFIG_GEF_PPC9A) += gef_ppc9a.o
|
||||
|
|
|
@ -37,9 +37,9 @@
|
|||
|
||||
#include <sysdev/fsl_pci.h>
|
||||
#include <sysdev/fsl_soc.h>
|
||||
#include <sysdev/ge/ge_pic.h>
|
||||
|
||||
#include "mpc86xx.h"
|
||||
#include "gef_pic.h"
|
||||
|
||||
#undef DEBUG
|
||||
|
||||
|
|
|
@ -37,9 +37,9 @@
|
|||
|
||||
#include <sysdev/fsl_pci.h>
|
||||
#include <sysdev/fsl_soc.h>
|
||||
#include <sysdev/ge/ge_pic.h>
|
||||
|
||||
#include "mpc86xx.h"
|
||||
#include "gef_pic.h"
|
||||
|
||||
#undef DEBUG
|
||||
|
||||
|
|
|
@ -37,9 +37,9 @@
|
|||
|
||||
#include <sysdev/fsl_pci.h>
|
||||
#include <sysdev/fsl_soc.h>
|
||||
#include <sysdev/ge/ge_pic.h>
|
||||
|
||||
#include "mpc86xx.h"
|
||||
#include "gef_pic.h"
|
||||
|
||||
#undef DEBUG
|
||||
|
||||
|
|
|
@ -86,6 +86,14 @@ config MPIC_WEIRD
|
|||
bool
|
||||
default n
|
||||
|
||||
config MPIC_MSGR
|
||||
bool "MPIC message register support"
|
||||
depends on MPIC
|
||||
default n
|
||||
help
|
||||
Enables support for the MPIC message registers. These
|
||||
registers are used for inter-processor communication.
|
||||
|
||||
config PPC_I8259
|
||||
bool
|
||||
default n
|
||||
|
|
|
@ -29,3 +29,7 @@ config SCOM_DEBUGFS
|
|||
bool "Expose SCOM controllers via debugfs"
|
||||
depends on PPC_SCOM
|
||||
default n
|
||||
|
||||
config GE_FPGA
|
||||
bool
|
||||
default n
|
||||
|
|
|
@ -4,6 +4,8 @@ ccflags-$(CONFIG_PPC64) := -mno-minimal-toc
|
|||
|
||||
mpic-msi-obj-$(CONFIG_PCI_MSI) += mpic_msi.o mpic_u3msi.o mpic_pasemi_msi.o
|
||||
obj-$(CONFIG_MPIC) += mpic.o $(mpic-msi-obj-y)
|
||||
mpic-msgr-obj-$(CONFIG_MPIC_MSGR) += mpic_msgr.o
|
||||
obj-$(CONFIG_MPIC) += mpic.o $(mpic-msi-obj-y) $(mpic-msgr-obj-y)
|
||||
obj-$(CONFIG_PPC_EPAPR_HV_PIC) += ehv_pic.o
|
||||
fsl-msi-obj-$(CONFIG_PCI_MSI) += fsl_msi.o
|
||||
obj-$(CONFIG_PPC_MSI_BITMAP) += msi_bitmap.o
|
||||
|
@ -65,3 +67,5 @@ obj-$(CONFIG_PPC_SCOM) += scom.o
|
|||
subdir-ccflags-$(CONFIG_PPC_WERROR) := -Werror
|
||||
|
||||
obj-$(CONFIG_PPC_XICS) += xics/
|
||||
|
||||
obj-$(CONFIG_GE_FPGA) += ge/
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/of_platform.h>
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
|
@ -200,6 +201,9 @@ static struct of_device_id mpc85xx_l2ctlr_of_match[] = {
|
|||
{
|
||||
.compatible = "fsl,p1022-l2-cache-controller",
|
||||
},
|
||||
{
|
||||
.compatible = "fsl,mpc8548-l2-cache-controller",
|
||||
},
|
||||
{},
|
||||
};
|
||||
|
||||
|
|
|
@ -410,6 +410,7 @@ static int __devinit fsl_of_msi_probe(struct platform_device *dev)
|
|||
|
||||
msi->msi_regs = ioremap(res.start, resource_size(&res));
|
||||
if (!msi->msi_regs) {
|
||||
err = -ENOMEM;
|
||||
dev_err(&dev->dev, "could not map node %s\n",
|
||||
dev->dev.of_node->full_name);
|
||||
goto error_out;
|
||||
|
|
|
@ -66,8 +66,8 @@
|
|||
" li %0,%3\n" \
|
||||
" b 2b\n" \
|
||||
".section __ex_table,\"a\"\n" \
|
||||
" .align 2\n" \
|
||||
" .long 1b,3b\n" \
|
||||
PPC_LONG_ALIGN "\n" \
|
||||
PPC_LONG "1b,3b\n" \
|
||||
".text" \
|
||||
: "=r" (err), "=r" (x) \
|
||||
: "b" (addr), "i" (-EFAULT), "0" (err))
|
||||
|
|
|
@ -100,14 +100,8 @@
|
|||
#define DOORBELL_DSR_TE 0x00000080
|
||||
#define DOORBELL_DSR_QFI 0x00000010
|
||||
#define DOORBELL_DSR_DIQI 0x00000001
|
||||
#define DOORBELL_TID_OFFSET 0x02
|
||||
#define DOORBELL_SID_OFFSET 0x04
|
||||
#define DOORBELL_INFO_OFFSET 0x06
|
||||
|
||||
#define DOORBELL_MESSAGE_SIZE 0x08
|
||||
#define DBELL_SID(x) (*(u16 *)(x + DOORBELL_SID_OFFSET))
|
||||
#define DBELL_TID(x) (*(u16 *)(x + DOORBELL_TID_OFFSET))
|
||||
#define DBELL_INF(x) (*(u16 *)(x + DOORBELL_INFO_OFFSET))
|
||||
|
||||
struct rio_msg_regs {
|
||||
u32 omr;
|
||||
|
@ -193,6 +187,13 @@ struct fsl_rmu {
|
|||
int rxirq;
|
||||
};
|
||||
|
||||
struct rio_dbell_msg {
|
||||
u16 pad1;
|
||||
u16 tid;
|
||||
u16 sid;
|
||||
u16 info;
|
||||
};
|
||||
|
||||
/**
|
||||
* fsl_rio_tx_handler - MPC85xx outbound message interrupt handler
|
||||
* @irq: Linux interrupt number
|
||||
|
@ -311,8 +312,8 @@ fsl_rio_dbell_handler(int irq, void *dev_instance)
|
|||
|
||||
/* XXX Need to check/dispatch until queue empty */
|
||||
if (dsr & DOORBELL_DSR_DIQI) {
|
||||
u32 dmsg =
|
||||
(u32) fsl_dbell->dbell_ring.virt +
|
||||
struct rio_dbell_msg *dmsg =
|
||||
fsl_dbell->dbell_ring.virt +
|
||||
(in_be32(&fsl_dbell->dbell_regs->dqdpar) & 0xfff);
|
||||
struct rio_dbell *dbell;
|
||||
int found = 0;
|
||||
|
@ -320,25 +321,25 @@ fsl_rio_dbell_handler(int irq, void *dev_instance)
|
|||
pr_debug
|
||||
("RIO: processing doorbell,"
|
||||
" sid %2.2x tid %2.2x info %4.4x\n",
|
||||
DBELL_SID(dmsg), DBELL_TID(dmsg), DBELL_INF(dmsg));
|
||||
dmsg->sid, dmsg->tid, dmsg->info);
|
||||
|
||||
for (i = 0; i < MAX_PORT_NUM; i++) {
|
||||
if (fsl_dbell->mport[i]) {
|
||||
list_for_each_entry(dbell,
|
||||
&fsl_dbell->mport[i]->dbells, node) {
|
||||
if ((dbell->res->start
|
||||
<= DBELL_INF(dmsg))
|
||||
<= dmsg->info)
|
||||
&& (dbell->res->end
|
||||
>= DBELL_INF(dmsg))) {
|
||||
>= dmsg->info)) {
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (found && dbell->dinb) {
|
||||
dbell->dinb(fsl_dbell->mport[i],
|
||||
dbell->dev_id, DBELL_SID(dmsg),
|
||||
DBELL_TID(dmsg),
|
||||
DBELL_INF(dmsg));
|
||||
dbell->dev_id, dmsg->sid,
|
||||
dmsg->tid,
|
||||
dmsg->info);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -348,8 +349,8 @@ fsl_rio_dbell_handler(int irq, void *dev_instance)
|
|||
pr_debug
|
||||
("RIO: spurious doorbell,"
|
||||
" sid %2.2x tid %2.2x info %4.4x\n",
|
||||
DBELL_SID(dmsg), DBELL_TID(dmsg),
|
||||
DBELL_INF(dmsg));
|
||||
dmsg->sid, dmsg->tid,
|
||||
dmsg->info);
|
||||
}
|
||||
setbits32(&fsl_dbell->dbell_regs->dmr, DOORBELL_DMR_DI);
|
||||
out_be32(&fsl_dbell->dbell_regs->dsr, DOORBELL_DSR_DIQI);
|
||||
|
@ -657,7 +658,7 @@ fsl_add_outb_message(struct rio_mport *mport, struct rio_dev *rdev, int mbox,
|
|||
int ret = 0;
|
||||
|
||||
pr_debug("RIO: fsl_add_outb_message(): destid %4.4x mbox %d buffer " \
|
||||
"%8.8x len %8.8x\n", rdev->destid, mbox, (int)buffer, len);
|
||||
"%p len %8.8zx\n", rdev->destid, mbox, buffer, len);
|
||||
if ((len < 8) || (len > RIO_MAX_MSG_SIZE)) {
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
|
@ -972,7 +973,8 @@ int fsl_add_inb_buffer(struct rio_mport *mport, int mbox, void *buf)
|
|||
void *fsl_get_inb_message(struct rio_mport *mport, int mbox)
|
||||
{
|
||||
struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
|
||||
u32 phys_buf, virt_buf;
|
||||
u32 phys_buf;
|
||||
void *virt_buf;
|
||||
void *buf = NULL;
|
||||
int buf_idx;
|
||||
|
||||
|
@ -982,7 +984,7 @@ void *fsl_get_inb_message(struct rio_mport *mport, int mbox)
|
|||
if (phys_buf == in_be32(&rmu->msg_regs->ifqepar))
|
||||
goto out2;
|
||||
|
||||
virt_buf = (u32) rmu->msg_rx_ring.virt + (phys_buf
|
||||
virt_buf = rmu->msg_rx_ring.virt + (phys_buf
|
||||
- rmu->msg_rx_ring.phys);
|
||||
buf_idx = (phys_buf - rmu->msg_rx_ring.phys) / RIO_MAX_MSG_SIZE;
|
||||
buf = rmu->msg_rx_ring.virt_buffer[buf_idx];
|
||||
|
@ -994,7 +996,7 @@ void *fsl_get_inb_message(struct rio_mport *mport, int mbox)
|
|||
}
|
||||
|
||||
/* Copy max message size, caller is expected to allocate that big */
|
||||
memcpy(buf, (void *)virt_buf, RIO_MAX_MSG_SIZE);
|
||||
memcpy(buf, virt_buf, RIO_MAX_MSG_SIZE);
|
||||
|
||||
/* Clear the available buffer */
|
||||
rmu->msg_rx_ring.virt_buffer[buf_idx] = NULL;
|
||||
|
|
1
arch/powerpc/sysdev/ge/Makefile
Normal file
1
arch/powerpc/sysdev/ge/Makefile
Normal file
|
@ -0,0 +1 @@
|
|||
obj-$(CONFIG_GE_FPGA) += ge_pic.o
|
|
@ -22,7 +22,7 @@
|
|||
#include <asm/prom.h>
|
||||
#include <asm/irq.h>
|
||||
|
||||
#include "gef_pic.h"
|
||||
#include "ge_pic.h"
|
||||
|
||||
#define DEBUG
|
||||
#undef DEBUG
|
282
arch/powerpc/sysdev/mpic_msgr.c
Normal file
282
arch/powerpc/sysdev/mpic_msgr.c
Normal file
|
@ -0,0 +1,282 @@
|
|||
/*
|
||||
* Copyright 2011-2012, Meador Inge, Mentor Graphics Corporation.
|
||||
*
|
||||
* Some ideas based on un-pushed work done by Vivek Mahajan, Jason Jin, and
|
||||
* Mingkai Hu from 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; version 2 of the
|
||||
* License.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/list.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/errno.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/hw_irq.h>
|
||||
#include <asm/ppc-pci.h>
|
||||
#include <asm/mpic_msgr.h>
|
||||
|
||||
#define MPIC_MSGR_REGISTERS_PER_BLOCK 4
|
||||
#define MPIC_MSGR_STRIDE 0x10
|
||||
#define MPIC_MSGR_MER_OFFSET 0x100
|
||||
#define MSGR_INUSE 0
|
||||
#define MSGR_FREE 1
|
||||
|
||||
static struct mpic_msgr **mpic_msgrs;
|
||||
static unsigned int mpic_msgr_count;
|
||||
|
||||
static inline void _mpic_msgr_mer_write(struct mpic_msgr *msgr, u32 value)
|
||||
{
|
||||
out_be32(msgr->mer, value);
|
||||
}
|
||||
|
||||
static inline u32 _mpic_msgr_mer_read(struct mpic_msgr *msgr)
|
||||
{
|
||||
return in_be32(msgr->mer);
|
||||
}
|
||||
|
||||
static inline void _mpic_msgr_disable(struct mpic_msgr *msgr)
|
||||
{
|
||||
u32 mer = _mpic_msgr_mer_read(msgr);
|
||||
|
||||
_mpic_msgr_mer_write(msgr, mer & ~(1 << msgr->num));
|
||||
}
|
||||
|
||||
struct mpic_msgr *mpic_msgr_get(unsigned int reg_num)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct mpic_msgr *msgr;
|
||||
|
||||
/* Assume busy until proven otherwise. */
|
||||
msgr = ERR_PTR(-EBUSY);
|
||||
|
||||
if (reg_num >= mpic_msgr_count)
|
||||
return ERR_PTR(-ENODEV);
|
||||
|
||||
raw_spin_lock_irqsave(&msgr->lock, flags);
|
||||
if (mpic_msgrs[reg_num]->in_use == MSGR_FREE) {
|
||||
msgr = mpic_msgrs[reg_num];
|
||||
msgr->in_use = MSGR_INUSE;
|
||||
}
|
||||
raw_spin_unlock_irqrestore(&msgr->lock, flags);
|
||||
|
||||
return msgr;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mpic_msgr_get);
|
||||
|
||||
void mpic_msgr_put(struct mpic_msgr *msgr)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
raw_spin_lock_irqsave(&msgr->lock, flags);
|
||||
msgr->in_use = MSGR_FREE;
|
||||
_mpic_msgr_disable(msgr);
|
||||
raw_spin_unlock_irqrestore(&msgr->lock, flags);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mpic_msgr_put);
|
||||
|
||||
void mpic_msgr_enable(struct mpic_msgr *msgr)
|
||||
{
|
||||
unsigned long flags;
|
||||
u32 mer;
|
||||
|
||||
raw_spin_lock_irqsave(&msgr->lock, flags);
|
||||
mer = _mpic_msgr_mer_read(msgr);
|
||||
_mpic_msgr_mer_write(msgr, mer | (1 << msgr->num));
|
||||
raw_spin_unlock_irqrestore(&msgr->lock, flags);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mpic_msgr_enable);
|
||||
|
||||
void mpic_msgr_disable(struct mpic_msgr *msgr)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
raw_spin_lock_irqsave(&msgr->lock, flags);
|
||||
_mpic_msgr_disable(msgr);
|
||||
raw_spin_unlock_irqrestore(&msgr->lock, flags);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mpic_msgr_disable);
|
||||
|
||||
/* The following three functions are used to compute the order and number of
|
||||
* the message register blocks. They are clearly very inefficent. However,
|
||||
* they are called *only* a few times during device initialization.
|
||||
*/
|
||||
static unsigned int mpic_msgr_number_of_blocks(void)
|
||||
{
|
||||
unsigned int count;
|
||||
struct device_node *aliases;
|
||||
|
||||
count = 0;
|
||||
aliases = of_find_node_by_name(NULL, "aliases");
|
||||
|
||||
if (aliases) {
|
||||
char buf[32];
|
||||
|
||||
for (;;) {
|
||||
snprintf(buf, sizeof(buf), "mpic-msgr-block%d", count);
|
||||
if (!of_find_property(aliases, buf, NULL))
|
||||
break;
|
||||
|
||||
count += 1;
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
static unsigned int mpic_msgr_number_of_registers(void)
|
||||
{
|
||||
return mpic_msgr_number_of_blocks() * MPIC_MSGR_REGISTERS_PER_BLOCK;
|
||||
}
|
||||
|
||||
static int mpic_msgr_block_number(struct device_node *node)
|
||||
{
|
||||
struct device_node *aliases;
|
||||
unsigned int index, number_of_blocks;
|
||||
char buf[64];
|
||||
|
||||
number_of_blocks = mpic_msgr_number_of_blocks();
|
||||
aliases = of_find_node_by_name(NULL, "aliases");
|
||||
if (!aliases)
|
||||
return -1;
|
||||
|
||||
for (index = 0; index < number_of_blocks; ++index) {
|
||||
struct property *prop;
|
||||
|
||||
snprintf(buf, sizeof(buf), "mpic-msgr-block%d", index);
|
||||
prop = of_find_property(aliases, buf, NULL);
|
||||
if (node == of_find_node_by_path(prop->value))
|
||||
break;
|
||||
}
|
||||
|
||||
return index == number_of_blocks ? -1 : index;
|
||||
}
|
||||
|
||||
/* The probe function for a single message register block.
|
||||
*/
|
||||
static __devinit int mpic_msgr_probe(struct platform_device *dev)
|
||||
{
|
||||
void __iomem *msgr_block_addr;
|
||||
int block_number;
|
||||
struct resource rsrc;
|
||||
unsigned int i;
|
||||
unsigned int irq_index;
|
||||
struct device_node *np = dev->dev.of_node;
|
||||
unsigned int receive_mask;
|
||||
const unsigned int *prop;
|
||||
|
||||
if (!np) {
|
||||
dev_err(&dev->dev, "Device OF-Node is NULL");
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
/* Allocate the message register array upon the first device
|
||||
* registered.
|
||||
*/
|
||||
if (!mpic_msgrs) {
|
||||
mpic_msgr_count = mpic_msgr_number_of_registers();
|
||||
dev_info(&dev->dev, "Found %d message registers\n",
|
||||
mpic_msgr_count);
|
||||
|
||||
mpic_msgrs = kzalloc(sizeof(struct mpic_msgr) * mpic_msgr_count,
|
||||
GFP_KERNEL);
|
||||
if (!mpic_msgrs) {
|
||||
dev_err(&dev->dev,
|
||||
"No memory for message register blocks\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
}
|
||||
dev_info(&dev->dev, "Of-device full name %s\n", np->full_name);
|
||||
|
||||
/* IO map the message register block. */
|
||||
of_address_to_resource(np, 0, &rsrc);
|
||||
msgr_block_addr = ioremap(rsrc.start, rsrc.end - rsrc.start);
|
||||
if (!msgr_block_addr) {
|
||||
dev_err(&dev->dev, "Failed to iomap MPIC message registers");
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
/* Ensure the block has a defined order. */
|
||||
block_number = mpic_msgr_block_number(np);
|
||||
if (block_number < 0) {
|
||||
dev_err(&dev->dev,
|
||||
"Failed to find message register block alias\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
dev_info(&dev->dev, "Setting up message register block %d\n",
|
||||
block_number);
|
||||
|
||||
/* Grab the receive mask which specifies what registers can receive
|
||||
* interrupts.
|
||||
*/
|
||||
prop = of_get_property(np, "mpic-msgr-receive-mask", NULL);
|
||||
receive_mask = (prop) ? *prop : 0xF;
|
||||
|
||||
/* Build up the appropriate message register data structures. */
|
||||
for (i = 0, irq_index = 0; i < MPIC_MSGR_REGISTERS_PER_BLOCK; ++i) {
|
||||
struct mpic_msgr *msgr;
|
||||
unsigned int reg_number;
|
||||
|
||||
msgr = kzalloc(sizeof(struct mpic_msgr), GFP_KERNEL);
|
||||
if (!msgr) {
|
||||
dev_err(&dev->dev, "No memory for message register\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
reg_number = block_number * MPIC_MSGR_REGISTERS_PER_BLOCK + i;
|
||||
msgr->base = msgr_block_addr + i * MPIC_MSGR_STRIDE;
|
||||
msgr->mer = msgr->base + MPIC_MSGR_MER_OFFSET;
|
||||
msgr->in_use = MSGR_FREE;
|
||||
msgr->num = i;
|
||||
raw_spin_lock_init(&msgr->lock);
|
||||
|
||||
if (receive_mask & (1 << i)) {
|
||||
struct resource irq;
|
||||
|
||||
if (of_irq_to_resource(np, irq_index, &irq) == NO_IRQ) {
|
||||
dev_err(&dev->dev,
|
||||
"Missing interrupt specifier");
|
||||
kfree(msgr);
|
||||
return -EFAULT;
|
||||
}
|
||||
msgr->irq = irq.start;
|
||||
irq_index += 1;
|
||||
} else {
|
||||
msgr->irq = NO_IRQ;
|
||||
}
|
||||
|
||||
mpic_msgrs[reg_number] = msgr;
|
||||
mpic_msgr_disable(msgr);
|
||||
dev_info(&dev->dev, "Register %d initialized: irq %d\n",
|
||||
reg_number, msgr->irq);
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct of_device_id mpic_msgr_ids[] = {
|
||||
{
|
||||
.compatible = "fsl,mpic-v3.1-msgr",
|
||||
.data = NULL,
|
||||
},
|
||||
{}
|
||||
};
|
||||
|
||||
static struct platform_driver mpic_msgr_driver = {
|
||||
.driver = {
|
||||
.name = "mpic-msgr",
|
||||
.owner = THIS_MODULE,
|
||||
.of_match_table = mpic_msgr_ids,
|
||||
},
|
||||
.probe = mpic_msgr_probe,
|
||||
};
|
||||
|
||||
static __init int mpic_msgr_init(void)
|
||||
{
|
||||
return platform_driver_register(&mpic_msgr_driver);
|
||||
}
|
||||
subsys_initcall(mpic_msgr_init);
|
|
@ -190,6 +190,17 @@ config GPIO_VX855
|
|||
additional drivers must be enabled in order to use the
|
||||
functionality of the device.
|
||||
|
||||
config GPIO_GE_FPGA
|
||||
bool "GE FPGA based GPIO"
|
||||
depends on GE_FPGA
|
||||
help
|
||||
Support for common GPIO functionality provided on some GE Single Board
|
||||
Computers.
|
||||
|
||||
This driver provides basic support (configure as input or output, read
|
||||
and write pin state) for GPIO implemented in a number of GE single
|
||||
board computers.
|
||||
|
||||
comment "I2C GPIO expanders:"
|
||||
|
||||
config GPIO_MAX7300
|
||||
|
|
|
@ -16,6 +16,7 @@ obj-$(CONFIG_GPIO_CS5535) += gpio-cs5535.o
|
|||
obj-$(CONFIG_GPIO_DA9052) += gpio-da9052.o
|
||||
obj-$(CONFIG_ARCH_DAVINCI) += gpio-davinci.o
|
||||
obj-$(CONFIG_GPIO_EP93XX) += gpio-ep93xx.o
|
||||
obj-$(CONFIG_GPIO_GE_FPGA) += gpio-ge.o
|
||||
obj-$(CONFIG_GPIO_IT8761E) += gpio-it8761e.o
|
||||
obj-$(CONFIG_GPIO_JANZ_TTL) += gpio-janz-ttl.o
|
||||
obj-$(CONFIG_ARCH_KS8695) += gpio-ks8695.o
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
*
|
||||
* Configuration of output modes (totem-pole/open-drain)
|
||||
* Interrupt configuration - interrupts are always generated the FPGA relies on
|
||||
* the I/O interrupt controllers mask to stop them propergating
|
||||
* the I/O interrupt controllers mask to stop them propergating
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
|
@ -162,6 +162,34 @@ static int __init gef_gpio_init(void)
|
|||
}
|
||||
}
|
||||
|
||||
for_each_compatible_node(np, NULL, "ge,imp3a-gpio") {
|
||||
|
||||
pr_debug("%s: Initialising GE GPIO\n", np->full_name);
|
||||
|
||||
/* Allocate chip structure */
|
||||
gef_gpio_chip = kzalloc(sizeof(*gef_gpio_chip), GFP_KERNEL);
|
||||
if (!gef_gpio_chip) {
|
||||
pr_err("%s: Unable to allocate structure\n",
|
||||
np->full_name);
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Setup pointers to chip functions */
|
||||
gef_gpio_chip->gc.of_gpio_n_cells = 2;
|
||||
gef_gpio_chip->gc.ngpio = 16;
|
||||
gef_gpio_chip->gc.direction_input = gef_gpio_dir_in;
|
||||
gef_gpio_chip->gc.direction_output = gef_gpio_dir_out;
|
||||
gef_gpio_chip->gc.get = gef_gpio_get;
|
||||
gef_gpio_chip->gc.set = gef_gpio_set;
|
||||
|
||||
/* This function adds a memory mapped GPIO chip */
|
||||
retval = of_mm_gpiochip_add(np, gef_gpio_chip);
|
||||
if (retval) {
|
||||
kfree(gef_gpio_chip);
|
||||
pr_err("%s: Unable to add GPIO\n", np->full_name);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
};
|
||||
arch_initcall(gef_gpio_init);
|
|
@ -462,6 +462,16 @@ config MTD_NAND_FSL_ELBC
|
|||
Enabling this option will enable you to use this to control
|
||||
external NAND devices.
|
||||
|
||||
config MTD_NAND_FSL_IFC
|
||||
tristate "NAND support for Freescale IFC controller"
|
||||
depends on MTD_NAND && FSL_SOC
|
||||
select FSL_IFC
|
||||
help
|
||||
Various Freescale chips e.g P1010, include a NAND Flash machine
|
||||
with built-in hardware ECC capabilities.
|
||||
Enabling this option will enable you to use this to control
|
||||
external NAND devices.
|
||||
|
||||
config MTD_NAND_FSL_UPM
|
||||
tristate "Support for NAND on Freescale UPM"
|
||||
depends on PPC_83xx || PPC_85xx
|
||||
|
|
|
@ -37,6 +37,7 @@ obj-$(CONFIG_MTD_ALAUDA) += alauda.o
|
|||
obj-$(CONFIG_MTD_NAND_PASEMI) += pasemi_nand.o
|
||||
obj-$(CONFIG_MTD_NAND_ORION) += orion_nand.o
|
||||
obj-$(CONFIG_MTD_NAND_FSL_ELBC) += fsl_elbc_nand.o
|
||||
obj-$(CONFIG_MTD_NAND_FSL_IFC) += fsl_ifc_nand.o
|
||||
obj-$(CONFIG_MTD_NAND_FSL_UPM) += fsl_upm.o
|
||||
obj-$(CONFIG_MTD_NAND_SH_FLCTL) += sh_flctl.o
|
||||
obj-$(CONFIG_MTD_NAND_MXC) += mxc_nand.o
|
||||
|
|
1072
drivers/mtd/nand/fsl_ifc_nand.c
Normal file
1072
drivers/mtd/nand/fsl_ifc_nand.c
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -1039,7 +1039,7 @@ config LANTIQ_WDT
|
|||
|
||||
config GEF_WDT
|
||||
tristate "GE Watchdog Timer"
|
||||
depends on GEF_SBC610 || GEF_SBC310 || GEF_PPC9A
|
||||
depends on GE_FPGA
|
||||
---help---
|
||||
Watchdog timer found in a number of GE single board computers.
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user