[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20181123112903.56393f28@bbrezillon>
Date: Fri, 23 Nov 2018 11:29:03 +0100
From: Boris Brezillon <boris.brezillon@...tlin.com>
To: "Sverdlin, Alexander (Nokia - DE/Ulm)" <alexander.sverdlin@...ia.com>
Cc: "Tudor.Ambarus@...rochip.com" <Tudor.Ambarus@...rochip.com>,
"marek.vasut@...il.com" <marek.vasut@...il.com>,
"dwmw2@...radead.org" <dwmw2@...radead.org>,
"computersforpeace@...il.com" <computersforpeace@...il.com>,
"richard@....at" <richard@....at>,
"linux-mtd@...ts.infradead.org" <linux-mtd@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] mtd: spi-nor: fix erase_type array to indicate current
map conf
On Fri, 23 Nov 2018 11:17:29 +0100
Boris Brezillon <boris.brezillon@...tlin.com> wrote:
> On Fri, 23 Nov 2018 09:42:55 +0000
> "Sverdlin, Alexander (Nokia - DE/Ulm)" <alexander.sverdlin@...ia.com>
> wrote:
>
> > Hello Tudor,
> >
> > On 22/11/2018 13:36, Tudor.Ambarus@...rochip.com wrote:
> > > From: Tudor Ambarus <tudor.ambarus@...rochip.com>
> > >
> > > Bug reported for the out-of-tree S25FS128S flash memory.
> > >
> > > BFPT table advertises all the erase types supported by all the
> > > possible map configurations. Update the erase_type array to indicate
> > > which erase types are applicable to the current map configuration.
> > >
> > > Backward compatibility test done on sst26vf064b.
> > >
> > > Fixes: b038e8e3be72 ("mtd: spi-nor: parse SFDP Sector Map Parameter Table")
> > > Reported-by: Alexander Sverdlin <alexander.sverdlin@...ia.com>
> > > Signed-off-by: Tudor Ambarus <tudor.ambarus@...rochip.com>
> >
> > I've tested this patch and it fixes the erasesize for S25FS128S and
> > our 128k partitions are writeable again with this patch.
> >
> > Nevertheless, I think this is coincidence. I don't think that it
> > makes sense to OR all the erase types from all regions in one
> > bitmask and derive any uniform erasesize out of it.
> > This makes little sense for me in case of non-uniform maps.
> >
> > I believe, the culprit here is one level higher, in the MTD partitioning
> > code (mtdpart.c) which has to be taught about non-uniform maps
> > but there is no infrastructure for this currently.
>
> Keep in mind that mtdpart is only one part of the issue. As I said
> previously, some MTD users (UBI) expect a single eraseblock size, so
> it's not only mtdpart that you'd need to fix, but basically all MTD
> users that don't check ->eraseregions.
Just checked, and it seems mtdpart already supports eraseregions [1].
It picks the biggest erasesize of the regions covered by the partition,
which is exactly what we want. So all we'd have to do is make spi-nor.c
define those regions.
[1]https://elixir.bootlin.com/linux/v4.20-rc3/source/drivers/mtd/mtdpart.c#L482
Powered by blists - more mailing lists