GNU bug report logs -
#15548
[PATCH RESEND] GPT: add support for PReP GUID
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 15548 in the body.
You can then email your comments to 15548 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-parted <at> gnu.org
:
bug#15548
; Package
parted
.
(Mon, 07 Oct 2013 06:23:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Avik Sil <aviksil <at> linux.vnet.ibm.com>
:
New bug report received and forwarded. Copy sent to
bug-parted <at> gnu.org
.
(Mon, 07 Oct 2013 06:23:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Daniel Battaiola Kreling <dbkreling <at> br.ibm.com>
PReP (PowerPC Reference Platform) boot partition is the first partition used in
PowerPC platform for containing the bootable kernel or bootloader. The firmware
searches for this partition and jumps to it for booting. So far no GUID was
specified for this partition type and hence booting from GPT disk was not
supported on this platform. A new GUID 9e1a2d38-c612-4316-aa26-8b49521e5a8b for
PReP partition is proposed to be included in GPT.
---
libparted/labels/gpt.c | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
index 490de70..ee8148d 100644
--- a/libparted/labels/gpt.c
+++ b/libparted/labels/gpt.c
@@ -146,6 +146,10 @@ typedef struct
((efi_guid_t) { PED_CPU_TO_LE32 (0x5265636F), PED_CPU_TO_LE16 (0x7665), \
PED_CPU_TO_LE16 (0x11AA), 0xaa, 0x11, \
{ 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC }})
+#define PARTITION_PREP_GUID \
+ ((efi_guid_t) { PED_CPU_TO_LE32 (0x9e1a2d38), PED_CPU_TO_LE16 (0xc612), \
+ PED_CPU_TO_LE16 (0x4316), 0xaa, 0x26, \
+ { 0x8b, 0x49, 0x52, 0x1e, 0x5a, 0x8b }})
struct __attribute__ ((packed)) _GuidPartitionTableHeader_t
{
@@ -288,6 +292,7 @@ typedef struct _GPTPartitionData
int atvrecv;
int msftrecv;
int legacy_boot;
+ int prep;
} GPTPartitionData;
static PedDiskType gpt_disk_type;
@@ -796,6 +801,7 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)
= gpt_part_data->msftdata
= gpt_part_data->msftrecv
= gpt_part_data->legacy_boot
+ = gpt_part_data->prep
= gpt_part_data->bios_grub = gpt_part_data->atvrecv = 0;
if (pte->Attributes.RequiredToFunction & 0x1)
@@ -821,6 +827,8 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)
gpt_part_data->msftrecv = 1;
else if (!guid_cmp (gpt_part_data->type, PARTITION_APPLE_TV_RECOVERY_GUID))
gpt_part_data->atvrecv = 1;
+ else if (!guid_cmp (gpt_part_data->type, PARTITION_PREP_GUID))
+ gpt_part_data->prep = 1;
return part;
}
@@ -1338,6 +1346,7 @@ gpt_partition_new (const PedDisk *disk,
gpt_part_data->msftrecv = 0;
gpt_part_data->atvrecv = 0;
gpt_part_data->legacy_boot = 0;
+ gpt_part_data->prep = 0;
uuid_generate ((unsigned char *) &gpt_part_data->uuid);
swap_uuid_and_efi_guid ((unsigned char *) (&gpt_part_data->uuid));
memset (gpt_part_data->name, 0, sizeof gpt_part_data->name);
@@ -1411,6 +1420,11 @@ gpt_partition_set_system (PedPartition *part,
gpt_part_data->type = PARTITION_RAID_GUID;
return 1;
}
+ if (gpt_part_data->prep)
+ {
+ gpt_part_data->type = PARTITION_PREP_GUID;
+ return 1;
+ }
if (gpt_part_data->boot)
{
gpt_part_data->type = PARTITION_SYSTEM_GUID;
@@ -1587,6 +1601,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
= gpt_part_data->msftres
= gpt_part_data->msftdata
= gpt_part_data->msftrecv
+ = gpt_part_data->prep
= gpt_part_data->atvrecv = 0;
return gpt_partition_set_system (part, part->fs_type);
case PED_PARTITION_BIOS_GRUB:
@@ -1599,6 +1614,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
= gpt_part_data->msftres
= gpt_part_data->msftdata
= gpt_part_data->msftrecv
+ = gpt_part_data->prep
= gpt_part_data->atvrecv = 0;
return gpt_partition_set_system (part, part->fs_type);
case PED_PARTITION_RAID:
@@ -1611,6 +1627,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
= gpt_part_data->msftres
= gpt_part_data->msftdata
= gpt_part_data->msftrecv
+ = gpt_part_data->prep
= gpt_part_data->atvrecv = 0;
return gpt_partition_set_system (part, part->fs_type);
case PED_PARTITION_LVM:
@@ -1623,6 +1640,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
= gpt_part_data->msftres
= gpt_part_data->msftdata
= gpt_part_data->msftrecv
+ = gpt_part_data->prep
= gpt_part_data->atvrecv = 0;
return gpt_partition_set_system (part, part->fs_type);
case PED_PARTITION_HPSERVICE:
@@ -1635,6 +1653,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
= gpt_part_data->msftres
= gpt_part_data->msftdata
= gpt_part_data->msftrecv
+ = gpt_part_data->prep
= gpt_part_data->atvrecv = 0;
return gpt_partition_set_system (part, part->fs_type);
case PED_PARTITION_MSFT_RESERVED:
@@ -1647,6 +1666,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
= gpt_part_data->hp_service
= gpt_part_data->msftdata
= gpt_part_data->msftrecv
+ = gpt_part_data->prep
= gpt_part_data->atvrecv = 0;
return gpt_partition_set_system (part, part->fs_type);
case PED_PARTITION_MSFT_DATA:
@@ -1659,6 +1679,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
= gpt_part_data->hp_service
= gpt_part_data->msftres
= gpt_part_data->msftrecv
+ = gpt_part_data->prep
= gpt_part_data->atvrecv = 0;
gpt_part_data->msftdata = 1;
} else {
@@ -1675,6 +1696,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
= gpt_part_data->hp_service
= gpt_part_data->msftdata
= gpt_part_data->msftres
+ = gpt_part_data->prep
= gpt_part_data->atvrecv = 0;
return gpt_partition_set_system (part, part->fs_type);
case PED_PARTITION_APPLE_TV_RECOVERY:
@@ -1687,8 +1709,21 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
= gpt_part_data->hp_service
= gpt_part_data->msftres
= gpt_part_data->msftdata
+ = gpt_part_data->prep
= gpt_part_data->msftrecv = 0;
return gpt_partition_set_system (part, part->fs_type);
+ case PED_PARTITION_PREP:
+ gpt_part_data->prep = state;
+ if (state)
+ gpt_part_data->boot
+ = gpt_part_data->raid
+ = gpt_part_data->lvm
+ = gpt_part_data->bios_grub
+ = gpt_part_data->hp_service
+ = gpt_part_data->msftres
+ = gpt_part_data->msftrecv
+ = gpt_part_data->atvrecv = 0;
+ return gpt_partition_set_system (part, part->fs_type);
case PED_PARTITION_HIDDEN:
gpt_part_data->hidden = state;
return 1;
@@ -1735,6 +1770,8 @@ gpt_partition_get_flag (const PedPartition *part, PedPartitionFlag flag)
return gpt_part_data->hidden;
case PED_PARTITION_LEGACY_BOOT:
return gpt_part_data->legacy_boot;
+ case PED_PARTITION_PREP:
+ return gpt_part_data->prep;
case PED_PARTITION_SWAP:
case PED_PARTITION_LBA:
case PED_PARTITION_ROOT:
@@ -1761,6 +1798,7 @@ gpt_partition_is_flag_available (const PedPartition *part,
case PED_PARTITION_APPLE_TV_RECOVERY:
case PED_PARTITION_HIDDEN:
case PED_PARTITION_LEGACY_BOOT:
+ case PED_PARTITION_PREP:
return 1;
case PED_PARTITION_SWAP:
case PED_PARTITION_ROOT:
--
1.7.11.7
Information forwarded
to
bug-parted <at> gnu.org
:
bug#15548
; Package
parted
.
(Mon, 07 Oct 2013 14:31:02 GMT)
Full text and
rfc822 format available.
Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 10/7/2013 2:21 AM, Avik Sil wrote:
> From: Daniel Battaiola Kreling <dbkreling <at> br.ibm.com>
>
> PReP (PowerPC Reference Platform) boot partition is the first
> partition used in PowerPC platform for containing the bootable
> kernel or bootloader. The firmware searches for this partition and
> jumps to it for booting. So far no GUID was specified for this
> partition type and hence booting from GPT disk was not supported on
> this platform. A new GUID 9e1a2d38-c612-4316-aa26-8b49521e5a8b for
> PReP partition is proposed to be included in GPT.
Doesn't this old platform only understand the apple partition map, and
not gpt? Picking a guid out of the air isn't going to teach the
firmware to look for it.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (MingW32)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQEcBAEBAgAGBQJSUsViAAoJEJrBOlT6nu758P4H/2MU62HZPrEGb7RJMYcsec3T
wDsMn1sJClyMVirDbAXqt5GUuO2Of8RnYzOj3HJWc8xa1lYJwyXlmoR/4KqJ0s8V
WDjH8ldGO4mYZMxRXE2KdBAfUOPRE5cTAeWC2gzPWcKtZmIs/dmMc8/N6Es8FBwL
fLgYr727JdHwVwwK+cXdwk+bb5P5oQHZ9uueeyvzT3yi4DZUe0nKHHOW4GhsBHWj
cYqRxZ9sgHHerOQE2UY+MC1CLDMQrM21lO37sopn9XHRb6W+pe+ceHX55ZGYZ54X
gU16J4zS4mNTTgsrep5jeicv/7B+bDOkoej8ACG8CbbkwNaAiJSzcEH/Q+FLuno=
=4dPe
-----END PGP SIGNATURE-----
Information forwarded
to
bug-parted <at> gnu.org
:
bug#15548
; Package
parted
.
(Tue, 08 Oct 2013 01:14:02 GMT)
Full text and
rfc822 format available.
Message #11 received at submit <at> debbugs.gnu.org (full text, mbox):
On 10/07/2013 07:59 PM, Phillip Susi wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 10/7/2013 2:21 AM, Avik Sil wrote:
>> From: Daniel Battaiola Kreling <dbkreling <at> br.ibm.com>
>>
>> PReP (PowerPC Reference Platform) boot partition is the first
>> partition used in PowerPC platform for containing the bootable
>> kernel or bootloader. The firmware searches for this partition and
>> jumps to it for booting. So far no GUID was specified for this
>> partition type and hence booting from GPT disk was not supported on
>> this platform. A new GUID 9e1a2d38-c612-4316-aa26-8b49521e5a8b for
>> PReP partition is proposed to be included in GPT.
>
> Doesn't this old platform only understand the apple partition map, and
> not gpt? Picking a guid out of the air isn't going to teach the
> firmware to look for it.
>
Yes, and firmware support for it is also being added. For example, in
guest firmware SLOF, this support has already been added [1]. And GRUB2
also now supports PReP GUID [2].
Regards,
Avik
[1]
https://github.com/aik/SLOF/commit/0ee161892795db614d3bb9c59fc999cc79898b11
[2] http://bzr.savannah.gnu.org/lh/grub/trunk/grub/revision/5190
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.17 (MingW32)
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iQEcBAEBAgAGBQJSUsViAAoJEJrBOlT6nu758P4H/2MU62HZPrEGb7RJMYcsec3T
> wDsMn1sJClyMVirDbAXqt5GUuO2Of8RnYzOj3HJWc8xa1lYJwyXlmoR/4KqJ0s8V
> WDjH8ldGO4mYZMxRXE2KdBAfUOPRE5cTAeWC2gzPWcKtZmIs/dmMc8/N6Es8FBwL
> fLgYr727JdHwVwwK+cXdwk+bb5P5oQHZ9uueeyvzT3yi4DZUe0nKHHOW4GhsBHWj
> cYqRxZ9sgHHerOQE2UY+MC1CLDMQrM21lO37sopn9XHRb6W+pe+ceHX55ZGYZ54X
> gU16J4zS4mNTTgsrep5jeicv/7B+bDOkoej8ACG8CbbkwNaAiJSzcEH/Q+FLuno=
> =4dPe
> -----END PGP SIGNATURE-----
>
Information forwarded
to
bug-parted <at> gnu.org
:
bug#15548
; Package
parted
.
(Tue, 08 Oct 2013 02:11:02 GMT)
Full text and
rfc822 format available.
Message #14 received at submit <at> debbugs.gnu.org (full text, mbox):
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
On 10/07/2013 09:12 PM, Avik Sil wrote:
> On 10/07/2013 07:59 PM, Phillip Susi wrote: Doesn't this old
> platform only understand the apple partition map, and not gpt?
> Picking a guid out of the air isn't going to teach the firmware to
> look for it.
>
>> Yes, and firmware support for it is also being added. For
>> example, in guest firmware SLOF, this support has already been
>> added [1]. And GRUB2 also now supports PReP GUID [2].
Oh, I thought this was an obsolete platform not in production any
more? I suppose if it is still being updated then the patch looks
good to me.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQEcBAEBCgAGBQJSU2l3AAoJEJrBOlT6nu75ZUkIAJmp5I8FZJNdSqJDT7/eR0yt
40tjzlM6hpsb4rQ07811dmpOiJEX1Lpq8dGlaDMEuC8wlYyZLBDBDjcLJH08okoG
HV5X2mQHCIkftj9eZ4S0RZFumyC8xSbAluNZE9X2iY/2qFkgxbmv9suPPTRVwfVL
Kxwlrz172h4Pmt9ZB5UIitVk+qgowOUQRgLJFR6XRr8LNUtCan6mLWJouVM5zDQO
c6ZHn7U0gIn5LAEKHRGShS+Dij0KvdjzxydCPQn1t1zNUBWeJix2V/egs6mR5jou
jMnFPmxwpSEYvAHApdnZn1XDsGmoRibakyp28tbtD8CNx+FHj+fUR088gIxuyIk=
=q7Jo
-----END PGP SIGNATURE-----
Information forwarded
to
bug-parted <at> gnu.org
:
bug#15548
; Package
parted
.
(Tue, 05 Nov 2013 12:30:02 GMT)
Full text and
rfc822 format available.
Message #17 received at submit <at> debbugs.gnu.org (full text, mbox):
On 10/08/2013 07:40 AM, Phillip Susi wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> On 10/07/2013 09:12 PM, Avik Sil wrote:
>> On 10/07/2013 07:59 PM, Phillip Susi wrote: Doesn't this old
>> platform only understand the apple partition map, and not gpt?
>> Picking a guid out of the air isn't going to teach the firmware to
>> look for it.
>>
>>> Yes, and firmware support for it is also being added. For
>>> example, in guest firmware SLOF, this support has already been
>>> added [1]. And GRUB2 also now supports PReP GUID [2].
>
> Oh, I thought this was an obsolete platform not in production any
> more? I suppose if it is still being updated then the patch looks
> good to me.
Can you please add this patch to upstream? It has not been added yet.
Regards,
Avik
Merged 15528 15548.
Request was from
Phillip Susi <psusi <at> ubuntu.com>
to
control <at> debbugs.gnu.org
.
(Sun, 24 Nov 2013 01:14:02 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sun, 22 Dec 2013 12:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 11 years and 186 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.