g_part,mkimg: Add additional GPT partition types
Add the hifive-fsbl, hifive-bbl, and xbootldr aliases to mkimg(1). Add the xbootldr alias to geom(4), and thus gpart(8). The "hifive" partition types are defined and used by various RISC-V SBCs for locating firmware. "xbootldr", or the Extended Boot Loader Partition is defined here: https://uapi-group.org/specifications/specs/boot_loader_specification/ Reviewed by: emaste, markj, mhorne MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56784
This commit is contained in:
committed by
Mitchell Horne
parent
351fad05e0
commit
dab8138e13
@@ -135,6 +135,7 @@ struct g_part_alias_list {
|
||||
{ "vmware-vmfs", G_PART_ALIAS_VMFS },
|
||||
{ "vmware-vmkdiag", G_PART_ALIAS_VMKDIAG },
|
||||
{ "vmware-vsanhdr", G_PART_ALIAS_VMVSANHDR },
|
||||
{ "xbootldr", G_PART_ALIAS_XBOOTLDR },
|
||||
};
|
||||
|
||||
SYSCTL_DECL(_kern_geom);
|
||||
|
||||
@@ -108,6 +108,8 @@ enum g_part_alias {
|
||||
G_PART_ALIAS_VMKDIAG, /* A VMware vmkDiagnostic partition entry */
|
||||
G_PART_ALIAS_VMRESERVED, /* A VMware reserved partition entry */
|
||||
G_PART_ALIAS_VMVSANHDR, /* A VMware vSAN header partition entry */
|
||||
G_PART_ALIAS_XBOOTLDR, /* A Systemd/Linux extended boot partition
|
||||
Also used by visionfive2 as part of the boot sequence */
|
||||
/* Keep the following last */
|
||||
G_PART_ALIAS_COUNT
|
||||
};
|
||||
|
||||
@@ -230,6 +230,7 @@ static struct uuid gpt_uuid_vmfs = GPT_ENT_TYPE_VMFS;
|
||||
static struct uuid gpt_uuid_vmkdiag = GPT_ENT_TYPE_VMKDIAG;
|
||||
static struct uuid gpt_uuid_vmreserved = GPT_ENT_TYPE_VMRESERVED;
|
||||
static struct uuid gpt_uuid_vmvsanhdr = GPT_ENT_TYPE_VMVSANHDR;
|
||||
static struct uuid gpt_uuid_xbootldr = GPT_ENT_TYPE_XBOOTLDR;
|
||||
|
||||
static struct g_part_uuid_alias {
|
||||
struct uuid *uuid;
|
||||
@@ -302,6 +303,7 @@ static struct g_part_uuid_alias {
|
||||
{ &gpt_uuid_vmkdiag, G_PART_ALIAS_VMKDIAG, 0 },
|
||||
{ &gpt_uuid_vmreserved, G_PART_ALIAS_VMRESERVED, 0 },
|
||||
{ &gpt_uuid_vmvsanhdr, G_PART_ALIAS_VMVSANHDR, 0 },
|
||||
{ &gpt_uuid_xbootldr, G_PART_ALIAS_XBOOTLDR, 0 },
|
||||
{ NULL, 0, 0 }
|
||||
};
|
||||
|
||||
|
||||
@@ -261,6 +261,8 @@ CTASSERT(sizeof(struct gpt_ent) == 128);
|
||||
|
||||
#define GPT_ENT_TYPE_U_BOOT_ENV \
|
||||
{0x3de21764,0x95bd,0x54bd,0xa5,0xc3,{0x4a,0xbe,0x78,0x6f,0x38,0xa8}}
|
||||
#define GPT_ENT_TYPE_XBOOTLDR \
|
||||
{0xbc13c2ff,0x59e6,0x4262,0xa3,0x52,{0xb2,0x75,0xfd,0x6f,0x71,0x72}}
|
||||
|
||||
/*
|
||||
* Boot partition used by GRUB 2.
|
||||
|
||||
@@ -52,6 +52,9 @@ static mkimg_uuid_t gpt_uuid_freebsd_zfs = GPT_ENT_TYPE_FREEBSD_ZFS;
|
||||
static mkimg_uuid_t gpt_uuid_mbr = GPT_ENT_TYPE_MBR;
|
||||
static mkimg_uuid_t gpt_uuid_ms_basic_data = GPT_ENT_TYPE_MS_BASIC_DATA;
|
||||
static mkimg_uuid_t gpt_uuid_prep_boot = GPT_ENT_TYPE_PREP_BOOT;
|
||||
static mkimg_uuid_t gpt_uuid_hifive_bbl = GPT_ENT_TYPE_HIFIVE_BBL;
|
||||
static mkimg_uuid_t gpt_uuid_xbootldr = GPT_ENT_TYPE_XBOOTLDR;
|
||||
static mkimg_uuid_t gpt_uuid_hifive_fsbl = GPT_ENT_TYPE_HIFIVE_FSBL;
|
||||
|
||||
static struct mkimg_alias gpt_aliases[] = {
|
||||
{ ALIAS_EFI, ALIAS_PTR2TYPE(&gpt_uuid_efi) },
|
||||
@@ -65,6 +68,9 @@ static struct mkimg_alias gpt_aliases[] = {
|
||||
{ ALIAS_MBR, ALIAS_PTR2TYPE(&gpt_uuid_mbr) },
|
||||
{ ALIAS_NTFS, ALIAS_PTR2TYPE(&gpt_uuid_ms_basic_data) },
|
||||
{ ALIAS_PPCBOOT, ALIAS_PTR2TYPE(&gpt_uuid_prep_boot) },
|
||||
{ ALIAS_HIFIVE_BBL, ALIAS_PTR2TYPE(&gpt_uuid_hifive_bbl) },
|
||||
{ ALIAS_XBOOTLDR, ALIAS_PTR2TYPE(&gpt_uuid_xbootldr) },
|
||||
{ ALIAS_HIFIVE_FSBL, ALIAS_PTR2TYPE(&gpt_uuid_hifive_fsbl) },
|
||||
{ ALIAS_NONE, 0 } /* Keep last! */
|
||||
};
|
||||
|
||||
|
||||
@@ -58,6 +58,9 @@ static struct {
|
||||
{ "mbr", ALIAS_MBR },
|
||||
{ "ntfs", ALIAS_NTFS },
|
||||
{ "prepboot", ALIAS_PPCBOOT },
|
||||
{ "hifive-bbl", ALIAS_HIFIVE_BBL },
|
||||
{ "xbootldr", ALIAS_XBOOTLDR },
|
||||
{ "hifive-fsbl", ALIAS_HIFIVE_FSBL },
|
||||
{ NULL, ALIAS_NONE } /* Keep last! */
|
||||
};
|
||||
|
||||
|
||||
@@ -47,6 +47,9 @@ enum alias {
|
||||
ALIAS_MBR,
|
||||
ALIAS_NTFS,
|
||||
ALIAS_PPCBOOT,
|
||||
ALIAS_HIFIVE_BBL,
|
||||
ALIAS_XBOOTLDR,
|
||||
ALIAS_HIFIVE_FSBL,
|
||||
/* end */
|
||||
ALIAS_COUNT /* Keep last! */
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user