* [PATCH v5 00/11] Support vbootrom for AST2700
@ 2025-04-23 7:23 Jamin Lin via
2025-04-23 7:23 ` [PATCH v5 01/11] hw/arm/aspeed_ast27x0: Rename variable sram_name to name in ast2700 realize Jamin Lin via
` (11 more replies)
0 siblings, 12 replies; 26+ messages in thread
From: Jamin Lin via @ 2025-04-23 7:23 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan
v1:
Add initial support for AST27x0
The purpose of vbootrom here is to simulate the work of BootMCU SPL (riscv)
in AST2700, because QEMU doesn't support heterogenous architecture yet.
ast27x0_bootrom.bin is a simplified, free (Apache 2.0) boot ROM for
ASPEED AST27x0 BMC SOC. It currently implements the bare minimum to
load, parse, initialize and run boot images stored in SPI flash, but may grow
more features over time as needed. The source code is available at:
https://github.com/google/vbootrom
v2:
Add "Introduced ASPEED_DEV_VBOOTROM in the device enumeration" patch to fix
build failed.
v3:
1. Supports both vbootrom and device loader boot methods, with vbootrom used as
the default.
2. Fix review and QTEST test failed issues.
v4:
Adjust the patch order.
v5:
fix review issue and remove unnecessary class attribure.
doc: create a new section for AST2700.
Jamin Lin (11):
hw/arm/aspeed_ast27x0: Rename variable sram_name to name in ast2700
realize
hw/arm/aspeed_ast27x0 Introduce vbootrom memory region
hw/arm/aspeed: Add vbootrom support on AST2700 EVB machines
hw/arm/aspeed: Reuse rom_size variable for vbootrom setup
pc-bios: Add AST27x0 vBootrom
hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
tests/functional/aspeed: Move I2C test into shared helper for AST2700
reuse
tests/functional/aspeed: Update test ASPEED SDK v09.06
tests/functional/aspeed: extract boot and login sequence into helper
function
tests/functional/aspeed: Add to test vbootrom for AST2700
docs/system/arm/aspeed: Support vbootrom for AST2700
MAINTAINERS | 1 +
docs/system/arm/aspeed.rst | 96 ++++++++++++++++++++++--
include/hw/arm/aspeed.h | 1 +
include/hw/arm/aspeed_soc.h | 2 +
hw/arm/aspeed.c | 40 +++++++++-
hw/arm/aspeed_ast27x0.c | 17 ++++-
pc-bios/README | 6 ++
pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15424 bytes
pc-bios/meson.build | 1 +
tests/functional/test_aarch64_aspeed.py | 82 +++++++++++++-------
10 files changed, 209 insertions(+), 37 deletions(-)
create mode 100644 pc-bios/ast27x0_bootrom.bin
--
2.43.0
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v5 01/11] hw/arm/aspeed_ast27x0: Rename variable sram_name to name in ast2700 realize
2025-04-23 7:23 [PATCH v5 00/11] Support vbootrom for AST2700 Jamin Lin via
@ 2025-04-23 7:23 ` Jamin Lin via
2025-04-23 7:23 ` [PATCH v5 02/11] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region Jamin Lin via
` (10 subsequent siblings)
11 siblings, 0 replies; 26+ messages in thread
From: Jamin Lin via @ 2025-04-23 7:23 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan, Cédric Le Goater
The variable "sram_name" was only used for naming the SRAM memory region.
Rename it to "name" for consistency with similar code and avoid unnecessary
new local variable declarations.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Tested-by: Nabih Estefan <nabihestefan@google.com>
---
hw/arm/aspeed_ast27x0.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c
index dce7255a2c..b05ed75ff4 100644
--- a/hw/arm/aspeed_ast27x0.c
+++ b/hw/arm/aspeed_ast27x0.c
@@ -577,7 +577,7 @@ static void aspeed_soc_ast2700_realize(DeviceState *dev, Error **errp)
AspeedSoCClass *sc = ASPEED_SOC_GET_CLASS(s);
AspeedINTCClass *ic = ASPEED_INTC_GET_CLASS(&a->intc[0]);
AspeedINTCClass *icio = ASPEED_INTC_GET_CLASS(&a->intc[1]);
- g_autofree char *sram_name = NULL;
+ g_autofree char *name = NULL;
qemu_irq irq;
/* Default boot region (SPI memory or ROMs) */
@@ -649,9 +649,9 @@ static void aspeed_soc_ast2700_realize(DeviceState *dev, Error **errp)
}
/* SRAM */
- sram_name = g_strdup_printf("aspeed.sram.%d", CPU(&a->cpu[0])->cpu_index);
- if (!memory_region_init_ram(&s->sram, OBJECT(s), sram_name, sc->sram_size,
- errp)) {
+ name = g_strdup_printf("aspeed.sram.%d", CPU(&a->cpu[0])->cpu_index);
+ if (!memory_region_init_ram(&s->sram, OBJECT(s), name, sc->sram_size,
+ errp)) {
return;
}
memory_region_add_subregion(s->memory,
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v5 02/11] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region
2025-04-23 7:23 [PATCH v5 00/11] Support vbootrom for AST2700 Jamin Lin via
2025-04-23 7:23 ` [PATCH v5 01/11] hw/arm/aspeed_ast27x0: Rename variable sram_name to name in ast2700 realize Jamin Lin via
@ 2025-04-23 7:23 ` Jamin Lin via
2025-04-23 7:39 ` Cédric Le Goater
2025-04-23 7:23 ` [PATCH v5 03/11] hw/arm/aspeed: Add vbootrom support on AST2700 EVB machines Jamin Lin via
` (9 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Jamin Lin via @ 2025-04-23 7:23 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan
Introduce a new vbootrom memory region. The region is mapped at address
"0x00000000" and has a size of 128KB, identical to the SRAM region size.
This memory region is intended for loading a vbootrom image file as part of the
boot process.
The vbootrom registered in the SoC's address space using the ASPEED_DEV_VBOOTROM
index.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Nabih Estefan <nabihestefan@google.com>
Tested-by: Nabih Estefan <nabihestefan@google.com>
---
include/hw/arm/aspeed_soc.h | 2 ++
hw/arm/aspeed_ast27x0.c | 9 +++++++++
2 files changed, 11 insertions(+)
diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h
index f069d17d16..b4b23d693d 100644
--- a/include/hw/arm/aspeed_soc.h
+++ b/include/hw/arm/aspeed_soc.h
@@ -59,6 +59,7 @@ struct AspeedSoCState {
MemoryRegion sram;
MemoryRegion spi_boot_container;
MemoryRegion spi_boot;
+ MemoryRegion vbootrom;
AddressSpace dram_as;
AspeedRtcState rtc;
AspeedTimerCtrlState timerctrl;
@@ -169,6 +170,7 @@ struct AspeedSoCClass {
const char *aspeed_soc_cpu_type(AspeedSoCClass *sc);
enum {
+ ASPEED_DEV_VBOOTROM,
ASPEED_DEV_SPI_BOOT,
ASPEED_DEV_IOMEM,
ASPEED_DEV_UART0,
diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c
index b05ed75ff4..968dfa5526 100644
--- a/hw/arm/aspeed_ast27x0.c
+++ b/hw/arm/aspeed_ast27x0.c
@@ -24,6 +24,7 @@
#include "qemu/log.h"
static const hwaddr aspeed_soc_ast2700_memmap[] = {
+ [ASPEED_DEV_VBOOTROM] = 0x00000000,
[ASPEED_DEV_SRAM] = 0x10000000,
[ASPEED_DEV_HACE] = 0x12070000,
[ASPEED_DEV_EMMC] = 0x12090000,
@@ -657,6 +658,14 @@ static void aspeed_soc_ast2700_realize(DeviceState *dev, Error **errp)
memory_region_add_subregion(s->memory,
sc->memmap[ASPEED_DEV_SRAM], &s->sram);
+ /* VBOOTROM */
+ if (!memory_region_init_ram(&s->vbootrom, OBJECT(s), "aspeed.vbootrom",
+ 0x20000, errp)) {
+ return;
+ }
+ memory_region_add_subregion(s->memory,
+ sc->memmap[ASPEED_DEV_VBOOTROM], &s->vbootrom);
+
/* SCU */
if (!sysbus_realize(SYS_BUS_DEVICE(&s->scu), errp)) {
return;
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v5 03/11] hw/arm/aspeed: Add vbootrom support on AST2700 EVB machines
2025-04-23 7:23 [PATCH v5 00/11] Support vbootrom for AST2700 Jamin Lin via
2025-04-23 7:23 ` [PATCH v5 01/11] hw/arm/aspeed_ast27x0: Rename variable sram_name to name in ast2700 realize Jamin Lin via
2025-04-23 7:23 ` [PATCH v5 02/11] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region Jamin Lin via
@ 2025-04-23 7:23 ` Jamin Lin via
2025-04-23 9:29 ` Cédric Le Goater
2025-04-23 7:23 ` [PATCH v5 04/11] hw/arm/aspeed: Reuse rom_size variable for vbootrom setup Jamin Lin via
` (8 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Jamin Lin via @ 2025-04-23 7:23 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan
Introduce a new "vbootrom" field in the AspeedMachineClass to indicate whether
a machine supports the virtual boot ROM region.
Set this field to true by default for the AST2700-A0 and AST2700-A1 EVB
machines.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Nabih Estefan <nabihestefan@google.com>
Tested-by: Nabih Estefan <nabihestefan@google.com>
---
include/hw/arm/aspeed.h | 1 +
hw/arm/aspeed.c | 2 ++
2 files changed, 3 insertions(+)
diff --git a/include/hw/arm/aspeed.h b/include/hw/arm/aspeed.h
index 9cae45a1c9..973277bea6 100644
--- a/include/hw/arm/aspeed.h
+++ b/include/hw/arm/aspeed.h
@@ -40,6 +40,7 @@ struct AspeedMachineClass {
void (*i2c_init)(AspeedMachineState *bmc);
uint32_t uart_default;
bool sdhci_wp_inverted;
+ bool vbootrom;
};
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
index 82f42582fa..e852bbc4cb 100644
--- a/hw/arm/aspeed.c
+++ b/hw/arm/aspeed.c
@@ -1689,6 +1689,7 @@ static void aspeed_machine_ast2700a0_evb_class_init(ObjectClass *oc, void *data)
amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON | ASPEED_MAC2_ON;
amc->uart_default = ASPEED_DEV_UART12;
amc->i2c_init = ast2700_evb_i2c_init;
+ amc->vbootrom = true;
mc->auto_create_sdcard = true;
mc->default_ram_size = 1 * GiB;
aspeed_machine_class_init_cpus_defaults(mc);
@@ -1709,6 +1710,7 @@ static void aspeed_machine_ast2700a1_evb_class_init(ObjectClass *oc, void *data)
amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON | ASPEED_MAC2_ON;
amc->uart_default = ASPEED_DEV_UART12;
amc->i2c_init = ast2700_evb_i2c_init;
+ amc->vbootrom = true;
mc->auto_create_sdcard = true;
mc->default_ram_size = 1 * GiB;
aspeed_machine_class_init_cpus_defaults(mc);
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v5 04/11] hw/arm/aspeed: Reuse rom_size variable for vbootrom setup
2025-04-23 7:23 [PATCH v5 00/11] Support vbootrom for AST2700 Jamin Lin via
` (2 preceding siblings ...)
2025-04-23 7:23 ` [PATCH v5 03/11] hw/arm/aspeed: Add vbootrom support on AST2700 EVB machines Jamin Lin via
@ 2025-04-23 7:23 ` Jamin Lin via
2025-04-23 9:20 ` Cédric Le Goater
2025-04-23 7:23 ` [PATCH v5 05/11] pc-bios: Add AST27x0 vBootrom Jamin Lin via
` (7 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Jamin Lin via @ 2025-04-23 7:23 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan, Cédric Le Goater
Move the declaration of "rom_size" to an outer scope in aspeed_machine_init()
so it can be reused for setting up the vbootrom region as well.
This avoids introducing a redundant local variable and ensures consistent
ROM sizing logic when both SPI boot and vbootrom are used.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Tested-by: Nabih Estefan <nabihestefan@google.com>
---
hw/arm/aspeed.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
index e852bbc4cb..b70a120e62 100644
--- a/hw/arm/aspeed.c
+++ b/hw/arm/aspeed.c
@@ -381,6 +381,7 @@ static void aspeed_machine_init(MachineState *machine)
AspeedSoCClass *sc;
int i;
DriveInfo *emmc0 = NULL;
+ uint64_t rom_size;
bool boot_emmc;
bmc->soc = ASPEED_SOC(object_new(amc->soc_name));
@@ -475,7 +476,7 @@ static void aspeed_machine_init(MachineState *machine)
BlockBackend *fmc0 = dev ? m25p80_get_blk(dev) : NULL;
if (fmc0 && !boot_emmc) {
- uint64_t rom_size = memory_region_size(&bmc->soc->spi_boot);
+ rom_size = memory_region_size(&bmc->soc->spi_boot);
aspeed_install_boot_rom(bmc, fmc0, rom_size);
} else if (emmc0) {
aspeed_install_boot_rom(bmc, blk_by_legacy_dinfo(emmc0), 64 * KiB);
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v5 05/11] pc-bios: Add AST27x0 vBootrom
2025-04-23 7:23 [PATCH v5 00/11] Support vbootrom for AST2700 Jamin Lin via
` (3 preceding siblings ...)
2025-04-23 7:23 ` [PATCH v5 04/11] hw/arm/aspeed: Reuse rom_size variable for vbootrom setup Jamin Lin via
@ 2025-04-23 7:23 ` Jamin Lin via
2025-04-23 9:28 ` Cédric Le Goater
2025-04-23 7:23 ` [PATCH v5 06/11] hw/arm/aspeed: Add support for loading vbootrom image via "-bios" Jamin Lin via
` (6 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Jamin Lin via @ 2025-04-23 7:23 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan
The boot ROM is a minimal implementation designed to load an AST27x0 boot image.
Its source code is available at:
https://github.com/google/vbootrom
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Nabih Estefan <nabihestefan@google.com>
Tested-by: Nabih Estefan <nabihestefan@google.com>
---
MAINTAINERS | 1 +
pc-bios/README | 6 ++++++
pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15424 bytes
pc-bios/meson.build | 1 +
4 files changed, 8 insertions(+)
create mode 100644 pc-bios/ast27x0_bootrom.bin
diff --git a/MAINTAINERS b/MAINTAINERS
index d54b5578f8..70ab0d0afa 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1163,6 +1163,7 @@ F: docs/system/arm/fby35.rst
F: tests/*/*aspeed*
F: tests/*/*ast2700*
F: hw/arm/fby35.c
+F: pc-bios/ast27x0_bootrom.bin
NRF51
M: Joel Stanley <joel@jms.id.au>
diff --git a/pc-bios/README b/pc-bios/README
index f0f13e15f2..d009c37895 100644
--- a/pc-bios/README
+++ b/pc-bios/README
@@ -89,6 +89,12 @@
more features over time as needed. The source code is available at:
https://github.com/google/vbootrom
+- ast27x0_bootrom.bin is a simplified, free (Apache 2.0) boot ROM for
+ ASPEED AST27x0 BMC SOC. It currently implements the bare minimum to
+ load, parse, initialize and run boot images stored in SPI flash, but may grow
+ more features over time as needed. The source code is available at:
+ https://github.com/google/vbootrom
+
- hppa-firmware.img (32-bit) and hppa-firmware64.img (64-bit) are firmware
files for the HP-PARISC (hppa) architecture.
They are built form the SeaBIOS-hppa sources, which is a fork of SeaBIOS
diff --git a/pc-bios/ast27x0_bootrom.bin b/pc-bios/ast27x0_bootrom.bin
new file mode 100644
index 0000000000000000000000000000000000000000..d46403b023c00f989b6facb397d57bea7e5c583a
GIT binary patch
literal 15424
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
TJDH<UkE#+fTtE*0xX=Fr0X;+;
literal 0
HcmV?d00001
diff --git a/pc-bios/meson.build b/pc-bios/meson.build
index 34d6616c32..83998f6071 100644
--- a/pc-bios/meson.build
+++ b/pc-bios/meson.build
@@ -84,6 +84,7 @@ blobs = [
'npcm8xx_bootrom.bin',
'vof.bin',
'vof-nvram.bin',
+ 'ast27x0_bootrom.bin',
]
dtc = find_program('dtc', required: false)
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v5 06/11] hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
2025-04-23 7:23 [PATCH v5 00/11] Support vbootrom for AST2700 Jamin Lin via
` (4 preceding siblings ...)
2025-04-23 7:23 ` [PATCH v5 05/11] pc-bios: Add AST27x0 vBootrom Jamin Lin via
@ 2025-04-23 7:23 ` Jamin Lin via
2025-04-23 9:23 ` Cédric Le Goater
2025-04-23 7:23 ` [PATCH v5 07/11] tests/functional/aspeed: Move I2C test into shared helper for AST2700 reuse Jamin Lin via
` (5 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Jamin Lin via @ 2025-04-23 7:23 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan
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>
Reviewed-by: Nabih Estefan <nabihestefan@google.com>
Tested-by: Nabih Estefan <nabihestefan@google.com>
---
hw/arm/aspeed.c | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
index b70a120e62..b5831ef4c1 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,35 @@ static void aspeed_install_boot_rom(AspeedMachineState *bmc, BlockBackend *blk,
rom_size, &error_abort);
}
+#define VBOOTROM_FILE_NAME "ast27x0_bootrom.bin"
+
+/*
+ * 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,
+ Error **errp)
+{
+ AspeedMachineState *bmc = ASPEED_MACHINE(machine);
+ const char *bios_name = machine->firmware ?: VBOOTROM_FILE_NAME;
+ g_autofree char *filename = NULL;
+ AspeedSoCState *soc = bmc->soc;
+ int ret;
+
+ filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
+ if (!filename) {
+ error_setg(errp, "Could not find vbootrom image '%s'", bios_name);
+ return;
+ }
+
+ ret = load_image_mr(filename, &soc->vbootrom);
+ if (ret < 0) {
+ error_setg(errp, "Failed to load vbootrom image '%s'", bios_name);
+ return;
+ }
+}
+
void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype,
unsigned int count, int unit0)
{
@@ -483,6 +513,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, &error_abort);
+ }
+
arm_load_kernel(ARM_CPU(first_cpu), machine, &aspeed_board_binfo);
}
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v5 07/11] tests/functional/aspeed: Move I2C test into shared helper for AST2700 reuse
2025-04-23 7:23 [PATCH v5 00/11] Support vbootrom for AST2700 Jamin Lin via
` (5 preceding siblings ...)
2025-04-23 7:23 ` [PATCH v5 06/11] hw/arm/aspeed: Add support for loading vbootrom image via "-bios" Jamin Lin via
@ 2025-04-23 7:23 ` Jamin Lin via
2025-04-23 7:23 ` [PATCH v5 08/11] tests/functional/aspeed: Update test ASPEED SDK v09.06 Jamin Lin via
` (4 subsequent siblings)
11 siblings, 0 replies; 26+ messages in thread
From: Jamin Lin via @ 2025-04-23 7:23 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan, Cédric Le Goater
Move the I2C test case into a common helper function (do_ast2700_i2c_test) so it
can be reused across multiple AST2700-based test cases. This reduces duplication
and improves maintainability.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Nabih Estefan <nabihestefan@google.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
---
tests/functional/test_aarch64_aspeed.py | 28 +++++++++++++------------
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/tests/functional/test_aarch64_aspeed.py b/tests/functional/test_aarch64_aspeed.py
index c25c966278..441f7f3919 100755
--- a/tests/functional/test_aarch64_aspeed.py
+++ b/tests/functional/test_aarch64_aspeed.py
@@ -18,6 +18,8 @@ class AST2x00MachineSDK(QemuSystemTest):
def do_test_aarch64_aspeed_sdk_start(self, image):
self.require_netdev('user')
self.vm.set_console()
+ self.vm.add_args('-device',
+ 'tmp105,bus=aspeed.i2c.bus.1,address=0x4d,id=tmp-test')
self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw',
'-net', 'nic', '-net', 'user', '-snapshot')
@@ -35,6 +37,17 @@ def do_test_aarch64_aspeed_sdk_start(self, image):
'https://github.com/AspeedTech-BMC/openbmc/releases/download/v09.05/ast2700-default-obmc.tar.gz',
'c1f4496aec06743c812a6e9a1a18d032f34d62f3ddb6956e924fef62aa2046a5')
+ def do_ast2700_i2c_test(self):
+ exec_command_and_wait_for_pattern(self,
+ 'echo lm75 0x4d > /sys/class/i2c-dev/i2c-1/device/new_device ',
+ 'i2c i2c-1: new_device: Instantiated device lm75 at 0x4d');
+ exec_command_and_wait_for_pattern(self,
+ 'cat /sys/bus/i2c/devices/1-004d/hwmon/hwmon*/temp1_input', '0')
+ self.vm.cmd('qom-set', path='/machine/peripheral/tmp-test',
+ property='temperature', value=18000)
+ exec_command_and_wait_for_pattern(self,
+ 'cat /sys/bus/i2c/devices/1-004d/hwmon/hwmon*/temp1_input', '18000')
+
def start_ast2700_test(self, name):
num_cpu = 4
uboot_size = os.path.getsize(self.scratch_file(name,
@@ -73,8 +86,6 @@ def start_ast2700_test(self, name):
f'loader,addr=0x430000000,cpu-num={i}')
self.vm.add_args('-smp', str(num_cpu))
- self.vm.add_args('-device',
- 'tmp105,bus=aspeed.i2c.bus.1,address=0x4d,id=tmp-test')
self.do_test_aarch64_aspeed_sdk_start(
self.scratch_file(name, 'image-bmc'))
@@ -83,28 +94,19 @@ def start_ast2700_test(self, name):
exec_command_and_wait_for_pattern(self, 'root', 'Password:')
exec_command_and_wait_for_pattern(self, '0penBmc', f'root@{name}:~#')
- exec_command_and_wait_for_pattern(self,
- 'echo lm75 0x4d > /sys/class/i2c-dev/i2c-1/device/new_device ',
- 'i2c i2c-1: new_device: Instantiated device lm75 at 0x4d');
- exec_command_and_wait_for_pattern(self,
- 'cat /sys/bus/i2c/devices/1-004d/hwmon/hwmon*/temp1_input', '0')
- self.vm.cmd('qom-set', path='/machine/peripheral/tmp-test',
- property='temperature', value=18000)
- exec_command_and_wait_for_pattern(self,
- 'cat /sys/bus/i2c/devices/1-004d/hwmon/hwmon*/temp1_input', '18000')
-
def test_aarch64_ast2700_evb_sdk_v09_05(self):
self.set_machine('ast2700-evb')
self.archive_extract(self.ASSET_SDK_V905_AST2700)
self.start_ast2700_test('ast2700-a0-default')
+ self.do_ast2700_i2c_test()
def test_aarch64_ast2700a1_evb_sdk_v09_05(self):
self.set_machine('ast2700a1-evb')
self.archive_extract(self.ASSET_SDK_V905_AST2700A1)
self.start_ast2700_test('ast2700-default')
-
+ self.do_ast2700_i2c_test()
if __name__ == '__main__':
QemuSystemTest.main()
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v5 08/11] tests/functional/aspeed: Update test ASPEED SDK v09.06
2025-04-23 7:23 [PATCH v5 00/11] Support vbootrom for AST2700 Jamin Lin via
` (6 preceding siblings ...)
2025-04-23 7:23 ` [PATCH v5 07/11] tests/functional/aspeed: Move I2C test into shared helper for AST2700 reuse Jamin Lin via
@ 2025-04-23 7:23 ` Jamin Lin via
2025-04-23 7:23 ` [PATCH v5 09/11] tests/functional/aspeed: extract boot and login sequence into helper function Jamin Lin via
` (3 subsequent siblings)
11 siblings, 0 replies; 26+ messages in thread
From: Jamin Lin via @ 2025-04-23 7:23 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan, Cédric Le Goater
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
---
tests/functional/test_aarch64_aspeed.py | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/tests/functional/test_aarch64_aspeed.py b/tests/functional/test_aarch64_aspeed.py
index 441f7f3919..337d701917 100755
--- a/tests/functional/test_aarch64_aspeed.py
+++ b/tests/functional/test_aarch64_aspeed.py
@@ -29,13 +29,13 @@ def do_test_aarch64_aspeed_sdk_start(self, image):
wait_for_console_pattern(self, '## Loading kernel from FIT Image')
wait_for_console_pattern(self, 'Starting kernel ...')
- ASSET_SDK_V905_AST2700 = Asset(
- 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v09.05/ast2700-a0-default-obmc.tar.gz',
- 'cfbbd1cce72f2a3b73b9080c41eecdadebb7077fba4f7806d72ac99f3e84b74a')
+ ASSET_SDK_V906_AST2700 = Asset(
+ 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v09.06/ast2700-a0-default-obmc.tar.gz',
+ '7247b6f19dbfb700686f8d9f723ac23f3eb229226c0589cb9b06b80d1b61f3cb')
- ASSET_SDK_V905_AST2700A1 = Asset(
- 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v09.05/ast2700-default-obmc.tar.gz',
- 'c1f4496aec06743c812a6e9a1a18d032f34d62f3ddb6956e924fef62aa2046a5')
+ ASSET_SDK_V906_AST2700A1 = Asset(
+ 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v09.06/ast2700-default-obmc.tar.gz',
+ 'f1d53e0be8a404ecce3e105f72bc50fa4e090ad13160ffa91b10a6e0233a9dc6')
def do_ast2700_i2c_test(self):
exec_command_and_wait_for_pattern(self,
@@ -94,17 +94,17 @@ def start_ast2700_test(self, name):
exec_command_and_wait_for_pattern(self, 'root', 'Password:')
exec_command_and_wait_for_pattern(self, '0penBmc', f'root@{name}:~#')
- def test_aarch64_ast2700_evb_sdk_v09_05(self):
+ def test_aarch64_ast2700_evb_sdk_v09_06(self):
self.set_machine('ast2700-evb')
- self.archive_extract(self.ASSET_SDK_V905_AST2700)
+ self.archive_extract(self.ASSET_SDK_V906_AST2700)
self.start_ast2700_test('ast2700-a0-default')
self.do_ast2700_i2c_test()
- def test_aarch64_ast2700a1_evb_sdk_v09_05(self):
+ def test_aarch64_ast2700a1_evb_sdk_v09_06(self):
self.set_machine('ast2700a1-evb')
- self.archive_extract(self.ASSET_SDK_V905_AST2700A1)
+ self.archive_extract(self.ASSET_SDK_V906_AST2700A1)
self.start_ast2700_test('ast2700-default')
self.do_ast2700_i2c_test()
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v5 09/11] tests/functional/aspeed: extract boot and login sequence into helper function
2025-04-23 7:23 [PATCH v5 00/11] Support vbootrom for AST2700 Jamin Lin via
` (7 preceding siblings ...)
2025-04-23 7:23 ` [PATCH v5 08/11] tests/functional/aspeed: Update test ASPEED SDK v09.06 Jamin Lin via
@ 2025-04-23 7:23 ` Jamin Lin via
2025-04-23 7:40 ` Cédric Le Goater
2025-04-23 7:23 ` [PATCH v5 10/11] tests/functional/aspeed: Add to test vbootrom for AST2700 Jamin Lin via
` (2 subsequent siblings)
11 siblings, 1 reply; 26+ messages in thread
From: Jamin Lin via @ 2025-04-23 7:23 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan
Extracted repeated boot and login steps into a new helper function.
No change in functional behavior.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
---
tests/functional/test_aarch64_aspeed.py | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/tests/functional/test_aarch64_aspeed.py b/tests/functional/test_aarch64_aspeed.py
index 337d701917..2f04655b60 100755
--- a/tests/functional/test_aarch64_aspeed.py
+++ b/tests/functional/test_aarch64_aspeed.py
@@ -25,10 +25,15 @@ def do_test_aarch64_aspeed_sdk_start(self, image):
self.vm.launch()
+ def verify_openbmc_boot_and_login(self, name):
wait_for_console_pattern(self, 'U-Boot 2023.10')
wait_for_console_pattern(self, '## Loading kernel from FIT Image')
wait_for_console_pattern(self, 'Starting kernel ...')
+ wait_for_console_pattern(self, f'{name} login:')
+ exec_command_and_wait_for_pattern(self, 'root', 'Password:')
+ exec_command_and_wait_for_pattern(self, '0penBmc', f'root@{name}:~#')
+
ASSET_SDK_V906_AST2700 = Asset(
'https://github.com/AspeedTech-BMC/openbmc/releases/download/v09.06/ast2700-a0-default-obmc.tar.gz',
'7247b6f19dbfb700686f8d9f723ac23f3eb229226c0589cb9b06b80d1b61f3cb')
@@ -89,16 +94,12 @@ def start_ast2700_test(self, name):
self.do_test_aarch64_aspeed_sdk_start(
self.scratch_file(name, 'image-bmc'))
- wait_for_console_pattern(self, f'{name} login:')
-
- exec_command_and_wait_for_pattern(self, 'root', 'Password:')
- exec_command_and_wait_for_pattern(self, '0penBmc', f'root@{name}:~#')
-
def test_aarch64_ast2700_evb_sdk_v09_06(self):
self.set_machine('ast2700-evb')
self.archive_extract(self.ASSET_SDK_V906_AST2700)
self.start_ast2700_test('ast2700-a0-default')
+ self.verify_openbmc_boot_and_login('ast2700-a0-default')
self.do_ast2700_i2c_test()
def test_aarch64_ast2700a1_evb_sdk_v09_06(self):
@@ -106,6 +107,7 @@ def test_aarch64_ast2700a1_evb_sdk_v09_06(self):
self.archive_extract(self.ASSET_SDK_V906_AST2700A1)
self.start_ast2700_test('ast2700-default')
+ self.verify_openbmc_boot_and_login('ast2700-default')
self.do_ast2700_i2c_test()
if __name__ == '__main__':
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v5 10/11] tests/functional/aspeed: Add to test vbootrom for AST2700
2025-04-23 7:23 [PATCH v5 00/11] Support vbootrom for AST2700 Jamin Lin via
` (8 preceding siblings ...)
2025-04-23 7:23 ` [PATCH v5 09/11] tests/functional/aspeed: extract boot and login sequence into helper function Jamin Lin via
@ 2025-04-23 7:23 ` Jamin Lin via
2025-04-23 21:27 ` Cédric Le Goater
2025-04-23 7:23 ` [PATCH v5 11/11] docs/system/arm/aspeed: Support " Jamin Lin via
2025-04-23 9:36 ` [PATCH v5 00/11] " Cédric Le Goater
11 siblings, 1 reply; 26+ messages in thread
From: Jamin Lin via @ 2025-04-23 7:23 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan
Add the AST2700 functional test to boot using the vbootrom image
instead of manually loading boot components with -device loader.
The boot ROM binary is now passed via the
-bios option, using the image located in pc-bios/ast27x0_bootrom.bin.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
---
tests/functional/test_aarch64_aspeed.py | 26 +++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/tests/functional/test_aarch64_aspeed.py b/tests/functional/test_aarch64_aspeed.py
index 2f04655b60..34ddfa852c 100755
--- a/tests/functional/test_aarch64_aspeed.py
+++ b/tests/functional/test_aarch64_aspeed.py
@@ -25,6 +25,18 @@ def do_test_aarch64_aspeed_sdk_start(self, image):
self.vm.launch()
+ def verify_vbootrom_firmware_flow(self):
+ wait_for_console_pattern(self, 'Found valid FIT image')
+ wait_for_console_pattern(self, '[uboot] loading')
+ wait_for_console_pattern(self, 'done')
+ wait_for_console_pattern(self, '[fdt] loading')
+ wait_for_console_pattern(self, 'done')
+ wait_for_console_pattern(self, '[tee] loading')
+ wait_for_console_pattern(self, 'done')
+ wait_for_console_pattern(self, '[atf] loading')
+ wait_for_console_pattern(self, 'done')
+ wait_for_console_pattern(self, 'Jumping to BL31 (Trusted Firmware-A)')
+
def verify_openbmc_boot_and_login(self, name):
wait_for_console_pattern(self, 'U-Boot 2023.10')
wait_for_console_pattern(self, '## Loading kernel from FIT Image')
@@ -94,6 +106,11 @@ def start_ast2700_test(self, name):
self.do_test_aarch64_aspeed_sdk_start(
self.scratch_file(name, 'image-bmc'))
+ def start_ast2700_test_vbootrom(self, name):
+ self.vm.add_args('-bios', 'ast27x0_bootrom.bin')
+ self.do_test_aarch64_aspeed_sdk_start(
+ self.scratch_file(name, 'image-bmc'))
+
def test_aarch64_ast2700_evb_sdk_v09_06(self):
self.set_machine('ast2700-evb')
@@ -110,5 +127,14 @@ def test_aarch64_ast2700a1_evb_sdk_v09_06(self):
self.verify_openbmc_boot_and_login('ast2700-default')
self.do_ast2700_i2c_test()
+ def test_aarch64_ast2700a1_evb_sdk_vbootrom_v09_06(self):
+ self.set_machine('ast2700a1-evb')
+
+ self.archive_extract(self.ASSET_SDK_V906_AST2700A1)
+ self.start_ast2700_test_vbootrom('ast2700-default')
+ self.verify_vbootrom_firmware_flow()
+ self.verify_openbmc_boot_and_login('ast2700-default')
+ self.do_ast2700_i2c_test()
+
if __name__ == '__main__':
QemuSystemTest.main()
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v5 11/11] docs/system/arm/aspeed: Support vbootrom for AST2700
2025-04-23 7:23 [PATCH v5 00/11] Support vbootrom for AST2700 Jamin Lin via
` (9 preceding siblings ...)
2025-04-23 7:23 ` [PATCH v5 10/11] tests/functional/aspeed: Add to test vbootrom for AST2700 Jamin Lin via
@ 2025-04-23 7:23 ` Jamin Lin via
2025-04-23 9:49 ` Cédric Le Goater
2025-04-23 9:36 ` [PATCH v5 00/11] " Cédric Le Goater
11 siblings, 1 reply; 26+ messages in thread
From: Jamin Lin via @ 2025-04-23 7:23 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan
Using the vbootrom image support and the boot ROM binary is
now passed via the -bios option, using the image located in
pc-bios/ast27x0_bootrom.bin.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Nabih Estefan <nabihestefan@google.com>
---
docs/system/arm/aspeed.rst | 96 +++++++++++++++++++++++++++++++++++---
1 file changed, 90 insertions(+), 6 deletions(-)
diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst
index 97fd6a0e7f..e15e276a48 100644
--- a/docs/system/arm/aspeed.rst
+++ b/docs/system/arm/aspeed.rst
@@ -1,4 +1,4 @@
-Aspeed family boards (``ast2500-evb``, ``ast2600-evb``, ``ast2700-evb``, ``bletchley-bmc``, ``fuji-bmc``, ``fby35-bmc``, ``fp5280g2-bmc``, ``g220a-bmc``, ``palmetto-bmc``, ``qcom-dc-scm-v1-bmc``, ``qcom-firework-bmc``, ``quanta-q71l-bmc``, ``rainier-bmc``, ``romulus-bmc``, ``sonorapass-bmc``, ``supermicrox11-bmc``, ``supermicrox11spi-bmc``, ``tiogapass-bmc``, ``witherspoon-bmc``, ``yosemitev2-bmc``)
+Aspeed family boards (``ast2500-evb``, ``ast2600-evb``, ``bletchley-bmc``, ``fuji-bmc``, ``fby35-bmc``, ``fp5280g2-bmc``, ``g220a-bmc``, ``palmetto-bmc``, ``qcom-dc-scm-v1-bmc``, ``qcom-firework-bmc``, ``quanta-q71l-bmc``, ``rainier-bmc``, ``romulus-bmc``, ``sonorapass-bmc``, ``supermicrox11-bmc``, ``supermicrox11spi-bmc``, ``tiogapass-bmc``, ``witherspoon-bmc``, ``yosemitev2-bmc``)
==================================================================================================================================================================================================================================================================================================================================================================================================================
The QEMU Aspeed machines model BMCs of various OpenPOWER systems and
@@ -39,10 +39,6 @@ AST2600 SoC based machines :
- ``qcom-dc-scm-v1-bmc`` Qualcomm DC-SCM V1 BMC
- ``qcom-firework-bmc`` Qualcomm Firework BMC
-AST2700 SoC based machines :
-
-- ``ast2700-evb`` Aspeed AST2700 Evaluation board (Cortex-A35)
-
Supported devices
-----------------
@@ -247,10 +243,78 @@ under Linux), use :
-M ast2500-evb,bmc-console=uart3
+Aspeed 2700 family boards (``ast2700-evb``)
+==================================================================
+
+The QEMU Aspeed machines model BMCs of Aspeed evaluation boards.
+They are based on different releases of the Aspeed SoC :
+the AST2700 with quad cores ARM Cortex-A35 64 bits CPUs (1.6GHz)
+
+The SoC comes with RAM, Gigabit ethernet, USB, SD/MMC, USB, SPI, I2C,
+etc.
+
+AST2700 SoC based machines :
+
+- ``ast2700-evb`` Aspeed AST2700 Evaluation board (Cortex-A35)
+
+Supported devices
+-----------------
+ * Interrupt Controller
+ * Timer Controller
+ * RTC Controller
+ * I2C Controller
+ * System Control Unit (SCU)
+ * SRAM mapping
+ * X-DMA Controller (basic interface)
+ * Static Memory Controller (SMC or FMC) - Only SPI Flash support
+ * SPI Memory Controller
+ * USB 2.0 Controller
+ * SD/MMC storage controllers
+ * SDRAM controller (dummy interface for basic settings and training)
+ * Watchdog Controller
+ * GPIO Controller (Master only)
+ * UART
+ * Ethernet controllers
+ * Front LEDs (PCA9552 on I2C bus)
+ * LPC Peripheral Controller (a subset of subdevices are supported)
+ * Hash/Crypto Engine (HACE) - Hash support only. TODO: Crypto
+ * ADC
+ * eMMC Boot Controller (dummy)
+ * PECI Controller (minimal)
+ * I3C Controller
+ * Internal Bridge Controller (SLI dummy)
+
+Missing devices
+---------------
+ * Coprocessor support
+ * PWM and Fan Controller
+ * Slave GPIO Controller
+ * Super I/O Controller
+ * PCI-Express 1 Controller
+ * Graphic Display Controller
+ * MCTP Controller
+ * Mailbox Controller
+ * Virtual UART
+ * eSPI Controller
+
+Boot options
+------------
+
+Images can be downloaded from the ASPEED Forked OpenBMC GitHub release repository :
+
+ https://github.com/AspeedTech-BMC/openbmc/releases
+
Booting the ast2700-evb machine
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Boot the AST2700 machine from the flash image, use an MTD drive :
+Boot the AST2700 machine from the flash image.
+
+There are two supported methods for booting the AST2700 machine with a flash image:
+
+Manual boot using ``-device loader``:
+
+It causes all 4 CPU cores to start execution from address ``0x430000000``, which
+corresponds to the BL31 image load address.
.. code-block:: bash
@@ -270,6 +334,26 @@ Boot the AST2700 machine from the flash image, use an MTD drive :
-drive file=${IMGDIR}/image-bmc,format=raw,if=mtd \
-nographic
+Boot using a virtual boot ROM (``-bios``):
+
+If users do not specify the ``-bios option``, QEMU will attempt to load the
+default vbootrom image ``ast27x0_bootrom.bin`` from either the current working
+directory or the ``pc-bios`` directory within the QEMU source tree.
+
+.. code-block:: bash
+
+ $ qemu-system-aarch64 -M ast2700-evb \
+ -drive file=image-bmc,format=raw,if=mtd \
+ -nographic
+
+The ``-bios`` option allows users to specify a custom path for the vbootrom
+image to be loaded during boot. This will load the vbootrom image from the
+specified path in the ${HOME} directory.
+
+.. code-block:: bash
+
+ -bios ${HOME}/ast27x0_bootrom.bin
+
Aspeed minibmc family boards (``ast1030-evb``)
==================================================================
--
2.43.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH v5 02/11] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region
2025-04-23 7:23 ` [PATCH v5 02/11] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region Jamin Lin via
@ 2025-04-23 7:39 ` Cédric Le Goater
0 siblings, 0 replies; 26+ messages in thread
From: Cédric Le Goater @ 2025-04-23 7:39 UTC (permalink / raw)
To: Jamin Lin, Peter Maydell, Steven Lee, Troy Lee, Andrew Jeffery,
Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: troy_lee, nabihestefan
On 4/23/25 09:23, Jamin Lin wrote:
> Introduce a new vbootrom memory region. The region is mapped at address
> "0x00000000" and has a size of 128KB, identical to the SRAM region size.
> This memory region is intended for loading a vbootrom image file as part of the
> boot process.
>
> The vbootrom registered in the SoC's address space using the ASPEED_DEV_VBOOTROM
> index.
>
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> Reviewed-by: Nabih Estefan <nabihestefan@google.com>
> Tested-by: Nabih Estefan <nabihestefan@google.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> include/hw/arm/aspeed_soc.h | 2 ++
> hw/arm/aspeed_ast27x0.c | 9 +++++++++
> 2 files changed, 11 insertions(+)
>
> diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h
> index f069d17d16..b4b23d693d 100644
> --- a/include/hw/arm/aspeed_soc.h
> +++ b/include/hw/arm/aspeed_soc.h
> @@ -59,6 +59,7 @@ struct AspeedSoCState {
> MemoryRegion sram;
> MemoryRegion spi_boot_container;
> MemoryRegion spi_boot;
> + MemoryRegion vbootrom;
> AddressSpace dram_as;
> AspeedRtcState rtc;
> AspeedTimerCtrlState timerctrl;
> @@ -169,6 +170,7 @@ struct AspeedSoCClass {
> const char *aspeed_soc_cpu_type(AspeedSoCClass *sc);
>
> enum {
> + ASPEED_DEV_VBOOTROM,
> ASPEED_DEV_SPI_BOOT,
> ASPEED_DEV_IOMEM,
> ASPEED_DEV_UART0,
> diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c
> index b05ed75ff4..968dfa5526 100644
> --- a/hw/arm/aspeed_ast27x0.c
> +++ b/hw/arm/aspeed_ast27x0.c
> @@ -24,6 +24,7 @@
> #include "qemu/log.h"
>
> static const hwaddr aspeed_soc_ast2700_memmap[] = {
> + [ASPEED_DEV_VBOOTROM] = 0x00000000,
> [ASPEED_DEV_SRAM] = 0x10000000,
> [ASPEED_DEV_HACE] = 0x12070000,
> [ASPEED_DEV_EMMC] = 0x12090000,
> @@ -657,6 +658,14 @@ static void aspeed_soc_ast2700_realize(DeviceState *dev, Error **errp)
> memory_region_add_subregion(s->memory,
> sc->memmap[ASPEED_DEV_SRAM], &s->sram);
>
> + /* VBOOTROM */
> + if (!memory_region_init_ram(&s->vbootrom, OBJECT(s), "aspeed.vbootrom",
> + 0x20000, errp)) {
> + return;
> + }
> + memory_region_add_subregion(s->memory,
> + sc->memmap[ASPEED_DEV_VBOOTROM], &s->vbootrom);
> +
> /* SCU */
> if (!sysbus_realize(SYS_BUS_DEVICE(&s->scu), errp)) {
> return;
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v5 09/11] tests/functional/aspeed: extract boot and login sequence into helper function
2025-04-23 7:23 ` [PATCH v5 09/11] tests/functional/aspeed: extract boot and login sequence into helper function Jamin Lin via
@ 2025-04-23 7:40 ` Cédric Le Goater
0 siblings, 0 replies; 26+ messages in thread
From: Cédric Le Goater @ 2025-04-23 7:40 UTC (permalink / raw)
To: Jamin Lin, Peter Maydell, Steven Lee, Troy Lee, Andrew Jeffery,
Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: troy_lee, nabihestefan
On 4/23/25 09:23, Jamin Lin wrote:
> Extracted repeated boot and login steps into a new helper function.
> No change in functional behavior.
>
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> tests/functional/test_aarch64_aspeed.py | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/tests/functional/test_aarch64_aspeed.py b/tests/functional/test_aarch64_aspeed.py
> index 337d701917..2f04655b60 100755
> --- a/tests/functional/test_aarch64_aspeed.py
> +++ b/tests/functional/test_aarch64_aspeed.py
> @@ -25,10 +25,15 @@ def do_test_aarch64_aspeed_sdk_start(self, image):
>
> self.vm.launch()
>
> + def verify_openbmc_boot_and_login(self, name):
> wait_for_console_pattern(self, 'U-Boot 2023.10')
> wait_for_console_pattern(self, '## Loading kernel from FIT Image')
> wait_for_console_pattern(self, 'Starting kernel ...')
>
> + wait_for_console_pattern(self, f'{name} login:')
> + exec_command_and_wait_for_pattern(self, 'root', 'Password:')
> + exec_command_and_wait_for_pattern(self, '0penBmc', f'root@{name}:~#')
> +
> ASSET_SDK_V906_AST2700 = Asset(
> 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v09.06/ast2700-a0-default-obmc.tar.gz',
> '7247b6f19dbfb700686f8d9f723ac23f3eb229226c0589cb9b06b80d1b61f3cb')
> @@ -89,16 +94,12 @@ def start_ast2700_test(self, name):
> self.do_test_aarch64_aspeed_sdk_start(
> self.scratch_file(name, 'image-bmc'))
>
> - wait_for_console_pattern(self, f'{name} login:')
> -
> - exec_command_and_wait_for_pattern(self, 'root', 'Password:')
> - exec_command_and_wait_for_pattern(self, '0penBmc', f'root@{name}:~#')
> -
> def test_aarch64_ast2700_evb_sdk_v09_06(self):
> self.set_machine('ast2700-evb')
>
> self.archive_extract(self.ASSET_SDK_V906_AST2700)
> self.start_ast2700_test('ast2700-a0-default')
> + self.verify_openbmc_boot_and_login('ast2700-a0-default')
> self.do_ast2700_i2c_test()
>
> def test_aarch64_ast2700a1_evb_sdk_v09_06(self):
> @@ -106,6 +107,7 @@ def test_aarch64_ast2700a1_evb_sdk_v09_06(self):
>
> self.archive_extract(self.ASSET_SDK_V906_AST2700A1)
> self.start_ast2700_test('ast2700-default')
> + self.verify_openbmc_boot_and_login('ast2700-default')
> self.do_ast2700_i2c_test()
>
> if __name__ == '__main__':
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v5 04/11] hw/arm/aspeed: Reuse rom_size variable for vbootrom setup
2025-04-23 7:23 ` [PATCH v5 04/11] hw/arm/aspeed: Reuse rom_size variable for vbootrom setup Jamin Lin via
@ 2025-04-23 9:20 ` Cédric Le Goater
2025-04-24 3:59 ` Jamin Lin
0 siblings, 1 reply; 26+ messages in thread
From: Cédric Le Goater @ 2025-04-23 9:20 UTC (permalink / raw)
To: Jamin Lin, Peter Maydell, Steven Lee, Troy Lee, Andrew Jeffery,
Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: troy_lee, nabihestefan, Cédric Le Goater
On 4/23/25 09:23, Jamin Lin wrote:
> Move the declaration of "rom_size" to an outer scope in aspeed_machine_init()
> so it can be reused for setting up the vbootrom region as well.
>
> This avoids introducing a redundant local variable and ensures consistent
> ROM sizing logic when both SPI boot and vbootrom are used.
>
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> Reviewed-by: Cédric Le Goater <clg@redhat.com>
> Tested-by: Nabih Estefan <nabihestefan@google.com>
> ---
> hw/arm/aspeed.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> index e852bbc4cb..b70a120e62 100644
> --- a/hw/arm/aspeed.c
> +++ b/hw/arm/aspeed.c
> @@ -381,6 +381,7 @@ static void aspeed_machine_init(MachineState *machine)
> AspeedSoCClass *sc;
> int i;
> DriveInfo *emmc0 = NULL;
> + uint64_t rom_size;
> bool boot_emmc;
>
> bmc->soc = ASPEED_SOC(object_new(amc->soc_name));
> @@ -475,7 +476,7 @@ static void aspeed_machine_init(MachineState *machine)
> BlockBackend *fmc0 = dev ? m25p80_get_blk(dev) : NULL;
>
> if (fmc0 && !boot_emmc) {
> - uint64_t rom_size = memory_region_size(&bmc->soc->spi_boot);
> + rom_size = memory_region_size(&bmc->soc->spi_boot);
> aspeed_install_boot_rom(bmc, fmc0, rom_size);
> } else if (emmc0) {
> aspeed_install_boot_rom(bmc, blk_by_legacy_dinfo(emmc0), 64 * KiB);
I don't think this patch is useful. See comment on patch 6.
Thanks,
C.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v5 06/11] hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
2025-04-23 7:23 ` [PATCH v5 06/11] hw/arm/aspeed: Add support for loading vbootrom image via "-bios" Jamin Lin via
@ 2025-04-23 9:23 ` Cédric Le Goater
2025-04-24 4:01 ` Jamin Lin
0 siblings, 1 reply; 26+ messages in thread
From: Cédric Le Goater @ 2025-04-23 9:23 UTC (permalink / raw)
To: Jamin Lin, Peter Maydell, Steven Lee, Troy Lee, Andrew Jeffery,
Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: troy_lee, nabihestefan
On 4/23/25 09:23, Jamin Lin wrote:
> 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>
> Reviewed-by: Nabih Estefan <nabihestefan@google.com>
> Tested-by: Nabih Estefan <nabihestefan@google.com>
> ---
> hw/arm/aspeed.c | 35 +++++++++++++++++++++++++++++++++++
> 1 file changed, 35 insertions(+)
>
> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> index b70a120e62..b5831ef4c1 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,35 @@ static void aspeed_install_boot_rom(AspeedMachineState *bmc, BlockBackend *blk,
> rom_size, &error_abort);
> }
>
> +#define VBOOTROM_FILE_NAME "ast27x0_bootrom.bin"
> +
> +/*
> + * 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,
rom_size is unused.
> + Error **errp)
> +{
> + AspeedMachineState *bmc = ASPEED_MACHINE(machine);
> + const char *bios_name = machine->firmware ?: VBOOTROM_FILE_NAME;
I would change the prototype of aspeed_load_vbootrom to:
void aspeed_load_vbootrom(AspeedMachineState *bmc, const char *bios_name,
Error **errp)
Thanks,
C.
> + g_autofree char *filename = NULL;
> + AspeedSoCState *soc = bmc->soc;
> + int ret;
> +
> + filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
> + if (!filename) {
> + error_setg(errp, "Could not find vbootrom image '%s'", bios_name);
> + return;
> + }
> +
> + ret = load_image_mr(filename, &soc->vbootrom);
> + if (ret < 0) {
> + error_setg(errp, "Failed to load vbootrom image '%s'", bios_name);
> + return;
> + }
> +}
> +
> void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype,
> unsigned int count, int unit0)
> {
> @@ -483,6 +513,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, &error_abort);
> + }
> +
> arm_load_kernel(ARM_CPU(first_cpu), machine, &aspeed_board_binfo);
> }
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v5 05/11] pc-bios: Add AST27x0 vBootrom
2025-04-23 7:23 ` [PATCH v5 05/11] pc-bios: Add AST27x0 vBootrom Jamin Lin via
@ 2025-04-23 9:28 ` Cédric Le Goater
2025-04-23 20:29 ` Nabih Estefan
0 siblings, 1 reply; 26+ messages in thread
From: Cédric Le Goater @ 2025-04-23 9:28 UTC (permalink / raw)
To: Jamin Lin, Peter Maydell, Steven Lee, Troy Lee, Andrew Jeffery,
Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: troy_lee, nabihestefan
On 4/23/25 09:23, Jamin Lin wrote:
> The boot ROM is a minimal implementation designed to load an AST27x0 boot image.
> Its source code is available at:
> https://github.com/google/vbootrom
It is not merged yet. Please resend when done and mention the commit id.
Thanks,
C.
>
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> Reviewed-by: Nabih Estefan <nabihestefan@google.com>
> Tested-by: Nabih Estefan <nabihestefan@google.com>
> ---
> MAINTAINERS | 1 +
> pc-bios/README | 6 ++++++
> pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15424 bytes
> pc-bios/meson.build | 1 +
> 4 files changed, 8 insertions(+)
> create mode 100644 pc-bios/ast27x0_bootrom.bin
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index d54b5578f8..70ab0d0afa 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1163,6 +1163,7 @@ F: docs/system/arm/fby35.rst
> F: tests/*/*aspeed*
> F: tests/*/*ast2700*
> F: hw/arm/fby35.c
> +F: pc-bios/ast27x0_bootrom.bin
>
> NRF51
> M: Joel Stanley <joel@jms.id.au>
> diff --git a/pc-bios/README b/pc-bios/README
> index f0f13e15f2..d009c37895 100644
> --- a/pc-bios/README
> +++ b/pc-bios/README
> @@ -89,6 +89,12 @@
> more features over time as needed. The source code is available at:
> https://github.com/google/vbootrom
>
> +- ast27x0_bootrom.bin is a simplified, free (Apache 2.0) boot ROM for
> + ASPEED AST27x0 BMC SOC. It currently implements the bare minimum to
> + load, parse, initialize and run boot images stored in SPI flash, but may grow
> + more features over time as needed. The source code is available at:
> + https://github.com/google/vbootrom
> +
> - hppa-firmware.img (32-bit) and hppa-firmware64.img (64-bit) are firmware
> files for the HP-PARISC (hppa) architecture.
> They are built form the SeaBIOS-hppa sources, which is a fork of SeaBIOS
> diff --git a/pc-bios/ast27x0_bootrom.bin b/pc-bios/ast27x0_bootrom.bin
> new file mode 100644
> index 0000000000000000000000000000000000000000..d46403b023c00f989b6facb397d57bea7e5c583a
> GIT binary patch
> literal 15424
> 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
> TJDH<UkE#+fTtE*0xX=Fr0X;+;
>
> literal 0
> HcmV?d00001
>
> diff --git a/pc-bios/meson.build b/pc-bios/meson.build
> index 34d6616c32..83998f6071 100644
> --- a/pc-bios/meson.build
> +++ b/pc-bios/meson.build
> @@ -84,6 +84,7 @@ blobs = [
> 'npcm8xx_bootrom.bin',
> 'vof.bin',
> 'vof-nvram.bin',
> + 'ast27x0_bootrom.bin',
> ]
>
> dtc = find_program('dtc', required: false)
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v5 03/11] hw/arm/aspeed: Add vbootrom support on AST2700 EVB machines
2025-04-23 7:23 ` [PATCH v5 03/11] hw/arm/aspeed: Add vbootrom support on AST2700 EVB machines Jamin Lin via
@ 2025-04-23 9:29 ` Cédric Le Goater
2025-04-24 4:00 ` Jamin Lin
0 siblings, 1 reply; 26+ messages in thread
From: Cédric Le Goater @ 2025-04-23 9:29 UTC (permalink / raw)
To: Jamin Lin, Peter Maydell, Steven Lee, Troy Lee, Andrew Jeffery,
Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: troy_lee, nabihestefan
On 4/23/25 09:23, Jamin Lin wrote:
> Introduce a new "vbootrom" field in the AspeedMachineClass to indicate whether
> a machine supports the virtual boot ROM region.
>
> Set this field to true by default for the AST2700-A0 and AST2700-A1 EVB
> machines.
>
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> Reviewed-by: Nabih Estefan <nabihestefan@google.com>
> Tested-by: Nabih Estefan <nabihestefan@google.com>
I would merge this patch in patch 6.
Thanks,
C.
> ---
> include/hw/arm/aspeed.h | 1 +
> hw/arm/aspeed.c | 2 ++
> 2 files changed, 3 insertions(+)
>
> diff --git a/include/hw/arm/aspeed.h b/include/hw/arm/aspeed.h
> index 9cae45a1c9..973277bea6 100644
> --- a/include/hw/arm/aspeed.h
> +++ b/include/hw/arm/aspeed.h
> @@ -40,6 +40,7 @@ struct AspeedMachineClass {
> void (*i2c_init)(AspeedMachineState *bmc);
> uint32_t uart_default;
> bool sdhci_wp_inverted;
> + bool vbootrom;
> };
>
>
> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> index 82f42582fa..e852bbc4cb 100644
> --- a/hw/arm/aspeed.c
> +++ b/hw/arm/aspeed.c
> @@ -1689,6 +1689,7 @@ static void aspeed_machine_ast2700a0_evb_class_init(ObjectClass *oc, void *data)
> amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON | ASPEED_MAC2_ON;
> amc->uart_default = ASPEED_DEV_UART12;
> amc->i2c_init = ast2700_evb_i2c_init;
> + amc->vbootrom = true;
> mc->auto_create_sdcard = true;
> mc->default_ram_size = 1 * GiB;
> aspeed_machine_class_init_cpus_defaults(mc);
> @@ -1709,6 +1710,7 @@ static void aspeed_machine_ast2700a1_evb_class_init(ObjectClass *oc, void *data)
> amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON | ASPEED_MAC2_ON;
> amc->uart_default = ASPEED_DEV_UART12;
> amc->i2c_init = ast2700_evb_i2c_init;
> + amc->vbootrom = true;
> mc->auto_create_sdcard = true;
> mc->default_ram_size = 1 * GiB;
> aspeed_machine_class_init_cpus_defaults(mc);
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v5 00/11] Support vbootrom for AST2700
2025-04-23 7:23 [PATCH v5 00/11] Support vbootrom for AST2700 Jamin Lin via
` (10 preceding siblings ...)
2025-04-23 7:23 ` [PATCH v5 11/11] docs/system/arm/aspeed: Support " Jamin Lin via
@ 2025-04-23 9:36 ` Cédric Le Goater
11 siblings, 0 replies; 26+ messages in thread
From: Cédric Le Goater @ 2025-04-23 9:36 UTC (permalink / raw)
To: Jamin Lin, Peter Maydell, Steven Lee, Troy Lee, Andrew Jeffery,
Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: troy_lee, nabihestefan
On 4/23/25 09:23, Jamin Lin wrote:
> v1:
> Add initial support for AST27x0
> The purpose of vbootrom here is to simulate the work of BootMCU SPL (riscv)
> in AST2700, because QEMU doesn't support heterogenous architecture yet.
>
> ast27x0_bootrom.bin is a simplified, free (Apache 2.0) boot ROM for
> ASPEED AST27x0 BMC SOC. It currently implements the bare minimum to
> load, parse, initialize and run boot images stored in SPI flash, but may grow
> more features over time as needed. The source code is available at:
> https://github.com/google/vbootrom
>
> v2:
> Add "Introduced ASPEED_DEV_VBOOTROM in the device enumeration" patch to fix
> build failed.
>
> v3:
> 1. Supports both vbootrom and device loader boot methods, with vbootrom used as
> the default.
> 2. Fix review and QTEST test failed issues.
>
> v4:
> Adjust the patch order.
>
> v5:
> fix review issue and remove unnecessary class attribure.
> doc: create a new section for AST2700.
>
> Jamin Lin (11):
> hw/arm/aspeed_ast27x0: Rename variable sram_name to name in ast2700
> realize
> hw/arm/aspeed_ast27x0 Introduce vbootrom memory region
> hw/arm/aspeed: Add vbootrom support on AST2700 EVB machines
> hw/arm/aspeed: Reuse rom_size variable for vbootrom setup
> pc-bios: Add AST27x0 vBootrom
> hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
> tests/functional/aspeed: Move I2C test into shared helper for AST2700
> reuse
> tests/functional/aspeed: Update test ASPEED SDK v09.06
> tests/functional/aspeed: extract boot and login sequence into helper
> function
> tests/functional/aspeed: Add to test vbootrom for AST2700
> docs/system/arm/aspeed: Support vbootrom for AST2700
>
> MAINTAINERS | 1 +
> docs/system/arm/aspeed.rst | 96 ++++++++++++++++++++++--
> include/hw/arm/aspeed.h | 1 +
> include/hw/arm/aspeed_soc.h | 2 +
> hw/arm/aspeed.c | 40 +++++++++-
> hw/arm/aspeed_ast27x0.c | 17 ++++-
> pc-bios/README | 6 ++
> pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15424 bytes
> pc-bios/meson.build | 1 +
> tests/functional/test_aarch64_aspeed.py | 82 +++++++++++++-------
> 10 files changed, 209 insertions(+), 37 deletions(-)
> create mode 100644 pc-bios/ast27x0_bootrom.bin
>
Applied patches 1,7,8,9 to aspeed-next.
Thanks,
C.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v5 11/11] docs/system/arm/aspeed: Support vbootrom for AST2700
2025-04-23 7:23 ` [PATCH v5 11/11] docs/system/arm/aspeed: Support " Jamin Lin via
@ 2025-04-23 9:49 ` Cédric Le Goater
0 siblings, 0 replies; 26+ messages in thread
From: Cédric Le Goater @ 2025-04-23 9:49 UTC (permalink / raw)
To: Jamin Lin, Peter Maydell, Steven Lee, Troy Lee, Andrew Jeffery,
Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: troy_lee, nabihestefan
On 4/23/25 09:23, Jamin Lin wrote:
> Using the vbootrom image support and the boot ROM binary is
> now passed via the -bios option, using the image located in
> pc-bios/ast27x0_bootrom.bin.
>
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> Reviewed-by: Nabih Estefan <nabihestefan@google.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Some comments below,
> ---
> docs/system/arm/aspeed.rst | 96 +++++++++++++++++++++++++++++++++++---
> 1 file changed, 90 insertions(+), 6 deletions(-)
>
> diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst
> index 97fd6a0e7f..e15e276a48 100644
> --- a/docs/system/arm/aspeed.rst
> +++ b/docs/system/arm/aspeed.rst
> @@ -1,4 +1,4 @@
> -Aspeed family boards (``ast2500-evb``, ``ast2600-evb``, ``ast2700-evb``, ``bletchley-bmc``, ``fuji-bmc``, ``fby35-bmc``, ``fp5280g2-bmc``, ``g220a-bmc``, ``palmetto-bmc``, ``qcom-dc-scm-v1-bmc``, ``qcom-firework-bmc``, ``quanta-q71l-bmc``, ``rainier-bmc``, ``romulus-bmc``, ``sonorapass-bmc``, ``supermicrox11-bmc``, ``supermicrox11spi-bmc``, ``tiogapass-bmc``, ``witherspoon-bmc``, ``yosemitev2-bmc``)
> +Aspeed family boards (``ast2500-evb``, ``ast2600-evb``, ``bletchley-bmc``, ``fuji-bmc``, ``fby35-bmc``, ``fp5280g2-bmc``, ``g220a-bmc``, ``palmetto-bmc``, ``qcom-dc-scm-v1-bmc``, ``qcom-firework-bmc``, ``quanta-q71l-bmc``, ``rainier-bmc``, ``romulus-bmc``, ``sonorapass-bmc``, ``supermicrox11-bmc``, ``supermicrox11spi-bmc``, ``tiogapass-bmc``, ``witherspoon-bmc``, ``yosemitev2-bmc``)
> ==================================================================================================================================================================================================================================================================================================================================================================================================================
>
> The QEMU Aspeed machines model BMCs of various OpenPOWER systems and
> @@ -39,10 +39,6 @@ AST2600 SoC based machines :
> - ``qcom-dc-scm-v1-bmc`` Qualcomm DC-SCM V1 BMC
> - ``qcom-firework-bmc`` Qualcomm Firework BMC
>
> -AST2700 SoC based machines :
> -
> -- ``ast2700-evb`` Aspeed AST2700 Evaluation board (Cortex-A35)
> -
This will conflict with Steven's series adding the ast2700fc machine.
To ease upstreaming of both, it might be good idea to separate the
change adding the "Aspeed 2700 family boards" section from the change
adding the "Boot using a virtual boot ROM" subsection.
Thanks,
C.
> Supported devices
> -----------------
>
> @@ -247,10 +243,78 @@ under Linux), use :
>
> -M ast2500-evb,bmc-console=uart3
>
> +Aspeed 2700 family boards (``ast2700-evb``)
> +==================================================================
> +
> +The QEMU Aspeed machines model BMCs of Aspeed evaluation boards.
> +They are based on different releases of the Aspeed SoC :
> +the AST2700 with quad cores ARM Cortex-A35 64 bits CPUs (1.6GHz)
> +
> +The SoC comes with RAM, Gigabit ethernet, USB, SD/MMC, USB, SPI, I2C,
> +etc.
> +
> +AST2700 SoC based machines :
> +
> +- ``ast2700-evb`` Aspeed AST2700 Evaluation board (Cortex-A35)
> +
> +Supported devices
> +-----------------
> + * Interrupt Controller
> + * Timer Controller
> + * RTC Controller
> + * I2C Controller
> + * System Control Unit (SCU)
> + * SRAM mapping
> + * X-DMA Controller (basic interface)
> + * Static Memory Controller (SMC or FMC) - Only SPI Flash support
> + * SPI Memory Controller
> + * USB 2.0 Controller
> + * SD/MMC storage controllers
> + * SDRAM controller (dummy interface for basic settings and training)
> + * Watchdog Controller
> + * GPIO Controller (Master only)
> + * UART
> + * Ethernet controllers
> + * Front LEDs (PCA9552 on I2C bus)
> + * LPC Peripheral Controller (a subset of subdevices are supported)
> + * Hash/Crypto Engine (HACE) - Hash support only. TODO: Crypto
> + * ADC
> + * eMMC Boot Controller (dummy)
> + * PECI Controller (minimal)
> + * I3C Controller
> + * Internal Bridge Controller (SLI dummy)
> +
> +Missing devices
> +---------------
> + * Coprocessor support
> + * PWM and Fan Controller
> + * Slave GPIO Controller
> + * Super I/O Controller
> + * PCI-Express 1 Controller
> + * Graphic Display Controller
> + * MCTP Controller
> + * Mailbox Controller
> + * Virtual UART
> + * eSPI Controller
> +
> +Boot options
> +------------
> +
> +Images can be downloaded from the ASPEED Forked OpenBMC GitHub release repository :
> +
> + https://github.com/AspeedTech-BMC/openbmc/releases
> +
> Booting the ast2700-evb machine
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> -Boot the AST2700 machine from the flash image, use an MTD drive :
> +Boot the AST2700 machine from the flash image.
> +
> +There are two supported methods for booting the AST2700 machine with a flash image:
> +
> +Manual boot using ``-device loader``:
> +
> +It causes all 4 CPU cores to start execution from address ``0x430000000``, which
> +corresponds to the BL31 image load address.
>
> .. code-block:: bash
>
> @@ -270,6 +334,26 @@ Boot the AST2700 machine from the flash image, use an MTD drive :
> -drive file=${IMGDIR}/image-bmc,format=raw,if=mtd \
> -nographic
>
> +Boot using a virtual boot ROM (``-bios``):
> +
> +If users do not specify the ``-bios option``, QEMU will attempt to load the
> +default vbootrom image ``ast27x0_bootrom.bin`` from either the current working
> +directory or the ``pc-bios`` directory within the QEMU source tree.
> +
> +.. code-block:: bash
> +
> + $ qemu-system-aarch64 -M ast2700-evb \
> + -drive file=image-bmc,format=raw,if=mtd \
> + -nographic
> +
> +The ``-bios`` option allows users to specify a custom path for the vbootrom
> +image to be loaded during boot. This will load the vbootrom image from the
> +specified path in the ${HOME} directory.
> +
> +.. code-block:: bash
> +
> + -bios ${HOME}/ast27x0_bootrom.bin
> +
> Aspeed minibmc family boards (``ast1030-evb``)
> ==================================================================
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v5 05/11] pc-bios: Add AST27x0 vBootrom
2025-04-23 9:28 ` Cédric Le Goater
@ 2025-04-23 20:29 ` Nabih Estefan
2025-04-23 21:28 ` Cédric Le Goater
0 siblings, 1 reply; 26+ messages in thread
From: Nabih Estefan @ 2025-04-23 20:29 UTC (permalink / raw)
To: Cédric Le Goater
Cc: Jamin Lin, Peter Maydell, Steven Lee, Troy Lee, Andrew Jeffery,
Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs, troy_lee
Just got merged into https://github.com/google/vbootrom
Commit id: 82bed5ca62295228ea7bcdc721b63db178f686e8
Thanks,
Nabih
On Wed, Apr 23, 2025 at 2:28 AM Cédric Le Goater <clg@kaod.org> wrote:
>
> On 4/23/25 09:23, Jamin Lin wrote:
> > The boot ROM is a minimal implementation designed to load an AST27x0 boot image.
> > Its source code is available at:
> > https://github.com/google/vbootrom
>
> It is not merged yet. Please resend when done and mention the commit id.
>
> Thanks,
>
> C.
>
>
>
>
> >
> > Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> > Reviewed-by: Nabih Estefan <nabihestefan@google.com>
> > Tested-by: Nabih Estefan <nabihestefan@google.com>
> > ---
> > MAINTAINERS | 1 +
> > pc-bios/README | 6 ++++++
> > pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15424 bytes
> > pc-bios/meson.build | 1 +
> > 4 files changed, 8 insertions(+)
> > create mode 100644 pc-bios/ast27x0_bootrom.bin
> >
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index d54b5578f8..70ab0d0afa 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -1163,6 +1163,7 @@ F: docs/system/arm/fby35.rst
> > F: tests/*/*aspeed*
> > F: tests/*/*ast2700*
> > F: hw/arm/fby35.c
> > +F: pc-bios/ast27x0_bootrom.bin
> >
> > NRF51
> > M: Joel Stanley <joel@jms.id.au>
> > diff --git a/pc-bios/README b/pc-bios/README
> > index f0f13e15f2..d009c37895 100644
> > --- a/pc-bios/README
> > +++ b/pc-bios/README
> > @@ -89,6 +89,12 @@
> > more features over time as needed. The source code is available at:
> > https://github.com/google/vbootrom
> >
> > +- ast27x0_bootrom.bin is a simplified, free (Apache 2.0) boot ROM for
> > + ASPEED AST27x0 BMC SOC. It currently implements the bare minimum to
> > + load, parse, initialize and run boot images stored in SPI flash, but may grow
> > + more features over time as needed. The source code is available at:
> > + https://github.com/google/vbootrom
> > +
> > - hppa-firmware.img (32-bit) and hppa-firmware64.img (64-bit) are firmware
> > files for the HP-PARISC (hppa) architecture.
> > They are built form the SeaBIOS-hppa sources, which is a fork of SeaBIOS
> > diff --git a/pc-bios/ast27x0_bootrom.bin b/pc-bios/ast27x0_bootrom.bin
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..d46403b023c00f989b6facb397d57bea7e5c583a
> > GIT binary patch
> > literal 15424
> > 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
> > TJDH<UkE#+fTtE*0xX=Fr0X;+;
> >
> > literal 0
> > HcmV?d00001
> >
> > diff --git a/pc-bios/meson.build b/pc-bios/meson.build
> > index 34d6616c32..83998f6071 100644
> > --- a/pc-bios/meson.build
> > +++ b/pc-bios/meson.build
> > @@ -84,6 +84,7 @@ blobs = [
> > 'npcm8xx_bootrom.bin',
> > 'vof.bin',
> > 'vof-nvram.bin',
> > + 'ast27x0_bootrom.bin',
> > ]
> >
> > dtc = find_program('dtc', required: false)
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v5 10/11] tests/functional/aspeed: Add to test vbootrom for AST2700
2025-04-23 7:23 ` [PATCH v5 10/11] tests/functional/aspeed: Add to test vbootrom for AST2700 Jamin Lin via
@ 2025-04-23 21:27 ` Cédric Le Goater
0 siblings, 0 replies; 26+ messages in thread
From: Cédric Le Goater @ 2025-04-23 21:27 UTC (permalink / raw)
To: Jamin Lin, Peter Maydell, Steven Lee, Troy Lee, Andrew Jeffery,
Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: troy_lee, nabihestefan
On 4/23/25 09:23, Jamin Lin wrote:
> Add the AST2700 functional test to boot using the vbootrom image
> instead of manually loading boot components with -device loader.
> The boot ROM binary is now passed via the
> -bios option, using the image located in pc-bios/ast27x0_bootrom.bin.
>
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> tests/functional/test_aarch64_aspeed.py | 26 +++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/tests/functional/test_aarch64_aspeed.py b/tests/functional/test_aarch64_aspeed.py
> index 2f04655b60..34ddfa852c 100755
> --- a/tests/functional/test_aarch64_aspeed.py
> +++ b/tests/functional/test_aarch64_aspeed.py
> @@ -25,6 +25,18 @@ def do_test_aarch64_aspeed_sdk_start(self, image):
>
> self.vm.launch()
>
> + def verify_vbootrom_firmware_flow(self):
> + wait_for_console_pattern(self, 'Found valid FIT image')
> + wait_for_console_pattern(self, '[uboot] loading')
> + wait_for_console_pattern(self, 'done')
> + wait_for_console_pattern(self, '[fdt] loading')
> + wait_for_console_pattern(self, 'done')
> + wait_for_console_pattern(self, '[tee] loading')
> + wait_for_console_pattern(self, 'done')
> + wait_for_console_pattern(self, '[atf] loading')
> + wait_for_console_pattern(self, 'done')
> + wait_for_console_pattern(self, 'Jumping to BL31 (Trusted Firmware-A)')
> +
> def verify_openbmc_boot_and_login(self, name):
> wait_for_console_pattern(self, 'U-Boot 2023.10')
> wait_for_console_pattern(self, '## Loading kernel from FIT Image')
> @@ -94,6 +106,11 @@ def start_ast2700_test(self, name):
> self.do_test_aarch64_aspeed_sdk_start(
> self.scratch_file(name, 'image-bmc'))
>
> + def start_ast2700_test_vbootrom(self, name):
> + self.vm.add_args('-bios', 'ast27x0_bootrom.bin')
> + self.do_test_aarch64_aspeed_sdk_start(
> + self.scratch_file(name, 'image-bmc'))
> +
> def test_aarch64_ast2700_evb_sdk_v09_06(self):
> self.set_machine('ast2700-evb')
>
> @@ -110,5 +127,14 @@ def test_aarch64_ast2700a1_evb_sdk_v09_06(self):
> self.verify_openbmc_boot_and_login('ast2700-default')
> self.do_ast2700_i2c_test()
>
> + def test_aarch64_ast2700a1_evb_sdk_vbootrom_v09_06(self):
> + self.set_machine('ast2700a1-evb')
> +
> + self.archive_extract(self.ASSET_SDK_V906_AST2700A1)
> + self.start_ast2700_test_vbootrom('ast2700-default')
> + self.verify_vbootrom_firmware_flow()
> + self.verify_openbmc_boot_and_login('ast2700-default')
> + self.do_ast2700_i2c_test()
> +
> if __name__ == '__main__':
> QemuSystemTest.main()
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v5 05/11] pc-bios: Add AST27x0 vBootrom
2025-04-23 20:29 ` Nabih Estefan
@ 2025-04-23 21:28 ` Cédric Le Goater
0 siblings, 0 replies; 26+ messages in thread
From: Cédric Le Goater @ 2025-04-23 21:28 UTC (permalink / raw)
To: Nabih Estefan
Cc: Jamin Lin, Peter Maydell, Steven Lee, Troy Lee, Andrew Jeffery,
Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs, troy_lee
On 4/23/25 22:29, Nabih Estefan wrote:
> Just got merged into https://github.com/google/vbootrom
>
> Commit id: 82bed5ca62295228ea7bcdc721b63db178f686e8
Thanks Nabih.
v6 should be ready for merge then.
C.
>
> Thanks,
>
> Nabih
>
> On Wed, Apr 23, 2025 at 2:28 AM Cédric Le Goater <clg@kaod.org> wrote:
>>
>> On 4/23/25 09:23, Jamin Lin wrote:
>>> The boot ROM is a minimal implementation designed to load an AST27x0 boot image.
>>> Its source code is available at:
>>> https://github.com/google/vbootrom
>>
>> It is not merged yet. Please resend when done and mention the commit id.
>>
>> Thanks,
>>
>> C.
>>
>>
>>
>>
>>>
>>> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
>>> Reviewed-by: Nabih Estefan <nabihestefan@google.com>
>>> Tested-by: Nabih Estefan <nabihestefan@google.com>
>>> ---
>>> MAINTAINERS | 1 +
>>> pc-bios/README | 6 ++++++
>>> pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15424 bytes
>>> pc-bios/meson.build | 1 +
>>> 4 files changed, 8 insertions(+)
>>> create mode 100644 pc-bios/ast27x0_bootrom.bin
>>>
>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>> index d54b5578f8..70ab0d0afa 100644
>>> --- a/MAINTAINERS
>>> +++ b/MAINTAINERS
>>> @@ -1163,6 +1163,7 @@ F: docs/system/arm/fby35.rst
>>> F: tests/*/*aspeed*
>>> F: tests/*/*ast2700*
>>> F: hw/arm/fby35.c
>>> +F: pc-bios/ast27x0_bootrom.bin
>>>
>>> NRF51
>>> M: Joel Stanley <joel@jms.id.au>
>>> diff --git a/pc-bios/README b/pc-bios/README
>>> index f0f13e15f2..d009c37895 100644
>>> --- a/pc-bios/README
>>> +++ b/pc-bios/README
>>> @@ -89,6 +89,12 @@
>>> more features over time as needed. The source code is available at:
>>> https://github.com/google/vbootrom
>>>
>>> +- ast27x0_bootrom.bin is a simplified, free (Apache 2.0) boot ROM for
>>> + ASPEED AST27x0 BMC SOC. It currently implements the bare minimum to
>>> + load, parse, initialize and run boot images stored in SPI flash, but may grow
>>> + more features over time as needed. The source code is available at:
>>> + https://github.com/google/vbootrom
>>> +
>>> - hppa-firmware.img (32-bit) and hppa-firmware64.img (64-bit) are firmware
>>> files for the HP-PARISC (hppa) architecture.
>>> They are built form the SeaBIOS-hppa sources, which is a fork of SeaBIOS
>>> diff --git a/pc-bios/ast27x0_bootrom.bin b/pc-bios/ast27x0_bootrom.bin
>>> new file mode 100644
>>> index 0000000000000000000000000000000000000000..d46403b023c00f989b6facb397d57bea7e5c583a
>>> GIT binary patch
>>> literal 15424
>>> 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
>>> TJDH<UkE#+fTtE*0xX=Fr0X;+;
>>>
>>> literal 0
>>> HcmV?d00001
>>>
>>> diff --git a/pc-bios/meson.build b/pc-bios/meson.build
>>> index 34d6616c32..83998f6071 100644
>>> --- a/pc-bios/meson.build
>>> +++ b/pc-bios/meson.build
>>> @@ -84,6 +84,7 @@ blobs = [
>>> 'npcm8xx_bootrom.bin',
>>> 'vof.bin',
>>> 'vof-nvram.bin',
>>> + 'ast27x0_bootrom.bin',
>>> ]
>>>
>>> dtc = find_program('dtc', required: false)
>>
^ permalink raw reply [flat|nested] 26+ messages in thread
* RE: [PATCH v5 04/11] hw/arm/aspeed: Reuse rom_size variable for vbootrom setup
2025-04-23 9:20 ` Cédric Le Goater
@ 2025-04-24 3:59 ` Jamin Lin
0 siblings, 0 replies; 26+ messages in thread
From: Jamin Lin @ 2025-04-24 3:59 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: Troy Lee, nabihestefan@google.com, Cédric Le Goater
Hi Cedric,
> Subject: Re: [PATCH v5 04/11] hw/arm/aspeed: Reuse rom_size variable for
> vbootrom setup
>
> On 4/23/25 09:23, Jamin Lin wrote:
> > Move the declaration of "rom_size" to an outer scope in
> > aspeed_machine_init() so it can be reused for setting up the vbootrom region
> as well.
> >
> > This avoids introducing a redundant local variable and ensures
> > consistent ROM sizing logic when both SPI boot and vbootrom are used.
> >
> > Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> > Reviewed-by: Cédric Le Goater <clg@redhat.com>
> > Tested-by: Nabih Estefan <nabihestefan@google.com>
> > ---
> > hw/arm/aspeed.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index
> > e852bbc4cb..b70a120e62 100644
> > --- a/hw/arm/aspeed.c
> > +++ b/hw/arm/aspeed.c
> > @@ -381,6 +381,7 @@ static void aspeed_machine_init(MachineState
> *machine)
> > AspeedSoCClass *sc;
> > int i;
> > DriveInfo *emmc0 = NULL;
> > + uint64_t rom_size;
> > bool boot_emmc;
> >
> > bmc->soc = ASPEED_SOC(object_new(amc->soc_name));
> > @@ -475,7 +476,7 @@ static void aspeed_machine_init(MachineState
> *machine)
> > BlockBackend *fmc0 = dev ? m25p80_get_blk(dev) : NULL;
> >
> > if (fmc0 && !boot_emmc) {
> > - uint64_t rom_size =
> memory_region_size(&bmc->soc->spi_boot);
> > + rom_size = memory_region_size(&bmc->soc->spi_boot);
> > aspeed_install_boot_rom(bmc, fmc0, rom_size);
> > } else if (emmc0) {
> > aspeed_install_boot_rom(bmc,
> blk_by_legacy_dinfo(emmc0),
> > 64 * KiB);
>
> I don't think this patch is useful. See comment on patch 6.
>
Thanks for suggestion and review.
Will drop this patch
Jamin
>
> Thanks,
>
> C.
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* RE: [PATCH v5 03/11] hw/arm/aspeed: Add vbootrom support on AST2700 EVB machines
2025-04-23 9:29 ` Cédric Le Goater
@ 2025-04-24 4:00 ` Jamin Lin
0 siblings, 0 replies; 26+ messages in thread
From: Jamin Lin @ 2025-04-24 4:00 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: Troy Lee, nabihestefan@google.com
Hi Cedric,
> Subject: Re: [PATCH v5 03/11] hw/arm/aspeed: Add vbootrom support on
> AST2700 EVB machines
>
> On 4/23/25 09:23, Jamin Lin wrote:
> > Introduce a new "vbootrom" field in the AspeedMachineClass to indicate
> > whether a machine supports the virtual boot ROM region.
> >
> > Set this field to true by default for the AST2700-A0 and AST2700-A1
> > EVB machines.
> >
> > Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> > Reviewed-by: Nabih Estefan <nabihestefan@google.com>
> > Tested-by: Nabih Estefan <nabihestefan@google.com>
>
>
> I would merge this patch in patch 6.
>
Thanks for suggestion.
Will merge this in patch 6
Jamin
>
> Thanks,
>
> C.
>
>
>
> > ---
> > include/hw/arm/aspeed.h | 1 +
> > hw/arm/aspeed.c | 2 ++
> > 2 files changed, 3 insertions(+)
> >
> > diff --git a/include/hw/arm/aspeed.h b/include/hw/arm/aspeed.h index
> > 9cae45a1c9..973277bea6 100644
> > --- a/include/hw/arm/aspeed.h
> > +++ b/include/hw/arm/aspeed.h
> > @@ -40,6 +40,7 @@ struct AspeedMachineClass {
> > void (*i2c_init)(AspeedMachineState *bmc);
> > uint32_t uart_default;
> > bool sdhci_wp_inverted;
> > + bool vbootrom;
> > };
> >
> >
> > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index
> > 82f42582fa..e852bbc4cb 100644
> > --- a/hw/arm/aspeed.c
> > +++ b/hw/arm/aspeed.c
> > @@ -1689,6 +1689,7 @@ static void
> aspeed_machine_ast2700a0_evb_class_init(ObjectClass *oc, void *data)
> > amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON |
> ASPEED_MAC2_ON;
> > amc->uart_default = ASPEED_DEV_UART12;
> > amc->i2c_init = ast2700_evb_i2c_init;
> > + amc->vbootrom = true;
> > mc->auto_create_sdcard = true;
> > mc->default_ram_size = 1 * GiB;
> > aspeed_machine_class_init_cpus_defaults(mc);
> > @@ -1709,6 +1710,7 @@ static void
> aspeed_machine_ast2700a1_evb_class_init(ObjectClass *oc, void *data)
> > amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON |
> ASPEED_MAC2_ON;
> > amc->uart_default = ASPEED_DEV_UART12;
> > amc->i2c_init = ast2700_evb_i2c_init;
> > + amc->vbootrom = true;
> > mc->auto_create_sdcard = true;
> > mc->default_ram_size = 1 * GiB;
> > aspeed_machine_class_init_cpus_defaults(mc);
^ permalink raw reply [flat|nested] 26+ messages in thread
* RE: [PATCH v5 06/11] hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
2025-04-23 9:23 ` Cédric Le Goater
@ 2025-04-24 4:01 ` Jamin Lin
0 siblings, 0 replies; 26+ messages in thread
From: Jamin Lin @ 2025-04-24 4:01 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: Troy Lee, nabihestefan@google.com
Hi Cedric,
> Subject: Re: [PATCH v5 06/11] hw/arm/aspeed: Add support for loading
> vbootrom image via "-bios"
>
> On 4/23/25 09:23, Jamin Lin wrote:
> > 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>
> > Reviewed-by: Nabih Estefan <nabihestefan@google.com>
> > Tested-by: Nabih Estefan <nabihestefan@google.com>
> > ---
> > hw/arm/aspeed.c | 35 +++++++++++++++++++++++++++++++++++
> > 1 file changed, 35 insertions(+)
> >
> > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index
> > b70a120e62..b5831ef4c1 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,35 @@ static void
> aspeed_install_boot_rom(AspeedMachineState *bmc, BlockBackend *blk,
> > rom_size, &error_abort);
> > }
> >
> > +#define VBOOTROM_FILE_NAME "ast27x0_bootrom.bin"
> > +
> > +/*
> > + * 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,
>
> rom_size is unused.
>
> > + Error **errp) {
> > + AspeedMachineState *bmc = ASPEED_MACHINE(machine);
> > + const char *bios_name = machine->firmware ?:
> VBOOTROM_FILE_NAME;
>
> I would change the prototype of aspeed_load_vbootrom to:
>
> void aspeed_load_vbootrom(AspeedMachineState *bmc, const char
> *bios_name,
> Error **errp)
>
Thanks for review and suggestion.
Will revise it
Jamin
>
> Thanks,
>
> C.
>
>
>
>
> > + g_autofree char *filename = NULL;
> > + AspeedSoCState *soc = bmc->soc;
> > + int ret;
> > +
> > + filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
> > + if (!filename) {
> > + error_setg(errp, "Could not find vbootrom image '%s'",
> bios_name);
> > + return;
> > + }
> > +
> > + ret = load_image_mr(filename, &soc->vbootrom);
> > + if (ret < 0) {
> > + error_setg(errp, "Failed to load vbootrom image '%s'",
> bios_name);
> > + return;
> > + }
> > +}
> > +
> > void aspeed_board_init_flashes(AspeedSMCState *s, const char
> *flashtype,
> > unsigned int count, int
> unit0)
> > {
> > @@ -483,6 +513,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, &error_abort);
> > + }
> > +
> > arm_load_kernel(ARM_CPU(first_cpu), machine,
> &aspeed_board_binfo);
> > }
> >
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2025-04-24 4:02 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-23 7:23 [PATCH v5 00/11] Support vbootrom for AST2700 Jamin Lin via
2025-04-23 7:23 ` [PATCH v5 01/11] hw/arm/aspeed_ast27x0: Rename variable sram_name to name in ast2700 realize Jamin Lin via
2025-04-23 7:23 ` [PATCH v5 02/11] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region Jamin Lin via
2025-04-23 7:39 ` Cédric Le Goater
2025-04-23 7:23 ` [PATCH v5 03/11] hw/arm/aspeed: Add vbootrom support on AST2700 EVB machines Jamin Lin via
2025-04-23 9:29 ` Cédric Le Goater
2025-04-24 4:00 ` Jamin Lin
2025-04-23 7:23 ` [PATCH v5 04/11] hw/arm/aspeed: Reuse rom_size variable for vbootrom setup Jamin Lin via
2025-04-23 9:20 ` Cédric Le Goater
2025-04-24 3:59 ` Jamin Lin
2025-04-23 7:23 ` [PATCH v5 05/11] pc-bios: Add AST27x0 vBootrom Jamin Lin via
2025-04-23 9:28 ` Cédric Le Goater
2025-04-23 20:29 ` Nabih Estefan
2025-04-23 21:28 ` Cédric Le Goater
2025-04-23 7:23 ` [PATCH v5 06/11] hw/arm/aspeed: Add support for loading vbootrom image via "-bios" Jamin Lin via
2025-04-23 9:23 ` Cédric Le Goater
2025-04-24 4:01 ` Jamin Lin
2025-04-23 7:23 ` [PATCH v5 07/11] tests/functional/aspeed: Move I2C test into shared helper for AST2700 reuse Jamin Lin via
2025-04-23 7:23 ` [PATCH v5 08/11] tests/functional/aspeed: Update test ASPEED SDK v09.06 Jamin Lin via
2025-04-23 7:23 ` [PATCH v5 09/11] tests/functional/aspeed: extract boot and login sequence into helper function Jamin Lin via
2025-04-23 7:40 ` Cédric Le Goater
2025-04-23 7:23 ` [PATCH v5 10/11] tests/functional/aspeed: Add to test vbootrom for AST2700 Jamin Lin via
2025-04-23 21:27 ` Cédric Le Goater
2025-04-23 7:23 ` [PATCH v5 11/11] docs/system/arm/aspeed: Support " Jamin Lin via
2025-04-23 9:49 ` Cédric Le Goater
2025-04-23 9:36 ` [PATCH v5 00/11] " Cédric Le Goater
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).