[U-Boot] [PATCH v3 00/21] SPI-NAND support

Miquel Raynal miquel.raynal at bootlin.com
Fri Jul 13 12:26:29 UTC 2018


Hi Miquel,

Miquel Raynal <miquel.raynal at bootlin.com> wrote on Thu, 12 Jul 2018
15:24:45 +0200:

> During the last months, Boris Brezillon shared his work to support
> serial flashes within Linux. First, he delivered (and merged) a new
> layer called spi-mem. He also initiated in Linux MTD subsystem the move
> of all 'raw' NAND related code to a raw/ subdirectory, adding at the
> same time a NAND core that would be shared with all NAND devices. Then,
> he contributed a generic SPI-NAND driver, making use of this NAND core,
> as well as some vendor code to drive a few chips.
> 
> On top of this work, I added an 'mtd' U-Boot command to handle all sort
> of MTD devices. This should become the default command instead of having
> one per flash flavor ('sf', 'nand', 'spi-nand' ?).
> 
> The series has been tested on an Ocelot board PCB123 (VSC7514),
> featuring a Macronix SPI NAND chip.
> 
> TL;DR: the series contains:
> - A few patches from Linux to resynchronize some areas of the MTD layer.
> - Various fixes and re-organization of the MTD subsystem.
> - The introduction of the SPI-mem interface.
> - The addition of the generic SPI-NAND driver (and its bindings).
> - Several SPI NAND chip drivers (Macronix, Micron, Winbond).
> - A new 'mtd' command.
> 
> Any comments on the code, the organization and the respect of U-Boot
> driver model will be welcome.
> 
> Thanks,
> Miquèl
> 

Since this version, I tried to use UBI on top of this work and it
failed because of the following:
- mtdpart driver was not actually compiled because a Kconfig symbol was
  missing
- mtdpart.c could not compile anyway because of an error when
  backporting the patch from Linux (did not see it because of the above
  mistake).
- SPI-NAND devices were not supported in mtdparts.
- The mtd command did not create MTD devices for each desired partition.

This is now fixed/done in the next version that I am about to send.

One can try it with:

> setenv mtdparts mtdparts=spi-nand0:1m(foo),-(bar)
> setenv mtdids spi-nand0=spi-nand0
> ubi part bar

Thanks,
Miquèl


More information about the U-Boot mailing list