[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] sparc64: Add blocklist GPT support for SPARC
From: |
Daniel Kiper |
Subject: |
Re: [PATCH v2] sparc64: Add blocklist GPT support for SPARC |
Date: |
Mon, 9 Oct 2017 13:57:42 +0200 |
User-agent: |
Mutt/1.3.28i |
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...
> >> 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