grub-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]