Question on flash node on device tree source
David Gibson
david at gibson.dropbear.id.au
Wed Sep 9 14:46:19 EST 2009
On Tue, Sep 08, 2009 at 12:18:33PM +0000, Angelo wrote:
> Hi all.
>
> I need some info about device tree blob.
> I'm testing a powerpc board (very similar to mpc512xev) with the following feature:
> - 256MB flash (only 1 bank)
>
> Changes some lines of device tree source about flash
>
> localbus at 80000020 {
> compatible = "fsl,mpc5121ads-localbus";
> #address-cells = <2>;
> #size-cells = <1>;
> reg = <0000020 40>;
>
> ranges = <0 0 fc000000 04000000
> 2 0 82000000 00008000>;
First thing to note is that you're still using dts-v0 syntax. You
really want to change over to dts-v1 syntax. Which probably means
you've based your tree on an old version of the mpc512eev dts. All
the in-kernel dts files have already been converted and current
versions of dtc don't support the old syntax.
> flash at 0,0 {
> device_type = "rom";
> compatible = "direct-mapped";
Second thing to note is that you're using the old, broken flash
binding. You should use the new binding described in
Documentation/powerpc/dts-bindings/mtd-physmap.txt.
> probe-type = "CFI";
> reg = <0 0 4000000>;
> #address-cells = <1>;
> #size-cells = <1>;
> bank-width = <4>;
> device-width = <2>;
> partitions = <00000000 00040000 // first sector is protected
> 00040000 03c00000 // 60 Mb for filesystem
> 03c40000 00280000 // 2.5 Mb for kernel
> 03ec0000 00040000 // one sector for device tree
> 03f00000 00100000>; // one Mb for u-boot
> partition-names = "protected", "filesystem", "kernel", "device-tree", "u-boot";
> };
> .....
> with these changes:
> .....
> flash at 0,0 {
> device_type = "rom";
> compatible = "direct-mapped";
> probe-type = "CFI";
> reg = <0 0 1000000>;
And the third thing to note is that 0x1000000 == 16MB.
> #address-cells = <1>;
> #size-cells = <1>;
> bank-width = <1>;
> device-width = <1>;
> partitions = <300000 200000 //uimage
> 400000 3200000>; // fs
> partition-names = "uimage", "fs";
> };
> .....
>
> The problem is that on bootstrap stage, kernel truncate the flash
> memory to 16MB, so i cannot access to the whole flash. kernel
> messages:
That would be because you told the kernel your flash was 16MB in the
'reg' property. Looks like you missed out a zero.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
More information about the devicetree-discuss
mailing list