[PATCH v8 2/4] misc: Generic on-chip SRAM allocation driver

Grant Likely grant.likely at secretlab.ca
Wed Feb 13 05:09:39 EST 2013


On Mon, 11 Feb 2013 19:15:24 +0100, Philipp Zabel <p.zabel at pengutronix.de> wrote:
> Hi Grant,
> 
> Am Freitag, den 08.02.2013, 20:16 +0000 schrieb Grant Likely:
> > On Mon,  4 Feb 2013 12:32:16 +0100, Philipp Zabel <p.zabel at pengutronix.de> wrote:
> > > This driver requests and remaps a memory region as configured in the
> > > device tree. It serves memory from this region via the genalloc API.
> > > It optionally enables the SRAM clock.
> > > 
> > > Other drivers can retrieve the genalloc pool from a phandle pointing
> > > to this drivers' device node in the device tree.
> > > 
> > > The allocation granularity is hard-coded to 32 bytes for now,
> > > to make the SRAM driver useful for the 6502 remoteproc driver.
> > > There is overhead for bigger SRAMs, where only a much coarser
> > > allocation granularity is needed: At 32 bytes minimum allocation
> > > size, a 256 KiB SRAM needs a 1 KiB bitmap to track allocations.
> > > 
> > > Signed-off-by: Philipp Zabel <p.zabel at pengutronix.de>
> > > Reviewed-by: Shawn Guo <shawn.guo at linaro.org>
> > > ---
> > > Changes since v7:
> > >  - Removed obsolete __devinit/__devexit/__devexit_p
> > > ---
> > >  Documentation/devicetree/bindings/misc/sram.txt |   17 ++++
> > >  drivers/misc/Kconfig                            |    9 ++
> > >  drivers/misc/Makefile                           |    1 +
> > >  drivers/misc/sram.c                             |  121 +++++++++++++++++++++++
> > >  4 files changed, 148 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/misc/sram.txt
> > >  create mode 100644 drivers/misc/sram.c
> > > 
> > > diff --git a/Documentation/devicetree/bindings/misc/sram.txt b/Documentation/devicetree/bindings/misc/sram.txt
> > > new file mode 100644
> > > index 0000000..b64136c
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/misc/sram.txt
> > > @@ -0,0 +1,17 @@
> > > +Generic on-chip SRAM
> > > +
> > > +Simple IO memory regions to be managed by the genalloc API.
> > > +
> > > +Required properties:
> > > +
> > > +- compatible : sram
> > 
> > I'm a little concerned that 'sram' is just too generic for a compatible
> > value and we may end up needing a blacklist of systems where the sram
> > device should not be driven with this driver. If you can think of
> > a more descriptive name here then I would use it.
> 
> various SoC vendors call this (variations of) "on-chip" or "internal"
> SRAM/memory. "on-chip-sram" or "internal-sram" are still plenty generic,
> though. How about "mmio-sram", as opposed to an SRAM that needs more
> than the simple mmio region handled by this driver?
> 
> An alternative would be to use the vendor specific names and grow a
> compatible list in the driver ("fsl,ocram", "ti,ocm", ...).

I'd prefer a hybrid. Be specific with the part that it is on
("fsl,ocram"), but also include "mmio-sram":

compatible = "fsl,ocram", "mmio-sram";

That gives drivers the option of overriding the generic mmio-sram
driver.

g.



More information about the devicetree-discuss mailing list