[U-Boot] [PATCH 1/6] sniper: Move PXE file address to a viable location

This moves the PXE file address out of the bounds of the U-Boot image (which is loaded at 0x80100000).
This also moves the ramdisk address to a better-looking aligned location.
Signed-off-by: Paul Kocialkowski contact@paulk.fr --- include/configs/sniper.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/configs/sniper.h b/include/configs/sniper.h index 171a8c4..2598af1 100644 --- a/include/configs/sniper.h +++ b/include/configs/sniper.h @@ -243,8 +243,8 @@ "loadaddr=0x82000000\0" \ "fdt_addr_r=0x88000000\0" \ "fdtaddr=0x88000000\0" \ - "ramdisk_addr_r=0x88080000\0" \ - "pxefile_addr_r=0x80100000\0" \ + "ramdisk_addr_r=0x84000000\0" \ + "pxefile_addr_r=0x86000000\0" \ "scriptaddr=0x80000000\0" \ "bootm_size=0x10000000\0" \ "boot_mmc_dev=0\0" \

This moves the PXE file address out of the bounds of the U-Boot image (which is loaded at 0x80100000).
This also moves the ramdisk address to a better-looking aligned location.
Signed-off-by: Paul Kocialkowski contact@paulk.fr --- include/configs/kc1.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/configs/kc1.h b/include/configs/kc1.h index c2ac148..4eb6f85 100644 --- a/include/configs/kc1.h +++ b/include/configs/kc1.h @@ -226,8 +226,8 @@ "loadaddr=0x82000000\0" \ "fdt_addr_r=0x88000000\0" \ "fdtaddr=0x88000000\0" \ - "ramdisk_addr_r=0x88080000\0" \ - "pxefile_addr_r=0x80100000\0" \ + "ramdisk_addr_r=0x84000000\0" \ + "pxefile_addr_r=0x86000000\0" \ "scriptaddr=0x80000000\0" \ "bootm_size=0x10000000\0" \ "boot_mmc_dev=0\0" \

This makes the baudrate for the kernel command line explicit.
Signed-off-by: Paul Kocialkowski contact@paulk.fr --- include/configs/sniper.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/configs/sniper.h b/include/configs/sniper.h index 2598af1..b818696 100644 --- a/include/configs/sniper.h +++ b/include/configs/sniper.h @@ -252,7 +252,7 @@ "recovery_mmc_part=4\0" \ "fdtfile=omap3-sniper.dtb\0" \ "bootfile=/boot/extlinux/extlinux.conf\0" \ - "bootargs=console=ttyO2 vram=5M,0x9FA00000 omapfb.vram=0:5M\0" + "bootargs=console=ttyO2,115200 vram=5M,0x9FA00000 omapfb.vram=0:5M\0"
/* * ATAGs

On Sat, Mar 26, 2016 at 12:20:01PM +0100, Paul Kocialkowski wrote:
This makes the baudrate for the kernel command line explicit.
Signed-off-by: Paul Kocialkowski contact@paulk.fr
Reviewed-by: Tom Rini trini@konsulko.com

This makes the baudrate for the kernel command line explicit.
Signed-off-by: Paul Kocialkowski contact@paulk.fr --- include/configs/kc1.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/configs/kc1.h b/include/configs/kc1.h index 4eb6f85..1e6b037 100644 --- a/include/configs/kc1.h +++ b/include/configs/kc1.h @@ -233,7 +233,7 @@ "boot_mmc_dev=0\0" \ "kernel_mmc_part=7\0" \ "recovery_mmc_part=5\0" \ - "bootargs=mem=512M console=ttyO2\0" + "bootargs=console=ttyO2,115200 mem=512M\0"
/* * ATAGs

On Sat, Mar 26, 2016 at 12:20:02PM +0100, Paul Kocialkowski wrote:
This makes the baudrate for the kernel command line explicit.
Signed-off-by: Paul Kocialkowski contact@paulk.fr
Reviewed-by: Tom Rini trini@konsulko.com

Selecting CONFIG_OF_LIBFDT allows running recent mainline kernels.
Signed-off-by: Paul Kocialkowski contact@paulk.fr --- configs/kc1_defconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/configs/kc1_defconfig b/configs/kc1_defconfig index 1e5c918..4de0b34 100644 --- a/configs/kc1_defconfig +++ b/configs/kc1_defconfig @@ -12,3 +12,4 @@ CONFIG_CMD_GPIO=y CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_MUSB_GADGET=y +CONFIG_OF_LIBFDT=y

On Sat, Mar 26, 2016 at 12:20:03PM +0100, Paul Kocialkowski wrote:
Selecting CONFIG_OF_LIBFDT allows running recent mainline kernels.
Signed-off-by: Paul Kocialkowski contact@paulk.fr
Reviewed-by: Tom Rini trini@konsulko.com

This adds some environment variables for sysboot and devicetree.
Signed-off-by: Paul Kocialkowski contact@paulk.fr --- include/configs/kc1.h | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/include/configs/kc1.h b/include/configs/kc1.h index 1e6b037..e19fa12 100644 --- a/include/configs/kc1.h +++ b/include/configs/kc1.h @@ -233,6 +233,8 @@ "boot_mmc_dev=0\0" \ "kernel_mmc_part=7\0" \ "recovery_mmc_part=5\0" \ + "fdtfile=omap4-kc1.dtb\0" \ + "bootfile=/boot/extlinux/extlinux.conf\0" \ "bootargs=console=ttyO2,115200 mem=512M\0"
/*

On Sat, Mar 26, 2016 at 12:20:04PM +0100, Paul Kocialkowski wrote:
This adds some environment variables for sysboot and devicetree.
Signed-off-by: Paul Kocialkowski contact@paulk.fr
include/configs/kc1.h | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/include/configs/kc1.h b/include/configs/kc1.h index 1e6b037..e19fa12 100644 --- a/include/configs/kc1.h +++ b/include/configs/kc1.h @@ -233,6 +233,8 @@ "boot_mmc_dev=0\0" \ "kernel_mmc_part=7\0" \ "recovery_mmc_part=5\0" \
- "fdtfile=omap4-kc1.dtb\0" \
- "bootfile=/boot/extlinux/extlinux.conf\0" \ "bootargs=console=ttyO2,115200 mem=512M\0"
Maybe time to look in to config_distro_bootcmd too?

Le samedi 26 mars 2016 à 15:21 -0400, Tom Rini a écrit :
On Sat, Mar 26, 2016 at 12:20:04PM +0100, Paul Kocialkowski wrote:
This adds some environment variables for sysboot and devicetree.
Signed-off-by: Paul Kocialkowski contact@paulk.fr
include/configs/kc1.h | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/include/configs/kc1.h b/include/configs/kc1.h index 1e6b037..e19fa12 100644 --- a/include/configs/kc1.h +++ b/include/configs/kc1.h @@ -233,6 +233,8 @@ "boot_mmc_dev=0\0" \ "kernel_mmc_part=7\0" \ "recovery_mmc_part=5\0" \
- "fdtfile=omap4-kc1.dtb\0" \
- "bootfile=/boot/extlinux/extlinux.conf\0" \
"bootargs=console=ttyO2,115200 mem=512M\0"
Maybe time to look in to config_distro_bootcmd too?
Well, both sniper and kc1 are mobile devices that people will likely want to run Android on, so that's what I'm targetting as default.
At this point, there is no dt-enabled kernel capable of running Android for these devices, and mainline Linux is still a very early effort. Thus, I'm making those variables available to make it easier to hack on mainline Linux, but I don't want it to be the default (yet).

On Mon, Mar 28, 2016 at 01:55:15PM +0200, Paul Kocialkowski wrote:
Le samedi 26 mars 2016 à 15:21 -0400, Tom Rini a écrit :
On Sat, Mar 26, 2016 at 12:20:04PM +0100, Paul Kocialkowski wrote:
This adds some environment variables for sysboot and devicetree.
Signed-off-by: Paul Kocialkowski contact@paulk.fr
include/configs/kc1.h | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/include/configs/kc1.h b/include/configs/kc1.h index 1e6b037..e19fa12 100644 --- a/include/configs/kc1.h +++ b/include/configs/kc1.h @@ -233,6 +233,8 @@ "boot_mmc_dev=0\0" \ "kernel_mmc_part=7\0" \ "recovery_mmc_part=5\0" \
- "fdtfile=omap4-kc1.dtb\0" \
- "bootfile=/boot/extlinux/extlinux.conf\0" \
"bootargs=console=ttyO2,115200 mem=512M\0"
Maybe time to look in to config_distro_bootcmd too?
Well, both sniper and kc1 are mobile devices that people will likely want to run Android on, so that's what I'm targetting as default.
At this point, there is no dt-enabled kernel capable of running Android for these devices, and mainline Linux is still a very early effort. Thus, I'm making those variables available to make it easier to hack on mainline Linux, but I don't want it to be the default (yet).
OK, thanks.

On Sat, Mar 26, 2016 at 12:19:59PM +0100, Paul Kocialkowski wrote:
This moves the PXE file address out of the bounds of the U-Boot image (which is loaded at 0x80100000).
This also moves the ramdisk address to a better-looking aligned location.
Signed-off-by: Paul Kocialkowski contact@paulk.fr
include/configs/sniper.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/configs/sniper.h b/include/configs/sniper.h index 171a8c4..2598af1 100644 --- a/include/configs/sniper.h +++ b/include/configs/sniper.h @@ -243,8 +243,8 @@ "loadaddr=0x82000000\0" \ "fdt_addr_r=0x88000000\0" \ "fdtaddr=0x88000000\0" \
- "ramdisk_addr_r=0x88080000\0" \
- "pxefile_addr_r=0x80100000\0" \
- "ramdisk_addr_r=0x84000000\0" \
- "pxefile_addr_r=0x86000000\0" \ "scriptaddr=0x80000000\0" \ "bootm_size=0x10000000\0" \ "boot_mmc_dev=0\0" \
I strongly discourage these locations. Quoting myself from ti_armv7_common.h: /* * We setup defaults based on constraints from the Linux kernel, which should * also be safe elsewhere. We have the default load at 32MB into DDR (for * the kernel), FDT above 128MB (the maximum location for the end of the * kernel), and the ramdisk 512KB above that (allowing for hopefully never * seen large trees). We say all of this must be within the first 256MB * as that will normally be within the kernel lowmem and thus visible via * bootm_size and we only run on platforms with 256MB or more of memory. */
Now, have you actually run into a problem with overwriting U-Boot? Since U-Boot will run-time relocate, this shouldn't be a problem in practice? The minor games we play with locations here are due to Falcon Mode where the BSS in question here is the one for SPL and we don't want those two to conflict.

Le samedi 26 mars 2016 à 14:59 -0400, Tom Rini a écrit :
On Sat, Mar 26, 2016 at 12:19:59PM +0100, Paul Kocialkowski wrote:
This moves the PXE file address out of the bounds of the U-Boot image (which is loaded at 0x80100000).
This also moves the ramdisk address to a better-looking aligned location.
Signed-off-by: Paul Kocialkowski contact@paulk.fr
include/configs/sniper.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/configs/sniper.h b/include/configs/sniper.h index 171a8c4..2598af1 100644 --- a/include/configs/sniper.h +++ b/include/configs/sniper.h @@ -243,8 +243,8 @@ "loadaddr=0x82000000\0" \ "fdt_addr_r=0x88000000\0" \ "fdtaddr=0x88000000\0" \
- "ramdisk_addr_r=0x88080000\0" \
- "pxefile_addr_r=0x80100000\0" \
- "ramdisk_addr_r=0x84000000\0" \
- "pxefile_addr_r=0x86000000\0" \
"scriptaddr=0x80000000\0" \ "bootm_size=0x10000000\0" \ "boot_mmc_dev=0\0" \
I strongly discourage these locations. Quoting myself from ti_armv7_common.h: /* * We setup defaults based on constraints from the Linux kernel, which should * also be safe elsewhere. We have the default load at 32MB into DDR (for * the kernel), FDT above 128MB (the maximum location for the end of the * kernel), and the ramdisk 512KB above that (allowing for hopefully never * seen large trees). We say all of this must be within the first 256MB * as that will normally be within the kernel lowmem and thus visible via * bootm_size and we only run on platforms with 256MB or more of memory. */
Thanks for the clarification, I think the addresses make sense as they are then.
Now, have you actually run into a problem with overwriting U-Boot?
Actually, I had forgotten that U-Boot relocates. This address only caught my eye as being equal to CONFIG_SYS_TEXT_BASE when going through the header, but I didn't investigate enough.
There is indeed no run-time problem, thanks to relocation. I'll simply drop these patches.
Since U-Boot will run-time relocate, this shouldn't be a problem in practice? The minor games we play with locations here are due to Falcon Mode where the BSS in question here is the one for SPL and we don't want those two to conflict.
participants (2)
-
Paul Kocialkowski
-
Tom Rini