From: Helge Deller <deller@gmx.de>
To: peter.maydell@linaro.org, qemu-devel@nongnu.org
Cc: Helge Deller <deller@gmx.de>, Richard Henderson <rth@twiddle.net>
Subject: [PULL v5 03/12] hw/hppa: Implement proper SeaBIOS version check
Date: Wed, 26 Aug 2020 23:13:36 +0200 [thread overview]
Message-ID: <20200826211345.14295-4-deller@gmx.de> (raw)
In-Reply-To: <20200826211345.14295-1-deller@gmx.de>
It's important that the SeaBIOS hppa firmware is at least at a minimal
level to ensure proper interaction between qemu and firmware.
Implement a proper firmware version check by telling SeaBIOS via the
fw_cfg interface which minimal SeaBIOS version is required by this
running qemu instance. If the firmware detects that it's too old, it
will stop.
Signed-off-by: Helge Deller <deller@gmx.de>
---
hw/hppa/machine.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
index 49155537cd..90aeefe2a4 100644
--- a/hw/hppa/machine.c
+++ b/hw/hppa/machine.c
@@ -25,6 +25,8 @@
#define MAX_IDE_BUS 2
+#define MIN_SEABIOS_HPPA_VERSION 1 /* require at least this fw version */
+
static ISABus *hppa_isa_bus(void)
{
ISABus *isa_bus;
@@ -56,6 +58,23 @@ static uint64_t cpu_hppa_to_phys(void *opaque, uint64_t addr)
static HPPACPU *cpu[HPPA_MAX_CPUS];
static uint64_t firmware_entry;
+static FWCfgState *create_fw_cfg(MachineState *ms)
+{
+ FWCfgState *fw_cfg;
+ uint64_t val;
+
+ fw_cfg = fw_cfg_init_mem(QEMU_FW_CFG_IO_BASE, QEMU_FW_CFG_IO_BASE + 4);
+ fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, ms->smp.cpus);
+ fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, HPPA_MAX_CPUS);
+ fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, ram_size);
+
+ val = cpu_to_le64(MIN_SEABIOS_HPPA_VERSION);
+ fw_cfg_add_file(fw_cfg, "/etc/firmware-min-version",
+ g_memdup(&val, sizeof(val)), sizeof(val));
+
+ return fw_cfg;
+}
+
static void machine_hppa_init(MachineState *machine)
{
const char *kernel_filename = machine->kernel_filename;
@@ -118,6 +137,9 @@ static void machine_hppa_init(MachineState *machine)
115200, serial_hd(0), DEVICE_BIG_ENDIAN);
}
+ /* fw_cfg configuration interface */
+ create_fw_cfg(machine);
+
/* SCSI disk setup. */
dev = DEVICE(pci_create_simple(pci_bus, -1, "lsi53c895a"));
lsi53c8xx_handle_legacy_cmdline(dev);
--
2.21.3
next prev parent reply other threads:[~2020-08-26 21:18 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-26 21:13 [PULL v5 00/12] The following changes since commit 3461487523b897d324e8d91f3fd20ed55f849544: Helge Deller
2020-08-26 21:13 ` [PULL v5 01/12] hw/hppa: Sync hppa_hardware.h file with SeaBIOS sources Helge Deller
2020-08-26 21:13 ` [PULL v5 02/12] seabios-hppa: Update to SeaBIOS hppa version 1 Helge Deller
2020-08-26 21:13 ` Helge Deller [this message]
2020-08-26 21:13 ` [PULL v5 04/12] hw/display/artist.c: fix out of bounds check Helge Deller
2020-08-26 21:13 ` [PULL v5 05/12] hw/hppa/lasi: Don't abort on invalid IMR value Helge Deller
2020-08-26 21:13 ` [PULL v5 06/12] hw/display/artist: Check offset in draw_line to avoid buffer over-run Helge Deller
2020-08-26 21:13 ` [PULL v5 07/12] hw/display/artist: Refactor artist_rop8() " Helge Deller
2020-08-26 21:13 ` [PULL v5 08/12] Revert "hw/display/artist: Avoid drawing line when nothing to display" Helge Deller
2020-08-26 21:13 ` [PULL v5 09/12] hw/display/artist: Prevent out of VRAM buffer accesses Helge Deller
2020-08-26 21:13 ` [PULL v5 10/12] hw/display/artist: Unbreak size mismatch memory accesses Helge Deller
2020-08-26 21:13 ` [PULL v5 11/12] hw/display/artist: Fix invalidation of lines in artist_draw_line() Helge Deller
2020-08-26 21:13 ` [PULL v5 12/12] hw/display/artist: Fix invalidation of lines near screen border Helge Deller
2020-08-27 10:20 ` [PULL v5 00/12] The following changes since commit 3461487523b897d324e8d91f3fd20ed55f849544: Peter Maydell
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=20200826211345.14295-4-deller@gmx.de \
--to=deller@gmx.de \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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;
as well as URLs for NNTP newsgroup(s).