[U-Boot] [PATCH 3/4] sunxi: Add default partition scheme

Maxime Ripard maxime.ripard at free-electrons.com
Thu Nov 16 11:21:13 UTC 2017


On Thu, Nov 16, 2017 at 10:30:38AM +0000, Andre Przywara wrote:
> Hi,
> 
> On 15/11/17 21:03, Alexander Graf wrote:
> > 
> > 
> > On 15.11.17 11:11, Maxime Ripard wrote:
> >> The partitions variable is especially useful to create a partition table
> >> from U-Boot, either directly from the U-Boot shell, or through flashing
> >> tools like fastboot and its oem format command.
> >>
> >> This is especially useful on devices with an eMMC you can't take out to
> >> flash from another system, and booting a Linux system first to flash our
> >> system then is not really practical.
> >>
> >> Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
> >> ---
> >>  include/configs/sunxi-common.h | 7 +++++++
> >>  1 file changed, 7 insertions(+)
> >>
> >> diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
> >> index 4391a8cbc824..11da6ccfbf54 100644
> >> --- a/include/configs/sunxi-common.h
> >> +++ b/include/configs/sunxi-common.h
> >> @@ -493,6 +493,12 @@ extern int soft_i2c_gpio_scl;
> >>  #define SUNXI_MTDPARTS_DEFAULT
> >>  #endif
> >>  
> >> +#define PARTS_DEFAULT \
> >> +	"name=loader1,start=8k,size=32k;" \
> >> +	"name=loader2,size=984k;" \
> >> +	"name=boot,size=128M,bootable;" \
> >> +	"name=system,size=-;"
> > 
> > Is there a particular reason you're creating a boot and system
> > partition? In a normal distro world, the distro installer will take care
> > of creating ESP + root + swap + whatever for you - and they (or the user
> > driving the installation) usually know best what they need :)
> 
> But do we actually care about this?

I do.

> If I understand this correctly, these are default settings for
> U-Boot's "mtdparts default" command, which honestly I didn't even
> know existed so far.

No, this has nothing to do with MTD. It's a default GPT partitioning
scheme. And only when you want to create the table from U-Boot, it
will not mangle with any pre-existing partition table if there is any
(unless you tell U-Boot to overwrite it, of course).

> So in a distribution scenario I wouldn't expect somebody to actually use
> this. Instead you boot from a (possibly unpartitioned) SD card with just
> U-Boot on it or from SPI flash, then launch an installer from somewhere
> (PXE, USB drive) and let it do its job. No U-Boot partition involved.
> And even if you use mtdpart, you can always override these default
> settings on the command line.

Like I was telling Alexander, that makes a number of assumptions, the
two most obvious one being that you have an installer and that you
want to use it, both with reasonable reasons on why they wouldn't be
true.

More tailored fit distros like ELBE, yocto or Buildroot will not have
an installer in the first place but an image.

And even if you have an installer for the distro you want to use, if
you ever go to production, you will not use it since the time spent to
flash a pre-filled image compared to running the installer is
significantly lower. And time is money :)

Just like plugging / unplugging microSD card isn't really realistic in
that scenario.

> Does mtdparts even use partition tables (MBR/GPT)? mtd sounds quite
> Android-y/embedded to me (passing partition information via command line).
> 
> So apart from that I think it's good to have a default FAT/ESP
> partition, also for storing the environment.

What is the typical size of the files you usually put in there? My
actual question being is 128MB enough, way too big or too small? The
environment is just 128kB big at the moment, so it looks wayyyyy to
big for me, but I have no idea what is usually stored in an ESP
partition.

> It's debatable whether we need a system partition defined at this stage.
> Can't this just left be unpartitioned, to be actually populated later?

This would break the cases I talked about earlier.

> In a MBR/GPT scenario I would expect a big partition covering the whole
> device causes headache later on.

What kind of headaches?

Thanks!
Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20171116/c070aeba/attachment.sig>


More information about the U-Boot mailing list