From: Joshua Watt <jpewhacker@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2] qemu-x86: Use config_distro_bootcmd
Date: Tue, 2 Jul 2019 08:24:56 -0500 [thread overview]
Message-ID: <20190702132542.30273-1-JPEWhacker@gmail.com> (raw)
In-Reply-To: <20190621151650.18350-1-JPEWhacker@gmail.com>
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. Previously, u-boot would only boot
in a very limited set of circumstances where there was a /boot/vmlinuz
on scsi 0:3 with no ramdisk.
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
---
configs/qemu-x86_64_defconfig | 1 +
configs/qemu-x86_defconfig | 1 +
doc/README.x86 | 5 +++++
include/configs/qemu-x86.h | 25 +++++++++++++++++++++++++
4 files changed, 32 insertions(+)
diff --git a/configs/qemu-x86_64_defconfig b/configs/qemu-x86_64_defconfig
index d89cd44144..3e9e83efaf 100644
--- a/configs/qemu-x86_64_defconfig
+++ b/configs/qemu-x86_64_defconfig
@@ -62,3 +62,4 @@ CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
CONFIG_FRAMEBUFFER_VESA_MODE_USER=y
CONFIG_FRAMEBUFFER_VESA_MODE=0x144
CONFIG_CONSOLE_SCROLL_LINES=5
+CONFIG_DISTRO_DEFAULTS=y
diff --git a/configs/qemu-x86_defconfig b/configs/qemu-x86_defconfig
index 898d656ac3..85bb7b1daf 100644
--- a/configs/qemu-x86_defconfig
+++ b/configs/qemu-x86_defconfig
@@ -50,3 +50,4 @@ CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
CONFIG_FRAMEBUFFER_VESA_MODE_USER=y
CONFIG_FRAMEBUFFER_VESA_MODE=0x144
CONFIG_CONSOLE_SCROLL_LINES=5
+CONFIG_DISTRO_DEFAULTS=y
diff --git a/doc/README.x86 b/doc/README.x86
index 8e0a3f36ed..48557ffa51 100644
--- a/doc/README.x86
+++ b/doc/README.x86
@@ -466,6 +466,11 @@ If you want to check both consoles, use '-serial stdio'.
Multicore is also supported by QEMU via '-smp n' where n is the number of cores
to instantiate. Note, the maximum supported CPU number in QEMU is 255.
+U-Boot uses 'distro_bootcmd' by default when booting on x86 QEMU. This tries to
+load a boot script, kernel, and ramdisk from several different interfaces. For
+the default boot order, see 'qemu-x86.h'. For more information, see
+'README.distro'
+
The fw_cfg interface in QEMU also provides information about kernel data,
initrd, command-line arguments and more. U-Boot supports directly accessing
these informtion from fw_cfg interface, which saves the time of loading them
diff --git a/include/configs/qemu-x86.h b/include/configs/qemu-x86.h
index 64e7a60b8a..097ed414f8 100644
--- a/include/configs/qemu-x86.h
+++ b/include/configs/qemu-x86.h
@@ -10,8 +10,33 @@
#ifndef __CONFIG_H
#define __CONFIG_H
+#include <linux/sizes.h>
+
+#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=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" \
--
2.21.0
next prev parent reply other threads:[~2019-07-02 13:24 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-21 15:16 [U-Boot] [RFC PATCH] qemu-x86: Use config_distro_bootcmd Joshua Watt
2019-06-22 14:51 ` Bin Meng
2019-06-22 14:52 ` Bin Meng
2019-07-02 13:24 ` Joshua Watt [this message]
2019-07-02 14:24 ` [U-Boot] [PATCH v2] " Bin Meng
2019-07-02 15:31 ` Joshua Watt
2019-07-03 17:45 ` [U-Boot] [PATCH v3] " Joshua Watt
2019-07-16 14:19 ` Joshua Watt
2019-07-17 5:43 ` Bin Meng
2019-07-19 9:46 ` Bin Meng
2019-08-14 4:14 ` Heinrich Schuchardt
2019-08-14 7:19 ` Bin Meng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190702132542.30273-1-JPEWhacker@gmail.com \
--to=jpewhacker@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox