aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/powerpc/booting-without-of.txt
diff options
context:
space:
mode:
authorScott Wood <scottwood@freescale.com>2007-09-28 15:06:16 -0400
committerKumar Gala <galak@kernel.crashing.org>2007-10-04 16:47:05 -0400
commit15f8c604a79c4840ed76eecf3af5d88b7c1dee9e (patch)
treed86815bc2daf835fee081ee7dac92cef8784f6a3 /Documentation/powerpc/booting-without-of.txt
parent3c5df5c26ed17828760945d59653a2e22e3fb63f (diff)
[POWERPC] cpm: Describe multi-user ram in its own device node.
The way the current CPM binding describes available multi-user (a.k.a. dual-ported) RAM doesn't work well when there are multiple free regions, and it doesn't work at all if the region doesn't begin at the start of the muram area (as the hardware needs to be programmed with offsets into this area). The latter situation can happen with SMC UARTs on CPM2, as its parameter RAM is relocatable, u-boot puts it at zero, and the kernel doesn't support moving it. It is now described with a muram node, similar to QE. The current CPM binding is sufficiently recent (i.e. never appeared in an official release) that compatibility with existing device trees is not an issue. The code supporting the new binding is shared between cpm1 and cpm2, rather than remain separated. QE should be able to use this code as well, once minor fixes are made to its device trees. Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'Documentation/powerpc/booting-without-of.txt')
-rw-r--r--Documentation/powerpc/booting-without-of.txt40
1 files changed, 36 insertions, 4 deletions
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index c36dcd2fbdc4..ce5d67f5cb5c 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -1861,9 +1861,7 @@ platforms are moved over to use the flattened-device-tree model.
1861 1861
1862 Properties: 1862 Properties:
1863 - compatible : "fsl,cpm1", "fsl,cpm2", or "fsl,qe". 1863 - compatible : "fsl,cpm1", "fsl,cpm2", or "fsl,qe".
1864 - reg : The first resource is a 48-byte region beginning with 1864 - reg : A 48-byte region beginning with CPCR.
1865 CPCR. The second is the available general-purpose
1866 DPRAM.
1867 1865
1868 Example: 1866 Example:
1869 cpm@119c0 { 1867 cpm@119c0 {
@@ -1871,7 +1869,7 @@ platforms are moved over to use the flattened-device-tree model.
1871 #size-cells = <1>; 1869 #size-cells = <1>;
1872 #interrupt-cells = <2>; 1870 #interrupt-cells = <2>;
1873 compatible = "fsl,mpc8272-cpm", "fsl,cpm2"; 1871 compatible = "fsl,mpc8272-cpm", "fsl,cpm2";
1874 reg = <119c0 30 0 2000>; 1872 reg = <119c0 30>;
1875 } 1873 }
1876 1874
1877 ii) Properties common to mulitple CPM/QE devices 1875 ii) Properties common to mulitple CPM/QE devices
@@ -2017,6 +2015,40 @@ platforms are moved over to use the flattened-device-tree model.
2017 fsl,cpm-command = <2e600000>; 2015 fsl,cpm-command = <2e600000>;
2018 }; 2016 };
2019 2017
2018 viii) Multi-User RAM (MURAM)
2019
2020 The multi-user/dual-ported RAM is expressed as a bus under the CPM node.
2021
2022 Ranges must be set up subject to the following restrictions:
2023
2024 - Children's reg nodes must be offsets from the start of all muram, even
2025 if the user-data area does not begin at zero.
2026 - If multiple range entries are used, the difference between the parent
2027 address and the child address must be the same in all, so that a single
2028 mapping can cover them all while maintaining the ability to determine
2029 CPM-side offsets with pointer subtraction. It is recommended that
2030 multiple range entries not be used.
2031 - A child address of zero must be translatable, even if no reg resources
2032 contain it.
2033
2034 A child "data" node must exist, compatible with "fsl,cpm-muram-data", to
2035 indicate the portion of muram that is usable by the OS for arbitrary
2036 purposes. The data node may have an arbitrary number of reg resources,
2037 all of which contribute to the allocatable muram pool.
2038
2039 Example, based on mpc8272:
2040
2041 muram@0 {
2042 #address-cells = <1>;
2043 #size-cells = <1>;
2044 ranges = <0 0 10000>;
2045
2046 data@0 {
2047 compatible = "fsl,cpm-muram-data";
2048 reg = <0 2000 9800 800>;
2049 };
2050 };
2051
2020 m) Chipselect/Local Bus 2052 m) Chipselect/Local Bus
2021 2053
2022 Properties: 2054 Properties: