Message ID | 20200205121005.25878-1-oliver.graute@kococonnector.com |
---|---|
State | New |
Headers | show |
Series | [v1] imx: imx8qm: enable relocation of fdt and initrd | expand |
On Wed, Feb 05, 2020 at 03:51:42PM +0000, Oliver Graute wrote: > Remove 'fdt_high' and 'initrd_high' environment variables (set to 0xFFFFFFFF) > from default environment which prevents relocation of FDT and initrd. > > Signed-off-by: Oliver Graute <oliver.graute at kococonnector.com> > Cc: Stefano Babic <sbabic at denx.de> > Cc: Fabio Estevam <festevam at gmail.com> > Cc: Peng Fan <peng.fan at nxp.com> > Cc: Simon Glass <sjg at chromium.org> > Cc: Ye Li <ye.li at nxp.com> > Cc: uboot-imx <uboot-imx at nxp.com> > --- > include/configs/imx8qm_rom7720.h | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/include/configs/imx8qm_rom7720.h b/include/configs/imx8qm_rom7720.h > index 865863eb7c..8beb65e96b 100644 > --- a/include/configs/imx8qm_rom7720.h > +++ b/include/configs/imx8qm_rom7720.h > @@ -63,11 +63,9 @@ > "panel=NULL\0" \ > "console=ttyLP0\0" \ > "fdt_addr=0x83000000\0" \ > - "fdt_high=0xffffffffffffffff\0" \ > "boot_fdt=try\0" \ > "fdt_file=imx8qm-rom7720-a1.dtb\0" \ > "initrd_addr=0x83800000\0" \ > - "initrd_high=0xffffffffffffffff\0" \ > "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ > "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \ > "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ Is bootm_size or CONFIG_SYS_BOOTMAPSZ already being set somewhere for these platforms? In Linux, Documentation/arm64/booting.rst does describe limitations on where FDT/initrd can reside in memory so we need to make sure they're obeyed. That's best done by using bootm_size in environment or CONFIG_SYS_BOOTMAPSZ at build time to ensure alignment and non-overlap within those limits and not "don't move anything ever" as fdt_high/initrd_high=0xff... does. Thanks!
On 05/02/20, Tom Rini wrote: > On Wed, Feb 05, 2020 at 03:51:42PM +0000, Oliver Graute wrote: > > > Remove 'fdt_high' and 'initrd_high' environment variables (set to 0xFFFFFFFF) > > from default environment which prevents relocation of FDT and initrd. > > > > Signed-off-by: Oliver Graute <oliver.graute at kococonnector.com> > > Cc: Stefano Babic <sbabic at denx.de> > > Cc: Fabio Estevam <festevam at gmail.com> > > Cc: Peng Fan <peng.fan at nxp.com> > > Cc: Simon Glass <sjg at chromium.org> > > Cc: Ye Li <ye.li at nxp.com> > > Cc: uboot-imx <uboot-imx at nxp.com> > > --- > > include/configs/imx8qm_rom7720.h | 2 -- > > 1 file changed, 2 deletions(-) > > > > diff --git a/include/configs/imx8qm_rom7720.h b/include/configs/imx8qm_rom7720.h > > index 865863eb7c..8beb65e96b 100644 > > --- a/include/configs/imx8qm_rom7720.h > > +++ b/include/configs/imx8qm_rom7720.h > > @@ -63,11 +63,9 @@ > > "panel=NULL\0" \ > > "console=ttyLP0\0" \ > > "fdt_addr=0x83000000\0" \ > > - "fdt_high=0xffffffffffffffff\0" \ > > "boot_fdt=try\0" \ > > "fdt_file=imx8qm-rom7720-a1.dtb\0" \ > > "initrd_addr=0x83800000\0" \ > > - "initrd_high=0xffffffffffffffff\0" \ > > "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ > > "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \ > > "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ > > Is bootm_size or CONFIG_SYS_BOOTMAPSZ already being set somewhere for > these platforms? In Linux, Documentation/arm64/booting.rst does > describe limitations on where FDT/initrd can reside in memory so we need > to make sure they're obeyed. That's best done by using bootm_size in > environment or CONFIG_SYS_BOOTMAPSZ at build time to ensure alignment > and non-overlap within those limits and not "don't move anything ever" > as fdt_high/initrd_high=0xff... does. Thanks! No currently not. Because I do not know the exact value I have to set for CONFIG_SYS_BOOTMAPSZ here. How do I find that out for my board? Best Regards, Oliver
On Fri, Feb 07, 2020 at 11:46:11AM +0100, Oliver Graute wrote: > On 05/02/20, Tom Rini wrote: > > On Wed, Feb 05, 2020 at 03:51:42PM +0000, Oliver Graute wrote: > > > > > Remove 'fdt_high' and 'initrd_high' environment variables (set to 0xFFFFFFFF) > > > from default environment which prevents relocation of FDT and initrd. > > > > > > Signed-off-by: Oliver Graute <oliver.graute at kococonnector.com> > > > Cc: Stefano Babic <sbabic at denx.de> > > > Cc: Fabio Estevam <festevam at gmail.com> > > > Cc: Peng Fan <peng.fan at nxp.com> > > > Cc: Simon Glass <sjg at chromium.org> > > > Cc: Ye Li <ye.li at nxp.com> > > > Cc: uboot-imx <uboot-imx at nxp.com> > > > --- > > > include/configs/imx8qm_rom7720.h | 2 -- > > > 1 file changed, 2 deletions(-) > > > > > > diff --git a/include/configs/imx8qm_rom7720.h b/include/configs/imx8qm_rom7720.h > > > index 865863eb7c..8beb65e96b 100644 > > > --- a/include/configs/imx8qm_rom7720.h > > > +++ b/include/configs/imx8qm_rom7720.h > > > @@ -63,11 +63,9 @@ > > > "panel=NULL\0" \ > > > "console=ttyLP0\0" \ > > > "fdt_addr=0x83000000\0" \ > > > - "fdt_high=0xffffffffffffffff\0" \ > > > "boot_fdt=try\0" \ > > > "fdt_file=imx8qm-rom7720-a1.dtb\0" \ > > > "initrd_addr=0x83800000\0" \ > > > - "initrd_high=0xffffffffffffffff\0" \ > > > "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ > > > "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \ > > > "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ > > > > Is bootm_size or CONFIG_SYS_BOOTMAPSZ already being set somewhere for > > these platforms? In Linux, Documentation/arm64/booting.rst does > > describe limitations on where FDT/initrd can reside in memory so we need > > to make sure they're obeyed. That's best done by using bootm_size in > > environment or CONFIG_SYS_BOOTMAPSZ at build time to ensure alignment > > and non-overlap within those limits and not "don't move anything ever" > > as fdt_high/initrd_high=0xff... does. Thanks! > > No currently not. Because I do not know the exact value I have to set > for CONFIG_SYS_BOOTMAPSZ here. How do I find that out for my board? To quote the README: - CONFIG_SYS_BOOTMAPSZ: Maximum size of memory mapped by the startup code of the Linux kernel; all data that must be processed by the Linux kernel (bd_info, boot arguments, FDT blob if used) must be put below this limit, unless "bootm_low" environment variable is defined and non-zero. In such case all data for the Linux kernel must be between "bootm_low" and "bootm_low" + CONFIG_SYS_BOOTMAPSZ. The environment variable "bootm_mapsize" will override the value of CONFIG_SYS_BOOTMAPSZ. If CONFIG_SYS_BOOTMAPSZ is undefined, then the value in "bootm_size" will be used instead. And you want to use that plus what Linux's Documentation/arm64/booting.rst says with respect to locations of the various items, and the smallest amount of DRAM that will be used by a platform running this config. Hope this helps!
diff --git a/include/configs/imx8qm_rom7720.h b/include/configs/imx8qm_rom7720.h index 865863eb7c..8beb65e96b 100644 --- a/include/configs/imx8qm_rom7720.h +++ b/include/configs/imx8qm_rom7720.h @@ -63,11 +63,9 @@ "panel=NULL\0" \ "console=ttyLP0\0" \ "fdt_addr=0x83000000\0" \ - "fdt_high=0xffffffffffffffff\0" \ "boot_fdt=try\0" \ "fdt_file=imx8qm-rom7720-a1.dtb\0" \ "initrd_addr=0x83800000\0" \ - "initrd_high=0xffffffffffffffff\0" \ "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \ "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \
Remove 'fdt_high' and 'initrd_high' environment variables (set to 0xFFFFFFFF) from default environment which prevents relocation of FDT and initrd. Signed-off-by: Oliver Graute <oliver.graute at kococonnector.com> Cc: Stefano Babic <sbabic at denx.de> Cc: Fabio Estevam <festevam at gmail.com> Cc: Peng Fan <peng.fan at nxp.com> Cc: Simon Glass <sjg at chromium.org> Cc: Ye Li <ye.li at nxp.com> Cc: uboot-imx <uboot-imx at nxp.com> --- include/configs/imx8qm_rom7720.h | 2 -- 1 file changed, 2 deletions(-)