			  GPT boot protocol

There are two ways to boot a GPT-formatted disk on a BIOS system.
Hybrid booting, and the new GPT-only booting protocol originally
proposed by the author, and later adopted by the T13 committee in
slightly modified form.


	*** Hybrid booting ***

Hybrid booting uses a standard MBR, and has bootable ("active")
partitions present, as partitions, in the GPT PMBR sector.  This means
the PMBR, instead of containing only one "protective" partition (type
EE), may contain up to three partitions: a protective partition (EE)
*before* the active partition, the active partition, and a protective
partition (EE) *after* the active partition.  The active partition is
limited to the first 2^32 sectors (2 TB) of the disk.

All partitions, including the active partition, should have GPT
partition entries.  Thus, changing which partition is active does NOT
change the GPT partition table.

This is the only known way to boot Microsoft operating systems from a
GPT disk with BIOS firmware.


	*** New protocol ***

This defines the T13-approved protocol for GPT partitions with BIOS
firmware.  It maintains backwards compatibility to the extent
possible.  It is implemented by the file mbr/gptmbr.bin.

The (P)MBR format is the normal PMBR specified in the UEFI
documentation, with the first 440 bytes used for the boot code.  The
partition to be booted is marked by setting bit 2 in the GPT Partition
Entry Attributes field (offset 48); this bit is reserved by the UEFI
Forum for "Legacy BIOS Bootable".


    -> The handover protocol

The PMBR boot code loads the first sector of the bootable partition,
and passes in DL=<disk number>, ES:DI=<pointer to $PnP>, sets EAX to
0x54504721 ("!GPT") and points DS:SI to a structure of the following
form:

	Offset	Size	Contents
	---------------------------------------------------------
	  0	  1	0x80 (this is a bootable partition)
	  1	  3	CHS of partition (using INT 13h geometry)
	  4	  1	0xED (partition type: synthetic)
	  5	  3	CHS of partition end
	  8	  4	Partition start LBA
	 12	  4	Partition end LBA
	 16	  4	Length of the GPT entry
	 20	varies	GPT partition entry

The CHS information is optional; gptmbr.bin currently does *NOT*
calculate them, and just leaves them as zero.

Bytes 0-15 matches the standard MBR handover (DS:SI points to the
partition entry), except that the information is provided
synthetically.  The MBR-compatible fields are directly usable if they
are < 2 TB, otherwise these fields should contain 0xFFFFFFFF and the
OS will need to understand the GPT partition entry which follows the
MBR one.  The "!GPT" magic number in EAX and the 0xED partition type
also informs the OS that the GPT partition information is present.

Syslinux 4.00 and later fully implements this protocol.
