[U-Boot] [PATCH] x86: qemu: Fix non-working ramboot and nfsboot environment variables

With qemu-x86 starting to use config_distro_bootcmd, the pre-defined ramboot and nfsboot commands do not work any more. This is caused by undefined environment variable 'ramdiskaddr' that was previously set in CONFIG_EXTRA_ENV_SETTINGS but later CONFIG_EXTRA_ENV_SETTINGS was redefined for distro boot.
Update the x86 generic CONFIG_EXTRA_ENV_SETTINGS to consider distro boot, and remove the one in qemu-x86.h.
Signed-off-by: Bin Meng bmeng.cn@gmail.com ---
include/configs/qemu-x86.h | 10 ---------- include/configs/x86-common.h | 21 ++++++++++++++------- 2 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/include/configs/qemu-x86.h b/include/configs/qemu-x86.h index 097ed41..c557420 100644 --- a/include/configs/qemu-x86.h +++ b/include/configs/qemu-x86.h @@ -27,16 +27,6 @@
#define CONFIG_PREBOOT "pci enum"
-#undef CONFIG_EXTRA_ENV_SETTINGS -#define CONFIG_EXTRA_ENV_SETTINGS \ - CONFIG_STD_DEVICES_SETTINGS \ - "scriptaddr=0x7000000\0" \ - "kernel_addr_r=0x1000000\0" \ - "ramdisk_addr_r=0x4000000\0" \ - "consoledev=ttyS0\0" \ - CONFIG_OTHBOOTARGS \ - BOOTENV - #define CONFIG_SYS_MONITOR_LEN (1 << 20)
#define CONFIG_STD_DEVICES_SETTINGS "stdin=serial,i8042-kbd\0" \ diff --git a/include/configs/x86-common.h b/include/configs/x86-common.h index 7fcf76a..4227d93 100644 --- a/include/configs/x86-common.h +++ b/include/configs/x86-common.h @@ -106,30 +106,37 @@ #define CONFIG_OTHBOOTARGS "othbootargs=acpi=off\0" #endif
+#ifndef CONFIG_DISTRO_DEFAULTS +#define BOOTENV +#endif + #define CONFIG_EXTRA_ENV_SETTINGS \ CONFIG_STD_DEVICES_SETTINGS \ "pciconfighost=1\0" \ "netdev=eth0\0" \ "consoledev=ttyS0\0" \ CONFIG_OTHBOOTARGS \ - "ramdiskaddr=0x4000000\0" \ - "ramdiskfile=initramfs.gz\0" + "scriptaddr=0x7000000\0" \ + "kernel_addr_r=0x1000000\0" \ + "ramdisk_addr_r=0x4000000\0" \ + "ramdiskfile=initramfs.gz\0" \ + BOOTENV
#define CONFIG_RAMBOOTCOMMAND \ "setenv bootargs root=/dev/ram rw " \ "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \ "console=$consoledev,$baudrate $othbootargs;" \ - "tftpboot $loadaddr $bootfile;" \ - "tftpboot $ramdiskaddr $ramdiskfile;" \ - "zboot $loadaddr 0 $ramdiskaddr $filesize" + "tftpboot $kernel_addr_r $bootfile;" \ + "tftpboot $ramdisk_addr_r $ramdiskfile;" \ + "zboot $kernel_addr_r 0 $ramdisk_addr_r $filesize"
#define CONFIG_NFSBOOTCOMMAND \ "setenv bootargs root=/dev/nfs rw " \ "nfsroot=$serverip:$rootpath " \ "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off " \ "console=$consoledev,$baudrate $othbootargs;" \ - "tftpboot $loadaddr $bootfile;" \ - "zboot $loadaddr" + "tftpboot $kernel_addr_r $bootfile;" \ + "zboot $kernel_addr_r"
#endif /* __CONFIG_H */

On Sun, Jul 28, 2019 at 11:14 PM Bin Meng bmeng.cn@gmail.com wrote:
With qemu-x86 starting to use config_distro_bootcmd, the pre-defined ramboot and nfsboot commands do not work any more. This is caused by undefined environment variable 'ramdiskaddr' that was previously set in CONFIG_EXTRA_ENV_SETTINGS but later CONFIG_EXTRA_ENV_SETTINGS was redefined for distro boot.
Update the x86 generic CONFIG_EXTRA_ENV_SETTINGS to consider distro boot, and remove the one in qemu-x86.h.
Signed-off-by: Bin Meng bmeng.cn@gmail.com
include/configs/qemu-x86.h | 10 ---------- include/configs/x86-common.h | 21 ++++++++++++++------- 2 files changed, 14 insertions(+), 17 deletions(-)
applied to u-boot-x86, thanks!
participants (1)
-
Bin Meng