Hi, On Thu, Apr 04, 2024 at 11:23:47AM +0800, Chuanhong Guo wrote: > Hello! > > On Mon, Mar 25, 2024 at 10:46 PM Alexey Romanov > <avroma...@salutedevices.com> wrote: > > > > UBI block is virtual block device, which is an abstraction > > over MTD layer. Therefore it is logical to use it in combination > > with MTD drivers. > > > > Signed-off-by: Alexey Romanov <avroma...@salutedevices.com> > > --- > > drivers/mtd/nand/spi/core.c | 8 +++++++- > > 1 file changed, 7 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c > > index dd880adf31..c47f6c1b46 100644 > > --- a/drivers/mtd/nand/spi/core.c > > +++ b/drivers/mtd/nand/spi/core.c > > @@ -27,6 +27,7 @@ > > #include <watchdog.h> > > #include <spi.h> > > #include <spi-mem.h> > > +#include <ubi_uboot.h> > > #include <dm/device_compat.h> > > #include <dm/devres.h> > > #include <dm/uclass.h> > > @@ -1182,8 +1183,13 @@ static int spinand_bind(struct udevice *dev) > > { > > if (blk_enabled()) { > > struct spinand_plat *plat = dev_get_plat(dev); > > + int ret; > > + > > + ret = mtd_bind(dev, &plat->mtd); > > + if (ret) > > + return ret; > > > > - return mtd_bind(dev, &plat->mtd); > > + return ubi_bind(dev); > > Is this expecting the entire SPI-NAND covered by a single UBI partition?
Why? Nah. ubi_bind() just create block device and bind it to SPI-NAND device. When working with this block device user must specify, which SPI-NAND partition UBI is located on. > It's almost never this case on real hardware. For SPI-NAND booted > SoCs, the first few blocks always store the first stage bootloader > raw, because bootrom knows nothing about UBI. > > > } > > > > return 0; > > -- > > 2.34.1 > > > > > -- > Regards, > Chuanhong Guo -- Thank you, Alexey