All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arm: Move initrd upper to leave more space for kernel
@ 2019-01-29  8:09 Guillaume GARDET
  2019-02-01 10:46 ` Daniel Kiper
  0 siblings, 1 reply; 4+ messages in thread
From: Guillaume GARDET @ 2019-01-29  8:09 UTC (permalink / raw)
  To: grub-devel; +Cc: Guillaume GARDET

From: Guillaume GARDET <guillaume.gardet@arm.com>

This patch allows to have bigger kernels.
If the kernel grows, then it will overwrite the initrd when it is extracted.

Signed-off-by: Guillaume GARDET <guillaume.gardet@arm.com>

---
 grub-core/loader/arm/linux.c | 2 +-
 include/grub/arm/linux.h     | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c
index 67ed79359..51684914c 100644
--- a/grub-core/loader/arm/linux.c
+++ b/grub-core/loader/arm/linux.c
@@ -48,7 +48,7 @@ static const void *current_fdt;
 typedef void (*kernel_entry_t) (int, unsigned long, void *);
 
 #define LINUX_PHYS_OFFSET        (0x00008000)
-#define LINUX_INITRD_PHYS_OFFSET (LINUX_PHYS_OFFSET + 0x02000000)
+#define LINUX_INITRD_PHYS_OFFSET (LINUX_PHYS_OFFSET + 0x03000000)
 #define LINUX_FDT_PHYS_OFFSET    (LINUX_INITRD_PHYS_OFFSET - 0x10000)
 
 static grub_size_t
diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h
index 712ba17b9..d0b24d474 100644
--- a/include/grub/arm/linux.h
+++ b/include/grub/arm/linux.h
@@ -42,7 +42,7 @@ struct linux_arm_kernel_header {
 #if defined GRUB_MACHINE_UBOOT
 # include <grub/uboot/uboot.h>
 # define LINUX_ADDRESS        (start_of_ram + 0x8000)
-# define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000)
+# define LINUX_INITRD_ADDRESS (start_of_ram + 0x03000000)
 # define LINUX_FDT_ADDRESS    (LINUX_INITRD_ADDRESS - 0x10000)
 # define grub_arm_firmware_get_boot_data grub_uboot_get_boot_data
 # define grub_arm_firmware_get_machine_type grub_uboot_get_machine_type
@@ -50,7 +50,7 @@ struct linux_arm_kernel_header {
 #include <grub/fdtbus.h>
 #include <grub/arm/coreboot/kernel.h>
 # define LINUX_ADDRESS        (start_of_ram + 0x8000)
-# define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000)
+# define LINUX_INITRD_ADDRESS (start_of_ram + 0x03000000)
 # define LINUX_FDT_ADDRESS    (LINUX_INITRD_ADDRESS - 0x10000)
 static inline const void *
 grub_arm_firmware_get_boot_data (void)
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] arm: Move initrd upper to leave more space for kernel
  2019-01-29  8:09 [PATCH] arm: Move initrd upper to leave more space for kernel Guillaume GARDET
@ 2019-02-01 10:46 ` Daniel Kiper
  2019-02-01 11:19   ` Leif Lindholm
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel Kiper @ 2019-02-01 10:46 UTC (permalink / raw)
  To: Guillaume GARDET; +Cc: grub-devel, agraf, leif.lindholm

On Tue, Jan 29, 2019 at 09:09:45AM +0100, Guillaume GARDET wrote:
> From: Guillaume GARDET <guillaume.gardet@arm.com>
>
> This patch allows to have bigger kernels.
> If the kernel grows, then it will overwrite the initrd when it is extracted.
>
> Signed-off-by: Guillaume GARDET <guillaume.gardet@arm.com>
>
> ---
>  grub-core/loader/arm/linux.c | 2 +-
>  include/grub/arm/linux.h     | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c
> index 67ed79359..51684914c 100644
> --- a/grub-core/loader/arm/linux.c
> +++ b/grub-core/loader/arm/linux.c
> @@ -48,7 +48,7 @@ static const void *current_fdt;
>  typedef void (*kernel_entry_t) (int, unsigned long, void *);
>
>  #define LINUX_PHYS_OFFSET        (0x00008000)
> -#define LINUX_INITRD_PHYS_OFFSET (LINUX_PHYS_OFFSET + 0x02000000)
> +#define LINUX_INITRD_PHYS_OFFSET (LINUX_PHYS_OFFSET + 0x03000000)
>  #define LINUX_FDT_PHYS_OFFSET    (LINUX_INITRD_PHYS_OFFSET - 0x10000)
>
>  static grub_size_t
> diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h
> index 712ba17b9..d0b24d474 100644
> --- a/include/grub/arm/linux.h
> +++ b/include/grub/arm/linux.h
> @@ -42,7 +42,7 @@ struct linux_arm_kernel_header {
>  #if defined GRUB_MACHINE_UBOOT
>  # include <grub/uboot/uboot.h>
>  # define LINUX_ADDRESS        (start_of_ram + 0x8000)
> -# define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000)
> +# define LINUX_INITRD_ADDRESS (start_of_ram + 0x03000000)
>  # define LINUX_FDT_ADDRESS    (LINUX_INITRD_ADDRESS - 0x10000)
>  # define grub_arm_firmware_get_boot_data grub_uboot_get_boot_data
>  # define grub_arm_firmware_get_machine_type grub_uboot_get_machine_type
> @@ -50,7 +50,7 @@ struct linux_arm_kernel_header {
>  #include <grub/fdtbus.h>
>  #include <grub/arm/coreboot/kernel.h>
>  # define LINUX_ADDRESS        (start_of_ram + 0x8000)
> -# define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000)
> +# define LINUX_INITRD_ADDRESS (start_of_ram + 0x03000000)
>  # define LINUX_FDT_ADDRESS    (LINUX_INITRD_ADDRESS - 0x10000)
>  static inline const void *
>  grub_arm_firmware_get_boot_data (void)

LGTM, however, I would like to hear Alex's and/or Leif's (CC-ed) opinion
about theses changes.

Daniel


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] arm: Move initrd upper to leave more space for kernel
  2019-02-01 10:46 ` Daniel Kiper
@ 2019-02-01 11:19   ` Leif Lindholm
  2019-02-01 11:36     ` Alexander Graf
  0 siblings, 1 reply; 4+ messages in thread
From: Leif Lindholm @ 2019-02-01 11:19 UTC (permalink / raw)
  To: Daniel Kiper; +Cc: Guillaume GARDET, grub-devel, agraf

On Fri, Feb 01, 2019 at 11:46:14AM +0100, Daniel Kiper wrote:
> > diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h
> > index 712ba17b9..d0b24d474 100644
> > --- a/include/grub/arm/linux.h
> > +++ b/include/grub/arm/linux.h
> > @@ -42,7 +42,7 @@ struct linux_arm_kernel_header {
> >  #if defined GRUB_MACHINE_UBOOT
> >  # include <grub/uboot/uboot.h>
> >  # define LINUX_ADDRESS        (start_of_ram + 0x8000)
> > -# define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000)
> > +# define LINUX_INITRD_ADDRESS (start_of_ram + 0x03000000)
> >  # define LINUX_FDT_ADDRESS    (LINUX_INITRD_ADDRESS - 0x10000)
> >  # define grub_arm_firmware_get_boot_data grub_uboot_get_boot_data
> >  # define grub_arm_firmware_get_machine_type grub_uboot_get_machine_type
> > @@ -50,7 +50,7 @@ struct linux_arm_kernel_header {
> >  #include <grub/fdtbus.h>
> >  #include <grub/arm/coreboot/kernel.h>
> >  # define LINUX_ADDRESS        (start_of_ram + 0x8000)
> > -# define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000)
> > +# define LINUX_INITRD_ADDRESS (start_of_ram + 0x03000000)
> >  # define LINUX_FDT_ADDRESS    (LINUX_INITRD_ADDRESS - 0x10000)
> >  static inline const void *
> >  grub_arm_firmware_get_boot_data (void)
> 
> LGTM, however, I would like to hear Alex's and/or Leif's (CC-ed) opinion
> about theses changes.

I don't see an issue with it. (Only platforms likely to be affected
would be ones with very little RAM and large initrds.)

However, I would like to point out that U-Boot builds with the UEFI
interface enabled can use the arm-efi platform instead, and would then
not be suffering from this issue to start with.

/
    Leif


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] arm: Move initrd upper to leave more space for kernel
  2019-02-01 11:19   ` Leif Lindholm
@ 2019-02-01 11:36     ` Alexander Graf
  0 siblings, 0 replies; 4+ messages in thread
From: Alexander Graf @ 2019-02-01 11:36 UTC (permalink / raw)
  To: Leif Lindholm; +Cc: Daniel Kiper, Guillaume GARDET, grub-devel



> Am 01.02.2019 um 12:19 schrieb Leif Lindholm <leif.lindholm@linaro.org>:
> 
> On Fri, Feb 01, 2019 at 11:46:14AM +0100, Daniel Kiper wrote:
>>> diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h
>>> index 712ba17b9..d0b24d474 100644
>>> --- a/include/grub/arm/linux.h
>>> +++ b/include/grub/arm/linux.h
>>> @@ -42,7 +42,7 @@ struct linux_arm_kernel_header {
>>> #if defined GRUB_MACHINE_UBOOT
>>> # include <grub/uboot/uboot.h>
>>> # define LINUX_ADDRESS        (start_of_ram + 0x8000)
>>> -# define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000)
>>> +# define LINUX_INITRD_ADDRESS (start_of_ram + 0x03000000)
>>> # define LINUX_FDT_ADDRESS    (LINUX_INITRD_ADDRESS - 0x10000)
>>> # define grub_arm_firmware_get_boot_data grub_uboot_get_boot_data
>>> # define grub_arm_firmware_get_machine_type grub_uboot_get_machine_type
>>> @@ -50,7 +50,7 @@ struct linux_arm_kernel_header {
>>> #include <grub/fdtbus.h>
>>> #include <grub/arm/coreboot/kernel.h>
>>> # define LINUX_ADDRESS        (start_of_ram + 0x8000)
>>> -# define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000)
>>> +# define LINUX_INITRD_ADDRESS (start_of_ram + 0x03000000)
>>> # define LINUX_FDT_ADDRESS    (LINUX_INITRD_ADDRESS - 0x10000)
>>> static inline const void *
>>> grub_arm_firmware_get_boot_data (void)
>> 
>> LGTM, however, I would like to hear Alex's and/or Leif's (CC-ed) opinion
>> about theses changes.

Heh, I suggested it :).

> 
> I don't see an issue with it. (Only platforms likely to be affected
> would be ones with very little RAM and large initrds.)
> 
> However, I would like to point out that U-Boot builds with the UEFI
> interface enabled can use the arm-efi platform instead, and would then
> not be suffering from this issue to start with.

We are actually booting with atm-efi, but then have grub boot using the legacy protocol atm. The plan is to move to a native efi boot path further down the road.

Either way:

Acked-by: Alexander Graf <agraf@suse.de>


Alex




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-02-01 11:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-29  8:09 [PATCH] arm: Move initrd upper to leave more space for kernel Guillaume GARDET
2019-02-01 10:46 ` Daniel Kiper
2019-02-01 11:19   ` Leif Lindholm
2019-02-01 11:36     ` Alexander Graf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.