[U-Boot] [RFC PATCH] qemu-x86: Use config_distro_bootcmd

Joshua Watt jpewhacker at gmail.com
Fri Jun 21 15:16:38 UTC 2019


Converts qemu x86 machines to boot using distro_config. The intent is to
allow u-boot in qemu to be maximally compatible with many boot methods
without having to change the config. Currently, u-boot will only boot in
a very limited set of circumstances where there is a /boot/vmlinuz on
scsi 0:3 with no ramdisk.

If distro_bootcmd fails, u-boot will fall back to the original method.

Signed-off-by: Joshua Watt <JPEWhacker at gmail.com>
---
 include/configs/qemu-x86.h | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/include/configs/qemu-x86.h b/include/configs/qemu-x86.h
index 64e7a60b8a..d9c96e295d 100644
--- a/include/configs/qemu-x86.h
+++ b/include/configs/qemu-x86.h
@@ -10,8 +10,38 @@
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
+#include <linux/sizes.h>
+
+#define CONFIG_BOOTCOMMAND \
+	"run distro_bootcmd; " \
+	"ext2load scsi 0:3 01000000 /boot/vmlinuz; " \
+	"zboot 01000000"
+
+#define BOOT_TARGET_DEVICES(func) \
+	func(USB, usb, 0) \
+	func(SCSI, scsi, 0) \
+	func(VIRTIO, virtio, 0) \
+	func(IDE, ide, 0) \
+	func(DHCP, dhcp, na)
+
+#include <config_distro_bootcmd.h>
 #include <configs/x86-common.h>
 
+#undef CONFIG_ENV_SIZE
+#define CONFIG_ENV_SIZE			SZ_256K
+
+#define CONFIG_PREBOOT "pci enum"
+
+#undef CONFIG_EXTRA_ENV_SETTINGS
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	CONFIG_STD_DEVICES_SETTINGS \
+	"scriptaddr=0x8000000\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" \
-- 
2.21.0



More information about the U-Boot mailing list