drivers/mtd/nand/spi/core.c | 7 ++++ drivers/mtd/nand/spi/macronix.c | 66 ++++++++++++++++++++++++++++++--- include/linux/mtd/spinand.h | 17 +++++++++ 3 files changed, 84 insertions(+), 6 deletions(-)
From: Cheng Ming Lin <chengminglin@mxic.com.tw>
Macronix serial NAND flash with a two-plane structure
requires insertion of Plane Select bit into the column
address during the write_to_cache operation.
Additionally, for MX35{U,F}2G14AC, insertion of Plane
Select bit into the column address is required during
the read_from_cache operation.
These flashes have been validated on Xilinx zynq-picozed
board which included Macronix SPI Host.
Cheng Ming Lin (2):
mtd: spinand: Add fixups for spinand
mtd: spinand: macronix: Fixups for Plane Select bit
drivers/mtd/nand/spi/core.c | 7 ++++
drivers/mtd/nand/spi/macronix.c | 66 ++++++++++++++++++++++++++++++---
include/linux/mtd/spinand.h | 17 +++++++++
3 files changed, 84 insertions(+), 6 deletions(-)
--
2.25.1
Hi Cheng,
linchengming884@gmail.com wrote on Thu, 18 Jul 2024 15:53:54 +0800:
> From: Cheng Ming Lin <chengminglin@mxic.com.tw>
>
> Macronix serial NAND flash with a two-plane structure
> requires insertion of Plane Select bit into the column
> address during the write_to_cache operation.
>
> Additionally, for MX35{U,F}2G14AC, insertion of Plane
> Select bit into the column address is required during
> the read_from_cache operation.
I guess if the plane bit is needed for your chips, it is also needed
for other whips with two planes? Could it be possible that we never had
support for devices with more than one plane and you just fall into a
common issue? Maybe we should always add the plane information when
there is more than one plane to address? Can you check whether this is
specific to Macronix or not?
In this case we wouldn't need a specific fixup.
>
> These flashes have been validated on Xilinx zynq-picozed
> board which included Macronix SPI Host.
>
> Cheng Ming Lin (2):
> mtd: spinand: Add fixups for spinand
> mtd: spinand: macronix: Fixups for Plane Select bit
>
> drivers/mtd/nand/spi/core.c | 7 ++++
> drivers/mtd/nand/spi/macronix.c | 66 ++++++++++++++++++++++++++++++---
> include/linux/mtd/spinand.h | 17 +++++++++
> 3 files changed, 84 insertions(+), 6 deletions(-)
>
Thanks,
Miquèl
Hi Miquel,
Miquel Raynal <miquel.raynal@bootlin.com> 於 2024年8月12日 週一 下午4:56寫道:
>
> Hi Cheng,
>
> linchengming884@gmail.com wrote on Thu, 18 Jul 2024 15:53:54 +0800:
>
> > From: Cheng Ming Lin <chengminglin@mxic.com.tw>
> >
> > Macronix serial NAND flash with a two-plane structure
> > requires insertion of Plane Select bit into the column
> > address during the write_to_cache operation.
> >
> > Additionally, for MX35{U,F}2G14AC, insertion of Plane
> > Select bit into the column address is required during
> > the read_from_cache operation.
>
> I guess if the plane bit is needed for your chips, it is also needed
> for other whips with two planes? Could it be possible that we never had
> support for devices with more than one plane and you just fall into a
> common issue? Maybe we should always add the plane information when
> there is more than one plane to address? Can you check whether this is
> specific to Macronix or not?
>
I have reviewed the chips listed by each vendor.
Micron offers MT29F2G01AB{A,B}GD, MT29F2G01AAAED with two planes;
however, only MT29F2G01AAAED requires the plane select bit when performing
program load or read from cache.
Link: https://semiconductors.es/pdf-down/M/T/2/MT29F2G01AAAED-MicronTechnology.pdf
Winbond provides W25N04KV with two planes, but it does not require the plane
select bit for program load or cache read operations.
Therefore, we should not always include the plane select bit when dealing with
multiple planes.
> In this case we wouldn't need a specific fixup.
>
Based on the above perspective, do we still need to use fixup, or can we use
flags to determine whether the plane select bit is necessary?
> >
> > These flashes have been validated on Xilinx zynq-picozed
> > board which included Macronix SPI Host.
> >
> > Cheng Ming Lin (2):
> > mtd: spinand: Add fixups for spinand
> > mtd: spinand: macronix: Fixups for Plane Select bit
> >
> > drivers/mtd/nand/spi/core.c | 7 ++++
> > drivers/mtd/nand/spi/macronix.c | 66 ++++++++++++++++++++++++++++++---
> > include/linux/mtd/spinand.h | 17 +++++++++
> > 3 files changed, 84 insertions(+), 6 deletions(-)
> >
>
>
> Thanks,
> Miquèl
Thanks,
ChengMing Lin
Hi Cheng,
linchengming884@gmail.com wrote on Tue, 13 Aug 2024 14:02:44 +0800:
> Hi Miquel,
>
> Miquel Raynal <miquel.raynal@bootlin.com> 於 2024年8月12日 週一 下午4:56寫道:
> >
> > Hi Cheng,
> >
> > linchengming884@gmail.com wrote on Thu, 18 Jul 2024 15:53:54 +0800:
> >
> > > From: Cheng Ming Lin <chengminglin@mxic.com.tw>
> > >
> > > Macronix serial NAND flash with a two-plane structure
> > > requires insertion of Plane Select bit into the column
> > > address during the write_to_cache operation.
> > >
> > > Additionally, for MX35{U,F}2G14AC, insertion of Plane
> > > Select bit into the column address is required during
> > > the read_from_cache operation.
> >
> > I guess if the plane bit is needed for your chips, it is also needed
> > for other whips with two planes? Could it be possible that we never had
> > support for devices with more than one plane and you just fall into a
> > common issue? Maybe we should always add the plane information when
> > there is more than one plane to address? Can you check whether this is
> > specific to Macronix or not?
> >
>
> I have reviewed the chips listed by each vendor.
>
> Micron offers MT29F2G01AB{A,B}GD, MT29F2G01AAAED with two planes;
> however, only MT29F2G01AAAED requires the plane select bit when performing
> program load or read from cache.
>
> Link: https://semiconductors.es/pdf-down/M/T/2/MT29F2G01AAAED-MicronTechnology.pdf
>
> Winbond provides W25N04KV with two planes, but it does not require the plane
> select bit for program load or cache read operations.
>
> Therefore, we should not always include the plane select bit when dealing with
> multiple planes.
>
> > In this case we wouldn't need a specific fixup.
> >
>
> Based on the above perspective, do we still need to use fixup, or can we use
> flags to determine whether the plane select bit is necessary?
I still prefer flags rather than invasive fixup hooks.
>
> > >
> > > These flashes have been validated on Xilinx zynq-picozed
> > > board which included Macronix SPI Host.
> > >
> > > Cheng Ming Lin (2):
> > > mtd: spinand: Add fixups for spinand
> > > mtd: spinand: macronix: Fixups for Plane Select bit
> > >
> > > drivers/mtd/nand/spi/core.c | 7 ++++
> > > drivers/mtd/nand/spi/macronix.c | 66 ++++++++++++++++++++++++++++++---
> > > include/linux/mtd/spinand.h | 17 +++++++++
> > > 3 files changed, 84 insertions(+), 6 deletions(-)
> > >
> >
> >
> > Thanks,
> > Miquèl
>
> Thanks,
> ChengMing Lin
Thanks,
Miquèl
© 2016 - 2025 Red Hat, Inc.