[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] sparc64: Add blocklist GPT support for SPARC
From: |
Eric Snowberg |
Subject: |
Re: [PATCH v2] sparc64: Add blocklist GPT support for SPARC |
Date: |
Mon, 9 Oct 2017 08:42:04 -0600 |
> On Oct 9, 2017, at 5:57 AM, Daniel Kiper <address@hidden> wrote:
>
> On Fri, Oct 06, 2017 at 02:58:30PM -0600, Eric Snowberg wrote:
>>> On Oct 6, 2017, at 8:04 AM, Daniel Kiper <address@hidden> wrote:
>>> On Thu, May 11, 2017 at 06:25:24PM -0700, Eric Snowberg wrote:
>>>> Add block-list GPT support for SPARC. The OBP "load" and "boot" methods
>>>> are partition aware and neither command can see the partition table. Also
>>>> neither command can address the entire physical disk. When the install
>>>> happens, grub generates the block-list entries based on the beginning of
>>>> the
>>>> physical disk, not the beginning of the parition. This patch fixes the
>>>> block-list entries so they match what OBP expects during boot for a GPT
>>>> disk.
>>>>
>>>> T5 and above now supports GPT as well as VTOC.
>>>>
>>>> This patch has been tested on T5-2 and newer SPARC systems.
>>>>
>>>> Signed-off-by: Eric Snowberg <address@hidden>
>>>> ---
>>>> Changes in v2:
>>>> Do all GPT offset calculations in setup
>>>> ---
>>>> util/setup.c | 26 +++++++++++++++++++++++---
>>>> 1 files changed, 23 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/util/setup.c b/util/setup.c
>>>> index 8aa5a39..8036307 100644
>>>> --- a/util/setup.c
>>>> +++ b/util/setup.c
>>>> @@ -138,6 +138,9 @@ struct blocklists
>>>> #ifdef GRUB_SETUP_BIOS
>>>> grub_uint16_t current_segment;
>>>> #endif
>>>> +#ifdef GRUB_SETUP_SPARC64
>>>> + grub_uint64_t gpt_offset;
>>>> +#endif
>>>
>>> This does not seem to be used below???
>>
>> After looking into this further, I don???t see a problem...
>
> Sorry, it is a problem. It declares the gpt_offset variable hereā¦
No, it is not declaring a variable here. It is adding a member to a structure,
the same way x86 does with current_segment.
>
>>>> grub_uint16_t last_length;
>>>> grub_disk_addr_t first_sector;
>>>> };
>>>> @@ -151,6 +154,10 @@ save_blocklists (grub_disk_addr_t sector, unsigned
>>>> offset, unsigned length,
>>>> struct grub_boot_blocklist *prev = bl->block + 1;
>>>> grub_uint64_t seclen;
>>>>
>>>> +#ifdef GRUB_SETUP_SPARC64
>>>> + sector -= bl->gpt_offset;
>>
>> It is used here
>
> ...and you reference here and below struct member using the same name.
> So, it is different thing. Hence, we do not need declaration above.
>
> Daniel
>
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/grub-devel