From: Jamin Lin via <qemu-devel@nongnu.org>
To: "Cédric Le Goater" <clg@kaod.org>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Steven Lee" <steven_lee@aspeedtech.com>,
"Troy Lee" <leetroy@gmail.com>,
"Andrew Jeffery" <andrew@codeconstruct.com.au>,
"Joel Stanley" <joel@jms.id.au>,
"open list:All patches CC here" <qemu-devel@nongnu.org>,
"open list:ASPEED BMCs" <qemu-arm@nongnu.org>
Cc: <jamin_lin@aspeedtech.com>, <troy_lee@aspeedtech.com>,
<nabihestefan@google.com>
Subject: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
Date: Thu, 10 Apr 2025 10:38:51 +0800 [thread overview]
Message-ID: <20250410023856.500258-8-jamin_lin@aspeedtech.com> (raw)
In-Reply-To: <20250410023856.500258-1-jamin_lin@aspeedtech.com>
Introduce "aspeed_load_vbootrom()" to support loading a virtual boot ROM image
into the vbootrom memory region, using the "-bios" command-line option.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
---
hw/arm/aspeed.c | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
index b70a120e62..2811868c1a 100644
--- a/hw/arm/aspeed.c
+++ b/hw/arm/aspeed.c
@@ -27,6 +27,7 @@
#include "system/reset.h"
#include "hw/loader.h"
#include "qemu/error-report.h"
+#include "qemu/datadir.h"
#include "qemu/units.h"
#include "hw/qdev-clock.h"
#include "system/system.h"
@@ -305,6 +306,32 @@ static void aspeed_install_boot_rom(AspeedMachineState *bmc, BlockBackend *blk,
rom_size, &error_abort);
}
+/*
+ * This function locates the vbootrom image file specified via the command line
+ * using the -bios option. It loads the specified image into the vbootrom
+ * memory region and handles errors if the file cannot be found or loaded.
+ */
+static void aspeed_load_vbootrom(MachineState *machine, uint64_t rom_size)
+{
+ AspeedMachineState *bmc = ASPEED_MACHINE(machine);
+ const char *bios_name = machine->firmware;
+ g_autofree char *filename = NULL;
+ AspeedSoCState *soc = bmc->soc;
+ int ret;
+
+ filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
+ if (!filename) {
+ error_report("Could not find vbootrom image '%s'", bios_name);
+ exit(1);
+ }
+
+ ret = load_image_mr(filename, &soc->vbootrom);
+ if (ret < 0) {
+ error_report("Failed to load vbootrom image '%s'", filename);
+ exit(1);
+ }
+}
+
void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype,
unsigned int count, int unit0)
{
@@ -483,6 +510,11 @@ static void aspeed_machine_init(MachineState *machine)
}
}
+ if (amc->vbootrom) {
+ rom_size = memory_region_size(&bmc->soc->vbootrom);
+ aspeed_load_vbootrom(machine, rom_size);
+ }
+
arm_load_kernel(ARM_CPU(first_cpu), machine, &aspeed_board_binfo);
}
--
2.43.0
next prev parent reply other threads:[~2025-04-10 2:40 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-10 2:38 [PATCH v2 00/10] Support vbootrom for AST2700 Jamin Lin via
2025-04-10 2:38 ` [PATCH v2 01/10] hw/arm/aspeed: Introduced ASPEED_DEV_VBOOTROM in the device enumeration Jamin Lin via
2025-04-10 2:38 ` [PATCH v2 02/10] hw/arm/aspeed_ast27x0: Add "vbootrom_size" field to AspeedSoCClass Jamin Lin via
2025-04-10 2:38 ` Jamin Lin via
2025-04-10 2:38 ` [PATCH v2 03/10] hw/arm/aspeed_ast27x0: Rename variable sram_name to name in ast2700 realize Jamin Lin via
2025-04-11 15:48 ` Cédric Le Goater
2025-04-10 2:38 ` [PATCH v2 04/10] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region Jamin Lin via
2025-04-10 2:38 ` Jamin Lin via
2025-04-11 15:50 ` Cédric Le Goater
2025-04-14 1:22 ` Jamin Lin
2025-04-10 2:38 ` [PATCH v2 05/10] hw/arm/aspeed: Enable vbootrom support by default on AST2700 EVB machines Jamin Lin via
2025-04-10 2:38 ` [PATCH v2 06/10] hw/arm/aspeed: Reuse rom_size variable for vbootrom setup Jamin Lin via
2025-04-10 2:38 ` Jamin Lin via
2025-04-11 15:50 ` Cédric Le Goater
2025-04-10 2:38 ` Jamin Lin via [this message]
2025-04-11 16:07 ` [PATCH v2 07/10] hw/arm/aspeed: Add support for loading vbootrom image via "-bios" Cédric Le Goater
2025-04-14 3:17 ` Jamin Lin
2025-04-14 21:14 ` Nabih Estefan
2025-04-15 9:34 ` Jamin Lin
2025-04-15 16:07 ` Nabih Estefan
2025-04-16 2:21 ` Jamin Lin
2025-04-10 2:38 ` [PATCH v2 08/10] pc-bios: Add AST27x0 vBootrom Jamin Lin via
2025-04-10 2:38 ` Jamin Lin via
2025-04-11 15:58 ` Cédric Le Goater
2025-04-14 6:50 ` Jamin Lin
2025-04-21 16:31 ` Cédric Le Goater
2025-04-10 2:38 ` [PATCH v2 09/10] tests/functional/aspeed: Update AST2700 functional test to use vbootrom Jamin Lin via
2025-04-10 2:38 ` Jamin Lin via
2025-04-11 15:54 ` Cédric Le Goater
2025-04-14 2:06 ` Jamin Lin
2025-04-10 2:38 ` [PATCH v2 10/10] docs/system/arm/aspeed: Support vbootrom for AST2700 Jamin Lin via
2025-04-10 2:38 ` Jamin Lin via
2025-04-11 15:48 ` [PATCH v2 00/10] " Cédric Le Goater
2025-04-14 1:20 ` Jamin Lin
2025-04-21 16:08 ` Cédric Le Goater
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=20250410023856.500258-8-jamin_lin@aspeedtech.com \
--to=qemu-devel@nongnu.org \
--cc=andrew@codeconstruct.com.au \
--cc=clg@kaod.org \
--cc=jamin_lin@aspeedtech.com \
--cc=joel@jms.id.au \
--cc=leetroy@gmail.com \
--cc=nabihestefan@google.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=steven_lee@aspeedtech.com \
--cc=troy_lee@aspeedtech.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.