u-boot/disk/Kconfig
Philipp Tomsich 02e43537b3 part_efi: support padding between the GPT header and partition entries
Some architectures require their SPL loader at a fixed address within
the first 16KB of the disk. To avoid an overlap with the partition
entries of the EFI partition table, the first safe offset (in bytes,
from the start of the device) for the entries can be set through
CONFIG_EFI_PARTITION_ENTRIES_OFF (via Kconfig)

When formatting a device with an EFI partition table, we may need to
leave a gap between the GPT header (always in LBA 1) and the partition
entries. The GPT header already contains a field to specify the
on-disk location, which has so far always been set to LBA 2. With this
change, a configurable offset will be translated into a LBA address
indicating where to put the entries.

Now also allows an override via device-tree using a config-node (see
doc/device-tree-bindings/config.txt for documentation).

Tested (exporting an internal MMC formatted with this) against Linux,
MacOS X and Windows.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
[trini: __maybe_unused on config_offset to avoid warning]
Signed-off-by: Tom Rini <trini@konsulko.com>
2017-03-20 18:04:18 -04:00

121 lines
3.6 KiB
Text

menu "Partition Types"
config PARTITIONS
bool "Enable Partition Labels (disklabels) support"
default y
help
Partition Labels (disklabels) Supported:
Zero or more of the following:
- CONFIG_MAC_PARTITION Apple's MacOS partition table.
- CONFIG_DOS_PARTITION MS Dos partition table, traditional on the
Intel architecture, USB sticks, etc.
- CONFIG_ISO_PARTITION ISO partition table, used on CDROM etc.
- CONFIG_EFI_PARTITION GPT partition table, common when EFI is the
bootloader. Note 2TB partition limit; see
disk/part_efi.c
- CONFIG_MTD_PARTITIONS Memory Technology Device partition table.
If IDE or SCSI support is enabled (CONFIG_CMD_IDE or CONFIG_SCSI)
you must configure support for at least one non-MTD partition type
as well.
config MAC_PARTITION
bool "Enable Apple's MacOS partition table"
depends on PARTITIONS
default y if SPARC
help
Say Y here if you would like to use device under U-Boot which
were partitioned on a Macintosh.
config SPL_MAC_PARTITION
bool "Enable Apple's MacOS partition table for SPL"
depends on SPL && PARTITIONS
default y if MAC_PARTITION
config DOS_PARTITION
bool "Enable MS Dos partition table"
depends on PARTITIONS
default y if DISTRO_DEFAULTS
default y if x86 || SPARC || CMD_FAT || USB_STORAGE
help
traditional on the Intel architecture, USB sticks, etc.
config SPL_DOS_PARTITION
bool "Enable MS Dos partition table for SPL"
depends on SPL && PARTITIONS
default y if DOS_PARTITION
config ISO_PARTITION
bool "Enable ISO partition table"
depends on PARTITIONS
default y if DISTRO_DEFAULTS
default y if SPARC || MIPS || TEGRA
config SPL_ISO_PARTITION
bool "Enable ISO partition table for SPL"
depends on SPL && PARTITIONS
default y if ISO_PARTITION
config AMIGA_PARTITION
bool "Enable AMIGA partition table"
depends on PARTITIONS
help
Say Y here if you would like to use device under U-Boot which
were partitioned under AmigaOS.
config SPL_AMIGA_PARTITION
bool "Enable AMIGA partition table for SPL"
depends on SPL && PARTITIONS
default y if AMIGA_PARTITION
config EFI_PARTITION
bool "Enable EFI GPT partition table"
depends on PARTITIONS
default y if DISTRO_DEFAULTS
default y if TEGRA
help
Say Y here if you would like to use device under U-Boot which
were partitioned using EFI GPT.
common when EFI is the bootloader. Note 2TB partition limit;
see disk/part_efi.c
config EFI_PARTITION_ENTRIES_OFF
int "Offset (in bytes) of the EFI partition entries"
depends on EFI_PARTITION
default 0
help
Specify an earliest location (in bytes) where the partition
entries may be located. This is meant to allow "punching a
hole into a device" to create a gap for an SPL, its payload
and the U-Boot environment.
If unsure, leave at 0 (which will locate the partition
entries at the first possible LBA following the GPT header).
config SPL_EFI_PARTITION
bool "Enable EFI GPT partition table for SPL"
depends on SPL && PARTITIONS
default y if EFI_PARTITION
config PARTITION_UUIDS
bool "Enable support of UUID for partition"
depends on PARTITIONS
default y if DISTRO_DEFAULTS
default y if EFI_PARTITION
help
Activate the configuration of UUID for partition
config SPL_PARTITION_UUIDS
bool "Enable support of UUID for partition in SPL"
depends on SPL && PARTITIONS
default y if SPL_EFI_PARTITION
config PARTITION_TYPE_GUID
bool "Enable support of GUID for partition type"
depends on PARTITIONS
depends on EFI_PARTITION
help
Activate the configuration of GUID type
for EFI partition
endmenu