[U-Boot] [PATCH 5/6] cmd: mtdparts: support runtime generated mtdparts
Ladislav Michl
ladis at linux-mips.org
Sun Jun 5 20:23:36 CEST 2016
On Sun, Jun 05, 2016 at 07:58:46PM +0200, Michal Suchanek wrote:
> Hello,
>
> On 5 June 2016 at 19:43, Ladislav Michl <ladis at linux-mips.org> wrote:
> > Some CPUs contains boot ROM code capable reading first few blocks
> > (where SPL resides) of NAND flash and executing it. It is wise to
> > create separate partition here for SPL. As block size depends on
> > NAND chip used, we could either use worst case (biggest) partition
> > size or base its size on actual block size. This patch adds support
> > for the latter option.
> >
>
> There is similar problem on sunxi.
>
> Given this flash is non-removable and has many pins you are unlikely
> going to encounter its content on any system that was not loaded with
> u-boot.
>
> Still Linux can only produce fixed size mtdparts. You can prepend
> perfectly sized mtdparts for u-boot but until Linux is taught to
> follow that with its own partitions without gap you still need to use
> the worst case scenario for the start of the Linux partitions.
I didn't get 'fixed size mtdparts' part. Linux supports cmdline
partition layout passing since the dawn of mtd subsystem (I used it more
than a decade ago for netstar board). Finally that's a reason mtdparts
implementation in U-Boot is done this way. Both U-Boot and Linux (can)
see the same partition layout as it is passed either via kernel cmdline
or device tree blob.
> On sunxi the range of supported block sizes and the size of the
> SPL+U-BOOT are not large so this is generally not worth the effort.
>
> If support for this is attempted Linux should be probably taught to
> get mtdparts in pages and eraseblocks and then the default mtdparts
> can be in those.
>
> If on the other hand you generate the fixed layout for Linux
> partitions on the fly and this patch changes how the Linux partitions
> are generated it can happen that the Linux partitions are at different
> place with different versions of u-boot giving potentially disastrous
> results.
Unless I'm missing something, partition layout is passed to the kernel
from the bootloader. So if kernel ends up with a different layout than
a bootloader, there's a bug somewhere and that should be fixed.
Regards,
ladis
More information about the U-Boot
mailing list