
menu "Partition Types"

config PARTITIONS
	bool "Enable Partition Labels (disklabels) support"
	default y
	select SPL_SPRINTF if SPL
	select TPL_SPRINTF if TPL
	select SPL_STRTO if SPL
	select TPL_STRTO if TPL
	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
	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 || 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 MIPS || TEGRA

config SPL_ISO_PARTITION
	bool "Enable ISO partition table for SPL"
	depends on SPL && PARTITIONS

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
	select LIB_UUID
	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_NUMBERS
	int "Number of the EFI partition entries"
	depends on EFI_PARTITION
	default 56 if ARCH_SUNXI
	default 128
	help
	  Specify the number of partition entries in the GPT. This is
	  meant to allow less than the standard specifies for devices
	  that might need to place their first-stage bootloader in the
	  middle of a regular GPT.

	  If unsure, leave at 128 entries, which is the standard
	  number.

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
	select LIB_UUID
	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

config CUSTOMIZED_FIRST_PARTITION_OFFSET
        bool "Enable config customized first partition offset in EFI partition table"
        depends on PARTITIONS && EFI_PARTITION
        default y
        help
          Active eMMC calibration in EFI GPT partition table.
          Reserve a space between partition entry & data.

          GPT format of original uboot-2019: (one LBA is 512 bytes)
		  LBA    0    (  0    -  511   bytes) : Protect MBR
		  LBA    1    ( 511   -  1023  bytes) : Primary GPT header
		  LBA 2  - 33 ( 1024  -  17407 bytes) : Primary GPT entries
		  LBA 34 - .. ( 17408 -   ..   bytes) : GPT partitions data

          We can reserve a space between Primary GPT entries & GPT partitions data.
          After reserved a space, new GPT format of uboot-2019 is as follows:
                  LBA    0    (  0    -  511   bytes) : Protect MBR
                  LBA    1    ( 511   -  1023  bytes) : Primary GPT header
                  LBA 2  - 33 ( 1024  -  17407 bytes) : Primary GPT entries
		  LBA 34 - .. ( 17408 -   ..   bytes) : Reserve for eMMC calibration
                  LBA .. - @@ (  ..   -   @@   bytes) : GPT partitions data

config FIRST_PARTITION_OFFSET
        hex "Offset (in bytes) of the first EFI partition"
        depends on CUSTOMIZED_FIRST_PARTITION_OFFSET
        default 0x200000
        help
          Specify an earliest location (in bytes) where the first partition data
          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 0x200000 (which will locate the first partition data at 2M).

          So, new GPT format of uboot-2019 is as follows: (one LBA is 512 bytes)
                  LBA      0      (    0    -    511   bytes) : Protect MBR
                  LBA      1      (   511   -   1023   bytes) : Primary GPT header
                  LBA  2   - 33   (  1024   -   17407  bytes) : Primary GPT entries
                  LBA  34  - 4095 (  17408  -  2097151 bytes) : Reserve for eMMC calibration
                  LBA 4096 - ..   ( 2097152 -    ..    bytes) : GPT partitions data

endmenu
