From cfdaf4caa250a4bc3de41f47147715e8a81be5a2 Mon Sep 17 00:00:00 2001 From: Patrick Delaunay Date: Tue, 17 Nov 2015 11:36:52 +0100 Subject: part:efi: add bootable parameter in gpt command The optional parameter bootable is added in gpt command to set the partition attribute flag "Legacy BIOS bootable" This flag is used in extlinux and so in with distro to select the boot partition where is located the configuration file (please check out doc/README.distro for details). With this parameter, U-Boot can be used to create the boot partition needed for device using distro. example of use: setenv partitions "name=u-boot,size=60MiB;name=boot,size=60Mib,bootable;\ name=rootfs,size=0" > gpt write mmc 0 $partitions > part list mmc 0 Partition Map for MMC device 0 -- Partition Type: EFI Part Start LBA End LBA Name Attributes Type GUID Partition GUID 1 0x00000022 0x0001e021 "u-boot" attrs: 0x0000000000000000 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: cceb0b18-39cb-d547-9db7-03b405fa77d4 2 0x0001e022 0x0003c021 "boot" attrs: 0x0000000000000004 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: d4981a2b-0478-544e-9607-7fd3c651068d 3 0x0003c022 0x003a9fde "rootfs" attrs: 0x0000000000000000 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: 6d6c9a36-e919-264d-a9ee-bd00379686c7 > part list mmc 0 -bootable devplist > printenv devplist devplist=2 Then the distro scripts will search extlinux in partition 2 and not in the first partition. Signed-off-by: Patrick Delaunay --- doc/README.gpt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'doc/README.gpt') diff --git a/doc/README.gpt b/doc/README.gpt index db439f9f28e..a6f6de6a0f5 100644 --- a/doc/README.gpt +++ b/doc/README.gpt @@ -142,6 +142,10 @@ of the Primary. Attribute flags: Bit 0 - System partition + Bit 1 - Hide from EFI + Bit 2 - Legacy BIOS bootable + Bit 48-63 - Defined and used by the individual partition type + For Basic data partition : Bit 60 - Read-only Bit 62 - Hidden Bit 63 - Not mount @@ -161,11 +165,21 @@ To restore GUID partition table one needs to: The fields 'name' and 'size' are mandatory for every partition. The field 'start' is optional. + If field 'size' of the last partition is 0, the partiton is extended + up to the end of the device. + The fields 'uuid' and 'uuid_disk' are optional if CONFIG_RANDOM_UUID is enabled. A random uuid will be used if omitted or they point to an empty/ non-existent environment variable. The environment variable will be set to the generated UUID. + The field 'bootable' is optional, it is used to mark the GPT partition + bootable (set attribute flags "Legacy BIOS bootable"). + "name=u-boot,size=60MiB;name=boot,size=60Mib,bootable;name=rootfs,size=0" + It can be used to locate bootable disks with command + "part list -bootable ", + please check out doc/README.distro for use. + 2. Define 'CONFIG_EFI_PARTITION' and 'CONFIG_CMD_GPT' 3. From u-boot prompt type: -- cgit v1.2.3