Patchwork mtd/maps: add mtd-ram support to physmap_of

login
register
mail settings
Submitter Wolfram Sang
Date July 17, 2009, 12:39 p.m.
Message ID <1247834363-28198-1-git-send-email-w.sang@pengutronix.de>
Download mbox | patch
Permalink /patch/29918/
State Accepted
Commit fc28c39f0ef59bfb649ddfd633275be8e45c0f9c
Headers show

Comments

Wolfram Sang - July 17, 2009, 12:39 p.m.
Use physmap_of to access RAMs as mtd and add documenation for it. This approach
is a lot less intrusive as adding an of-wrapper around plat-ram.c. As most
extensions of plat-ram.c (e.g. custom map-functions) can't be mapped to the
device tree anyhow, extending physmap_of seems to be the cleanest approach.

Tested with a phyCORE-MPC5121e.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Cc: Vitaly Wool <vwool@ru.mvista.com>
Cc: Artem Bityutskiy <dedekind@infradead.org>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Ken MacLeod <ken@bitsko.slc.ut.us>
Cc: Albrecht Dreß <albrecht.dress@arcor.de>
---
 Documentation/powerpc/dts-bindings/mtd-physmap.txt |   42 ++++++++++++-------
 drivers/mtd/maps/physmap_of.c                      |    4 ++
 2 files changed, 30 insertions(+), 16 deletions(-)
Grant Likely - Aug. 8, 2009, 5:43 a.m.
On Fri, Jul 17, 2009 at 6:39 AM, Wolfram Sang<w.sang@pengutronix.de> wrote:
> Use physmap_of to access RAMs as mtd and add documenation for it. This approach
> is a lot less intrusive as adding an of-wrapper around plat-ram.c. As most
> extensions of plat-ram.c (e.g. custom map-functions) can't be mapped to the
> device tree anyhow, extending physmap_of seems to be the cleanest approach.
>
> Tested with a phyCORE-MPC5121e.
>
> Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>

Looks good to me.

Acked-by: Grant Likely <grant.likely@secretlab.ca>

> Cc: Vitaly Wool <vwool@ru.mvista.com>
> Cc: Artem Bityutskiy <dedekind@infradead.org>
> Cc: David Woodhouse <dwmw2@infradead.org>
> Cc: Ken MacLeod <ken@bitsko.slc.ut.us>
> Cc: Albrecht Dreß <albrecht.dress@arcor.de>
> ---
>  Documentation/powerpc/dts-bindings/mtd-physmap.txt |   42 ++++++++++++-------
>  drivers/mtd/maps/physmap_of.c                      |    4 ++
>  2 files changed, 30 insertions(+), 16 deletions(-)
>
> diff --git a/Documentation/powerpc/dts-bindings/mtd-physmap.txt b/Documentation/powerpc/dts-bindings/mtd-physmap.txt
> index 667c9bd..80152cb 100644
> --- a/Documentation/powerpc/dts-bindings/mtd-physmap.txt
> +++ b/Documentation/powerpc/dts-bindings/mtd-physmap.txt
> @@ -1,18 +1,19 @@
> -CFI or JEDEC memory-mapped NOR flash
> +CFI or JEDEC memory-mapped NOR flash, MTD-RAM (NVRAM...)
>
>  Flash chips (Memory Technology Devices) are often used for solid state
>  file systems on embedded devices.
>
> - - compatible : should contain the specific model of flash chip(s)
> -   used, if known, followed by either "cfi-flash" or "jedec-flash"
> - - reg : Address range(s) of the flash chip(s)
> + - compatible : should contain the specific model of mtd chip(s)
> +   used, if known, followed by either "cfi-flash", "jedec-flash"
> +   or "mtd-ram".
> + - reg : Address range(s) of the mtd chip(s)
>    It's possible to (optionally) define multiple "reg" tuples so that
> -   non-identical NOR chips can be described in one flash node.
> - - bank-width : Width (in bytes) of the flash bank.  Equal to the
> +   non-identical chips can be described in one node.
> + - bank-width : Width (in bytes) of the bank.  Equal to the
>    device width times the number of interleaved chips.
> - - device-width : (optional) Width of a single flash chip.  If
> + - device-width : (optional) Width of a single mtd chip.  If
>    omitted, assumed to be equal to 'bank-width'.
> - - #address-cells, #size-cells : Must be present if the flash has
> + - #address-cells, #size-cells : Must be present if the device has
>    sub-nodes representing partitions (see below).  In this case
>    both #address-cells and #size-cells must be equal to 1.
>
> @@ -22,24 +23,24 @@ are defined:
>  - vendor-id : Contains the flash chip's vendor id (1 byte).
>  - device-id : Contains the flash chip's device id (1 byte).
>
> -In addition to the information on the flash bank itself, the
> +In addition to the information on the mtd bank itself, the
>  device tree may optionally contain additional information
> -describing partitions of the flash address space.  This can be
> +describing partitions of the address space.  This can be
>  used on platforms which have strong conventions about which
> -portions of the flash are used for what purposes, but which don't
> +portions of a flash are used for what purposes, but which don't
>  use an on-flash partition table such as RedBoot.
>
> -Each partition is represented as a sub-node of the flash device.
> +Each partition is represented as a sub-node of the mtd device.
>  Each node's name represents the name of the corresponding
> -partition of the flash device.
> +partition of the mtd device.
>
>  Flash partitions
> - - reg : The partition's offset and size within the flash bank.
> - - label : (optional) The label / name for this flash partition.
> + - reg : The partition's offset and size within the mtd bank.
> + - label : (optional) The label / name for this partition.
>    If omitted, the label is taken from the node name (excluding
>    the unit address).
>  - read-only : (optional) This parameter, if present, is a hint to
> -   Linux that this flash partition should only be mounted
> +   Linux that this partition should only be mounted
>    read-only.  This is usually used for flash partitions
>    containing early-boot firmware images or data which should not
>    be clobbered.
> @@ -78,3 +79,12 @@ Here an example with multiple "reg" tuples:
>                        reg = <0 0x04000000>;
>                };
>        };
> +
> +An example using SRAM:
> +
> +       sram@2,0 {
> +               compatible = "samsung,k6f1616u6a", "mtd-ram";
> +               reg = <2 0 0x00200000>;
> +               bank-width = <2>;
> +       };
> +
> diff --git a/drivers/mtd/maps/physmap_of.c b/drivers/mtd/maps/physmap_of.c
> index 39d357b..45eee20 100644
> --- a/drivers/mtd/maps/physmap_of.c
> +++ b/drivers/mtd/maps/physmap_of.c
> @@ -360,6 +360,10 @@ static struct of_device_id of_flash_match[] = {
>                .data           = (void *)"jedec_probe",
>        },
>        {
> +               .compatible     = "mtd-ram",
> +               .data           = (void *)"map_ram",
> +       },
> +       {
>                .type           = "rom",
>                .compatible     = "direct-mapped"
>        },
> --
> 1.6.3.1
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
Artem Bityutskiy - Aug. 9, 2009, 5:17 a.m.
On Fri, 2009-08-07 at 23:43 -0600, Grant Likely wrote:
> On Fri, Jul 17, 2009 at 6:39 AM, Wolfram Sang<w.sang@pengutronix.de> wrote:
> > Use physmap_of to access RAMs as mtd and add documenation for it. This approach
> > is a lot less intrusive as adding an of-wrapper around plat-ram.c. As most
> > extensions of plat-ram.c (e.g. custom map-functions) can't be mapped to the
> > device tree anyhow, extending physmap_of seems to be the cleanest approach.
> >
> > Tested with a phyCORE-MPC5121e.
> >
> > Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
> 
> Looks good to me.
> 
> Acked-by: Grant Likely <grant.likely@secretlab.ca>

This patch is sitting in my l2-mtd-2.6.git tree.
Wolfram Sang - Aug. 10, 2009, 4:19 p.m.
On Sun, Aug 09, 2009 at 08:17:23AM +0300, Artem Bityutskiy wrote:
> On Fri, 2009-08-07 at 23:43 -0600, Grant Likely wrote:
> > On Fri, Jul 17, 2009 at 6:39 AM, Wolfram Sang<w.sang@pengutronix.de> wrote:
> > > Use physmap_of to access RAMs as mtd and add documenation for it. This approach
> > > is a lot less intrusive as adding an of-wrapper around plat-ram.c. As most
> > > extensions of plat-ram.c (e.g. custom map-functions) can't be mapped to the
> > > device tree anyhow, extending physmap_of seems to be the cleanest approach.
> > >
> > > Tested with a phyCORE-MPC5121e.
> > >
> > > Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
> > 
> > Looks good to me.
> > 
> > Acked-by: Grant Likely <grant.likely@secretlab.ca>
> 
> This patch is sitting in my l2-mtd-2.6.git tree.

Great, thanks a lot (and for your l2-tree in general!). One question: Are the
additional Acked-bys added later? I could think they might be useful for
David's review...

Kind regards,

   Wolfram
Artem Bityutskiy - Aug. 10, 2009, 4:25 p.m.
On Mon, 2009-08-10 at 18:19 +0200, Wolfram Sang wrote:
> On Sun, Aug 09, 2009 at 08:17:23AM +0300, Artem Bityutskiy wrote:
> > On Fri, 2009-08-07 at 23:43 -0600, Grant Likely wrote:
> > > On Fri, Jul 17, 2009 at 6:39 AM, Wolfram Sang<w.sang@pengutronix.de> wrote:
> > > > Use physmap_of to access RAMs as mtd and add documenation for it. This approach
> > > > is a lot less intrusive as adding an of-wrapper around plat-ram.c. As most
> > > > extensions of plat-ram.c (e.g. custom map-functions) can't be mapped to the
> > > > device tree anyhow, extending physmap_of seems to be the cleanest approach.
> > > >
> > > > Tested with a phyCORE-MPC5121e.
> > > >
> > > > Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
> > > 
> > > Looks good to me.
> > > 
> > > Acked-by: Grant Likely <grant.likely@secretlab.ca>
> > 
> > This patch is sitting in my l2-mtd-2.6.git tree.
> 
> Great, thanks a lot (and for your l2-tree in general!). One question: Are the
> additional Acked-bys added later? I could think they might be useful for
> David's review...

Well, I do not bother maintaining nice history there, so rebase it
freely, which means I can add your ack. Will do tomorrow.
Artem Bityutskiy - Aug. 11, 2009, 5:55 a.m.
On 08/10/2009 07:19 PM, Wolfram Sang wrote:
> On Sun, Aug 09, 2009 at 08:17:23AM +0300, Artem Bityutskiy wrote:
>> On Fri, 2009-08-07 at 23:43 -0600, Grant Likely wrote:
>>> On Fri, Jul 17, 2009 at 6:39 AM, Wolfram Sang<w.sang@pengutronix.de>  wrote:
>>>> Use physmap_of to access RAMs as mtd and add documenation for it. This approach
>>>> is a lot less intrusive as adding an of-wrapper around plat-ram.c. As most
>>>> extensions of plat-ram.c (e.g. custom map-functions) can't be mapped to the
>>>> device tree anyhow, extending physmap_of seems to be the cleanest approach.
>>>>
>>>> Tested with a phyCORE-MPC5121e.
>>>>
>>>> Signed-off-by: Wolfram Sang<w.sang@pengutronix.de>
>>> Looks good to me.
>>>
>>> Acked-by: Grant Likely<grant.likely@secretlab.ca>
>> This patch is sitting in my l2-mtd-2.6.git tree.
>
> Great, thanks a lot (and for your l2-tree in general!). One question: Are the
> additional Acked-bys added later? I could think they might be useful for
> David's review...

Added Acked-by: Grant Likely<grant.likely@secretlab.ca>

Patch

diff --git a/Documentation/powerpc/dts-bindings/mtd-physmap.txt b/Documentation/powerpc/dts-bindings/mtd-physmap.txt
index 667c9bd..80152cb 100644
--- a/Documentation/powerpc/dts-bindings/mtd-physmap.txt
+++ b/Documentation/powerpc/dts-bindings/mtd-physmap.txt
@@ -1,18 +1,19 @@ 
-CFI or JEDEC memory-mapped NOR flash
+CFI or JEDEC memory-mapped NOR flash, MTD-RAM (NVRAM...)
 
 Flash chips (Memory Technology Devices) are often used for solid state
 file systems on embedded devices.
 
- - compatible : should contain the specific model of flash chip(s)
-   used, if known, followed by either "cfi-flash" or "jedec-flash"
- - reg : Address range(s) of the flash chip(s)
+ - compatible : should contain the specific model of mtd chip(s)
+   used, if known, followed by either "cfi-flash", "jedec-flash"
+   or "mtd-ram".
+ - reg : Address range(s) of the mtd chip(s)
    It's possible to (optionally) define multiple "reg" tuples so that
-   non-identical NOR chips can be described in one flash node.
- - bank-width : Width (in bytes) of the flash bank.  Equal to the
+   non-identical chips can be described in one node.
+ - bank-width : Width (in bytes) of the bank.  Equal to the
    device width times the number of interleaved chips.
- - device-width : (optional) Width of a single flash chip.  If
+ - device-width : (optional) Width of a single mtd chip.  If
    omitted, assumed to be equal to 'bank-width'.
- - #address-cells, #size-cells : Must be present if the flash has
+ - #address-cells, #size-cells : Must be present if the device has
    sub-nodes representing partitions (see below).  In this case
    both #address-cells and #size-cells must be equal to 1.
 
@@ -22,24 +23,24 @@  are defined:
  - vendor-id : Contains the flash chip's vendor id (1 byte).
  - device-id : Contains the flash chip's device id (1 byte).
 
-In addition to the information on the flash bank itself, the
+In addition to the information on the mtd bank itself, the
 device tree may optionally contain additional information
-describing partitions of the flash address space.  This can be
+describing partitions of the address space.  This can be
 used on platforms which have strong conventions about which
-portions of the flash are used for what purposes, but which don't
+portions of a flash are used for what purposes, but which don't
 use an on-flash partition table such as RedBoot.
 
-Each partition is represented as a sub-node of the flash device.
+Each partition is represented as a sub-node of the mtd device.
 Each node's name represents the name of the corresponding
-partition of the flash device.
+partition of the mtd device.
 
 Flash partitions
- - reg : The partition's offset and size within the flash bank.
- - label : (optional) The label / name for this flash partition.
+ - reg : The partition's offset and size within the mtd bank.
+ - label : (optional) The label / name for this partition.
    If omitted, the label is taken from the node name (excluding
    the unit address).
  - read-only : (optional) This parameter, if present, is a hint to
-   Linux that this flash partition should only be mounted
+   Linux that this partition should only be mounted
    read-only.  This is usually used for flash partitions
    containing early-boot firmware images or data which should not
    be clobbered.
@@ -78,3 +79,12 @@  Here an example with multiple "reg" tuples:
 			reg = <0 0x04000000>;
 		};
 	};
+
+An example using SRAM:
+
+	sram@2,0 {
+		compatible = "samsung,k6f1616u6a", "mtd-ram";
+		reg = <2 0 0x00200000>;
+		bank-width = <2>;
+	};
+
diff --git a/drivers/mtd/maps/physmap_of.c b/drivers/mtd/maps/physmap_of.c
index 39d357b..45eee20 100644
--- a/drivers/mtd/maps/physmap_of.c
+++ b/drivers/mtd/maps/physmap_of.c
@@ -360,6 +360,10 @@  static struct of_device_id of_flash_match[] = {
 		.data		= (void *)"jedec_probe",
 	},
 	{
+		.compatible     = "mtd-ram",
+		.data           = (void *)"map_ram",
+	},
+	{
 		.type		= "rom",
 		.compatible	= "direct-mapped"
 	},