diff mbox series

[1/1] RISC-V: load initrd wherever it fits into memory

Message ID 20210629134018.62859-1-xypron.glpk@gmx.de
State New
Headers show
Series [1/1] RISC-V: load initrd wherever it fits into memory | expand

Commit Message

Heinrich Schuchardt June 29, 2021, 1:40 p.m. UTC
Requiring that initrd is loaded below RAM start + 256 MiB led to failure
to boot SUSE Linux with GRUB on QEMU, cf.
https://lists.gnu.org/archive/html/grub-devel/2021-06/msg00037.html

Remove the constraint.

Reported-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
 arch/riscv/include/asm/efi.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--
2.30.2

Comments

Atish Patra July 2, 2021, 7:11 p.m. UTC | #1
On Wed, Jun 30, 2021 at 12:30 AM Ard Biesheuvel <ardb@kernel.org> wrote:
>

> On Wed, 30 Jun 2021 at 00:56, Atish Patra <atishp@atishpatra.org> wrote:

> >

> > On Tue, Jun 29, 2021 at 6:40 AM Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:

> > >

> > > Requiring that initrd is loaded below RAM start + 256 MiB led to failure

> > > to boot SUSE Linux with GRUB on QEMU, cf.

> > > https://lists.gnu.org/archive/html/grub-devel/2021-06/msg00037.html

> > >

> > > Remove the constraint.

> > >

> > > Reported-by: Andreas Schwab <schwab@linux-m68k.org>

> > > Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

> > > ---

> > >  arch/riscv/include/asm/efi.h | 4 ++--

> > >  1 file changed, 2 insertions(+), 2 deletions(-)

> > >

> > > diff --git a/arch/riscv/include/asm/efi.h b/arch/riscv/include/asm/efi.h

> > > index 7542282f1141..649ab513dc99 100644

> > > --- a/arch/riscv/include/asm/efi.h

> > > +++ b/arch/riscv/include/asm/efi.h

> > > @@ -33,10 +33,10 @@ static inline unsigned long efi_get_max_fdt_addr(unsigned long image_addr)

> > >

> > >  #define ARCH_EFI_IRQ_FLAGS_MASK (SR_IE | SR_SPIE)

> > >

> > > -/* Load initrd at enough distance from DRAM start */

> > > +/* Load initrd anywhere in system RAM */


Alex/Anup/Palmer:

As per my understanding initrd can be loaded in system RAM as long as
it doesn't overwrite the existing data (fdt/kernel image)
and respect reserved memory regions.

Let us know if we have any inherent memory location limitation for
initrd loading.


> > >  static inline unsigned long efi_get_max_initrd_addr(unsigned long image_addr)

> > >  {

> > > -       return image_addr + SZ_256M;

> > > +       return ULONG_MAX;

> > >  }

> > >

> > >  #define alloc_screen_info(x...)                (&screen_info)

> > > --

> > > 2.30.2

> > >

> >

> > LGTM

> >

> > Reviewed-by: Atish Patra <atish.patra@wdc.com>

> >

>

> Acked-by: Ard Biesheuvel <ardb@kernel.org>

>

> Please take this via the RISC-V tree.




--
Regards,
Atish
Andreas Schwab July 6, 2021, 7:07 p.m. UTC | #2
On Jun 29 2021, Heinrich Schuchardt wrote:

> Requiring that initrd is loaded below RAM start + 256 MiB led to failure

> to boot SUSE Linux with GRUB on QEMU, cf.

> https://lists.gnu.org/archive/html/grub-devel/2021-06/msg00037.html

>

> Remove the constraint.

>

> Reported-by: Andreas Schwab <schwab@linux-m68k.org>

> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>


With that patch the image in
http://download.opensuse.org/ports/riscv/tumbleweed/iso/ work again.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."
Atish Patra July 9, 2021, 5:14 p.m. UTC | #3
On Tue, Jul 6, 2021 at 12:07 PM Andreas Schwab <schwab@linux-m68k.org> wrote:
>

> On Jun 29 2021, Heinrich Schuchardt wrote:

>

> > Requiring that initrd is loaded below RAM start + 256 MiB led to failure

> > to boot SUSE Linux with GRUB on QEMU, cf.

> > https://lists.gnu.org/archive/html/grub-devel/2021-06/msg00037.html

> >

> > Remove the constraint.

> >

> > Reported-by: Andreas Schwab <schwab@linux-m68k.org>

> > Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

>

> With that patch the image in

> http://download.opensuse.org/ports/riscv/tumbleweed/iso/ work again.

>


Thanks.
@palmer: Can you take this one in this cycle ?

> Andreas.

>

> --

> Andreas Schwab, schwab@linux-m68k.org

> GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1

> "And now for something completely different."




-- 
Regards,
Atish
Heinrich Schuchardt July 20, 2021, 3 p.m. UTC | #4
On 7/9/21 7:14 PM, Atish Patra wrote:
> On Tue, Jul 6, 2021 at 12:07 PM Andreas Schwab <schwab@linux-m68k.org> wrote:

>>

>> On Jun 29 2021, Heinrich Schuchardt wrote:

>>

>>> Requiring that initrd is loaded below RAM start + 256 MiB led to failure

>>> to boot SUSE Linux with GRUB on QEMU, cf.

>>> https://lists.gnu.org/archive/html/grub-devel/2021-06/msg00037.html

>>>

>>> Remove the constraint.

>>>

>>> Reported-by: Andreas Schwab <schwab@linux-m68k.org>

>>> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

>>

>> With that patch the image in

>> http://download.opensuse.org/ports/riscv/tumbleweed/iso/ work again.

>>

>

> Thanks.

> @palmer: Can you take this one in this cycle ?


@Palmer, Paul, Albert
Ard suggested to move this patch through linux-riscv. Could you please
review the patch available at

https://lore.kernel.org/linux-riscv/20210629134018.62859-1-xypron.glpk@gmx.de/

The patch is necessary to boot on QEMU with GRUB with large initrd.

Best regards

Heinrich

>

>> Andreas.

>>

>> --

>> Andreas Schwab, schwab@linux-m68k.org

>> GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1

>> "And now for something completely different."

>

>

>
Palmer Dabbelt July 22, 2021, 6:09 a.m. UTC | #5
On Tue, 29 Jun 2021 06:40:18 PDT (-0700), xypron.glpk@gmx.de wrote:
> Requiring that initrd is loaded below RAM start + 256 MiB led to failure

> to boot SUSE Linux with GRUB on QEMU, cf.

> https://lists.gnu.org/archive/html/grub-devel/2021-06/msg00037.html

>

> Remove the constraint.

>

> Reported-by: Andreas Schwab <schwab@linux-m68k.org>

> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

> ---

>  arch/riscv/include/asm/efi.h | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

>

> diff --git a/arch/riscv/include/asm/efi.h b/arch/riscv/include/asm/efi.h

> index 7542282f1141..649ab513dc99 100644

> --- a/arch/riscv/include/asm/efi.h

> +++ b/arch/riscv/include/asm/efi.h

> @@ -33,10 +33,10 @@ static inline unsigned long efi_get_max_fdt_addr(unsigned long image_addr)

>

>  #define ARCH_EFI_IRQ_FLAGS_MASK (SR_IE | SR_SPIE)

>

> -/* Load initrd at enough distance from DRAM start */

> +/* Load initrd anywhere in system RAM */

>  static inline unsigned long efi_get_max_initrd_addr(unsigned long image_addr)

>  {

> -	return image_addr + SZ_256M;

> +	return ULONG_MAX;

>  }

>

>  #define alloc_screen_info(x...)		(&screen_info)


Thanks, this is on fixes.
diff mbox series

Patch

diff --git a/arch/riscv/include/asm/efi.h b/arch/riscv/include/asm/efi.h
index 7542282f1141..649ab513dc99 100644
--- a/arch/riscv/include/asm/efi.h
+++ b/arch/riscv/include/asm/efi.h
@@ -33,10 +33,10 @@  static inline unsigned long efi_get_max_fdt_addr(unsigned long image_addr)

 #define ARCH_EFI_IRQ_FLAGS_MASK (SR_IE | SR_SPIE)

-/* Load initrd at enough distance from DRAM start */
+/* Load initrd anywhere in system RAM */
 static inline unsigned long efi_get_max_initrd_addr(unsigned long image_addr)
 {
-	return image_addr + SZ_256M;
+	return ULONG_MAX;
 }

 #define alloc_screen_info(x...)		(&screen_info)