On Tue, 2025-04-22 at 15:07 +0200, Francesco Dolcini wrote: > External email : Please do not click links or open attachments until > you have verified the sender or the content. > > > On Tue, Apr 22, 2025 at 03:05:58PM +0200, Alexander Stein wrote: > > Am Dienstag, 22. April 2025, 12:37:32 CEST schrieb Francesco > > Dolcini: > > > On Thu, Feb 20, 2025 at 03:58:07PM +0100, Alexander Stein wrote: > > > > If there is an unallocated memory area before the last, filling > > > > parting > > > > the size calculation for MTD_SIZE_REMAINING does not take this > > > > hole > > > > into account. > > > > Fix this by calculating the remaining size just based on total > > > > size > > > > and partition offset. > > > > > > > > Signed-off-by: Alexander Stein <alexander.st...@ew.tq-group.com > > > > > > > > > > > This change introduced a regression on colibri imx7 and imx6ull. > > > > > > ``` > > > Booting from NAND... > > > Partition size must be a multiple of 2048 > > > Could not parse device nand0 > > > Failed parsing MTD partitions from mtdparts! > > > Partition ubi not found! > > > ``` > > > > > > Reverting commit 1ca97ee90392 ("mtd: mtdpart: Support > > > MTD_SIZE_REMAINING > > > with unallocated memory area") on top of current master fixes the > > > issue. > > > > > > Any suggestion? I have not looked at the code, I just did a git > > > bisect. > > > > How does your mtdparts look like? > > $ grep mtdparts configs/colibri_imx7_defconfig > CONFIG_MTDPARTS_DEFAULT="mtdparts=gpmi-nand:512k(mx7-bcb),1536k(u- > boot1)ro,1536k(u-boot2)ro,512k(u-boot-env),-(ubi)" >
I just reproduced this issue with a rather simple mtdparts: mtdparts=2048k(bl2),-(ubi) After printing some log, I beliebve this is caused by the mtd partition offset value: ``` spi-nand: spi_nand spi_nand@0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64 parent->writesize = 0x800 parent->size = 0x8000000 parts[0]: name = bl2, offset = 0xffffffffffffffff, size = 0x200000 parts[1]: name = ubi, offset = 0xffffffffffffffff, size = 0x8000001 Partition size must be a multiple of 2048 Could not parse device spi-nand0 Failed parsing MTD partitions from mtdparts! Partition ubi not found! ``` The mtd partition offset has not been updated when calculating the mtd partition size: ``` if (parts[idx].size == MTD_SIZE_REMAINING) parts[idx].size = parent->size - parts[idx].offset; ``` It's also easy to solve: calculate the offset before calculating the size