]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - doc/README.gpt
axs10x: Get rid of both I2C and EEPROM who used to use I2C
[people/ms/u-boot.git] / doc / README.gpt
index ec0156d8aa9b8073555bbe00f5836f4e0883fe1c..3fcd83557f99bee1ec60d62646b9bc3c99c49951 100644 (file)
@@ -31,7 +31,8 @@ More often UUID is displayed as 32 hexadecimal digits, in 5 groups,
 separated by hyphens, in the form 8-4-4-4-12 for a total of 36 characters
 (32 digits and 4 hyphens)
 
-For instance, GUID of Linux data partition: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
+For instance, GUID of Basic data partition: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
+and GUID of Linux filesystem data: 0FC63DAF-8483-4772-8E79-3D69D8477DE4
 
 Historically there are 5 methods to generate this number. The oldest one is
 combining machine's MAC address and timer (epoch) value.
@@ -141,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
@@ -157,17 +162,91 @@ To restore GUID partition table one needs to:
      "partitions=uuid_disk=${uuid_gpt_disk};name=${uboot_name},
        size=${uboot_size},uuid=${uboot_uuid};"
 
-   Fields 'name', 'size' and 'uuid' are mandatory for every partition.
+   The fields 'name' and 'size' are mandatory for every partition.
    The field 'start' is optional.
 
-   option: CONFIG_RANDOM_UUID
-   If any partition "UUID" no exists then it is randomly generated.
+   If field 'size' of the last partition is 0, the partition 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 <interface> <dev> -bootable <varname>",
+   please check out doc/README.distro for use.
 
 2. Define 'CONFIG_EFI_PARTITION' and 'CONFIG_CMD_GPT'
 
-2. From u-boot prompt type:
+3. From u-boot prompt type:
    gpt write mmc 0 $partitions
 
+Checking (validating) GPT partitions in U-Boot:
+===============================================
+
+Procedure is the same as above. The only change is at point 3.
+
+At u-boot prompt one needs to write:
+   gpt verify mmc 0 [$partitions]
+
+where [$partitions] is an optional parameter.
+
+When it is not provided, only basic checks based on CRC32 calculation for GPT
+header and PTEs are performed.
+When provided, additionally partition data - name, size and starting
+offset (last two in LBA) - are compared with data defined in '$partitions'
+environment variable.
+
+After running this command, return code is set to 0 if no errors found in
+on non-volatile medium stored GPT.
+
+Following line can be used to assess if GPT verification has succeed:
+
+U-BOOT> gpt verify mmc 0 $partitions
+U-BOOT> if test $? = 0; then echo "GPT OK"; else echo "GPT ERR"; fi
+
+
+Partition type GUID:
+====================
+
+For created partition, the used partition type GUID is
+PARTITION_BASIC_DATA_GUID (EBD0A0A2-B9E5-4433-87C0-68B6B72699C7).
+
+If you define 'CONFIG_PARTITION_TYPE_GUID', a optionnal parameter 'type'
+can specify a other partition type guid:
+
+     "partitions=uuid_disk=...;name=u-boot,size=60MiB,uuid=...;
+       name=kernel,size=60MiB,uuid=...,
+       type=0FC63DAF-8483-4772-8E79-3D69D8477DE4;"
+
+Some strings can be also used at the place of known GUID :
+       "system" = PARTITION_SYSTEM_GUID
+                  (C12A7328-F81F-11D2-BA4B-00A0C93EC93B)
+       "mbr"    = LEGACY_MBR_PARTITION_GUID
+                  (024DEE41-33E7-11D3-9D69-0008C781F39F)
+       "msft"   = PARTITION_MSFT_RESERVED_GUID
+                  (E3C9E316-0B5C-4DB8-817D-F92DF00215AE)
+       "data"   = PARTITION_BASIC_DATA_GUID
+                   (EBD0A0A2-B9E5-4433-87C0-68B6B72699C7)
+       "linux"  = PARTITION_LINUX_FILE_SYSTEM_DATA_GUID
+                  (0FC63DAF-8483-4772-8E79-3D69D8477DE4)
+       "raid"   = PARTITION_LINUX_RAID_GUID
+                  (A19D880F-05FC-4D3B-A006-743F0F84911E)
+       "swap"   = PARTITION_LINUX_SWAP_GUID
+                  (0657FD6D-A4AB-43C4-84E5-0933C84B4F4F)
+       "lvm"    = PARTITION_LINUX_LVM_GUID
+                  (E6D6D379-F507-44C2-A23C-238F2A3DF928)
+
+    "partitions=uuid_disk=...;name=u-boot,size=60MiB,uuid=...;
+       name=kernel,size=60MiB,uuid=...,type=linux;"
+
+They are also used to display the type of partition in "part list" command.
+
+
 Useful info:
 ============