* [PATCH v2 01/10] hw/arm/aspeed: Introduced ASPEED_DEV_VBOOTROM in the device enumeration
2025-04-10 2:38 [PATCH v2 00/10] Support vbootrom for AST2700 Jamin Lin via
@ 2025-04-10 2:38 ` 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
` (9 subsequent siblings)
10 siblings, 0 replies; 29+ messages in thread
From: Jamin Lin via @ 2025-04-10 2:38 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
Introduced ASPEED_DEV_VBOOTROM into the ASPEED device enumeration to support a
virtual boot ROM.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
---
include/hw/arm/aspeed_soc.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h
index f069d17d16..37cd7cd793 100644
--- a/include/hw/arm/aspeed_soc.h
+++ b/include/hw/arm/aspeed_soc.h
@@ -169,6 +169,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,
--
2.43.0
^ permalink raw reply related [flat|nested] 29+ messages in thread* [PATCH v2 02/10] hw/arm/aspeed_ast27x0: Add "vbootrom_size" field to AspeedSoCClass
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 ` 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
` (8 subsequent siblings)
10 siblings, 0 replies; 29+ messages in thread
From: Jamin Lin via @ 2025-04-10 2:38 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
Introduced a "vbootrom_size" attribute in "AspeedSoCClass" to define virtual
boot ROM size.
Initialized "vbootrom_size" to "0x20000" for both AST2700 A0 and A1 variants.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
---
include/hw/arm/aspeed_soc.h | 1 +
hw/arm/aspeed_ast27x0.c | 2 ++
2 files changed, 3 insertions(+)
diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h
index 37cd7cd793..432f6178ac 100644
--- a/include/hw/arm/aspeed_soc.h
+++ b/include/hw/arm/aspeed_soc.h
@@ -152,6 +152,7 @@ struct AspeedSoCClass {
const char * const *valid_cpu_types;
uint32_t silicon_rev;
uint64_t sram_size;
+ uint64_t vbootrom_size;
uint64_t secsram_size;
int spis_num;
int ehcis_num;
diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c
index dce7255a2c..81dd90ffdd 100644
--- a/hw/arm/aspeed_ast27x0.c
+++ b/hw/arm/aspeed_ast27x0.c
@@ -898,6 +898,7 @@ static void aspeed_soc_ast2700a0_class_init(ObjectClass *oc, void *data)
sc->valid_cpu_types = valid_cpu_types;
sc->silicon_rev = AST2700_A0_SILICON_REV;
+ sc->vbootrom_size = 0x20000;
sc->sram_size = 0x20000;
sc->spis_num = 3;
sc->wdts_num = 8;
@@ -925,6 +926,7 @@ static void aspeed_soc_ast2700a1_class_init(ObjectClass *oc, void *data)
sc->valid_cpu_types = valid_cpu_types;
sc->silicon_rev = AST2700_A1_SILICON_REV;
+ sc->vbootrom_size = 0x20000;
sc->sram_size = 0x20000;
sc->spis_num = 3;
sc->wdts_num = 8;
--
2.43.0
^ permalink raw reply related [flat|nested] 29+ messages in thread* [PATCH v2 03/10] hw/arm/aspeed_ast27x0: Rename variable sram_name to name in ast2700 realize
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-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
` (7 subsequent siblings)
10 siblings, 1 reply; 29+ messages in thread
From: Jamin Lin via @ 2025-04-10 2:38 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 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>
---
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 81dd90ffdd..c7188ae5f1 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] 29+ messages in thread* Re: [PATCH v2 03/10] hw/arm/aspeed_ast27x0: Rename variable sram_name to name in ast2700 realize
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
0 siblings, 0 replies; 29+ messages in thread
From: Cédric Le Goater @ 2025-04-11 15:48 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/10/25 04:38, Jamin Lin wrote:
> 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>
Thanks,
C.
> ---
> 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 81dd90ffdd..c7188ae5f1 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,
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 04/10] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region
2025-04-10 2:38 [PATCH v2 00/10] Support vbootrom for AST2700 Jamin Lin via
` (2 preceding siblings ...)
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-10 2:38 ` Jamin Lin via
2025-04-11 15:50 ` Cédric Le Goater
2025-04-10 2:38 ` [PATCH v2 05/10] hw/arm/aspeed: Enable vbootrom support by default on AST2700 EVB machines Jamin Lin via
` (6 subsequent siblings)
10 siblings, 1 reply; 29+ messages in thread
From: Jamin Lin via @ 2025-04-10 2:38 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 region is initialized as ROM and registered in the SoC's address
space using the ASPEED_DEV_VBOOTROM index.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
---
include/hw/arm/aspeed_soc.h | 1 +
hw/arm/aspeed_ast27x0.c | 10 ++++++++++
2 files changed, 11 insertions(+)
diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h
index 432f6178ac..9af8cfbc3e 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;
diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c
index c7188ae5f1..0982e63639 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,15 @@ static void aspeed_soc_ast2700_realize(DeviceState *dev, Error **errp)
memory_region_add_subregion(s->memory,
sc->memmap[ASPEED_DEV_SRAM], &s->sram);
+ /* VBOOTROM */
+ name = g_strdup_printf("aspeed.vbootrom.%d", CPU(&a->cpu[0])->cpu_index);
+ if (!memory_region_init_rom(&s->vbootrom, OBJECT(s), name,
+ sc->vbootrom_size, 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] 29+ messages in thread* Re: [PATCH v2 04/10] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region
2025-04-10 2:38 ` [PATCH v2 04/10] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region Jamin Lin via
@ 2025-04-11 15:50 ` Cédric Le Goater
2025-04-14 1:22 ` Jamin Lin
0 siblings, 1 reply; 29+ messages in thread
From: Cédric Le Goater @ 2025-04-11 15:50 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/10/25 04:38, 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 region is initialized as ROM and registered in the SoC's address
> space using the ASPEED_DEV_VBOOTROM index.
>
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Please merge patches 1-2,4 together.
Thanks,
C.
> ---
> include/hw/arm/aspeed_soc.h | 1 +
> hw/arm/aspeed_ast27x0.c | 10 ++++++++++
> 2 files changed, 11 insertions(+)
>
> diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h
> index 432f6178ac..9af8cfbc3e 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;
> diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c
> index c7188ae5f1..0982e63639 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,15 @@ static void aspeed_soc_ast2700_realize(DeviceState *dev, Error **errp)
> memory_region_add_subregion(s->memory,
> sc->memmap[ASPEED_DEV_SRAM], &s->sram);
>
> + /* VBOOTROM */
> + name = g_strdup_printf("aspeed.vbootrom.%d", CPU(&a->cpu[0])->cpu_index);
> + if (!memory_region_init_rom(&s->vbootrom, OBJECT(s), name,
> + sc->vbootrom_size, 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] 29+ messages in thread* RE: [PATCH v2 04/10] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region
2025-04-11 15:50 ` Cédric Le Goater
@ 2025-04-14 1:22 ` Jamin Lin
0 siblings, 0 replies; 29+ messages in thread
From: Jamin Lin @ 2025-04-14 1:22 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 v2 04/10] hw/arm/aspeed_ast27x0 Introduce vbootrom
> memory region
>
> On 4/10/25 04:38, 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 region is initialized as ROM and registered in the SoC's
> > address space using the ASPEED_DEV_VBOOTROM index.
> >
> > Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
>
> Please merge patches 1-2,4 together.
>
Will do.
Jamin
>
> Thanks,
>
> C.
>
>
> > ---
> > include/hw/arm/aspeed_soc.h | 1 +
> > hw/arm/aspeed_ast27x0.c | 10 ++++++++++
> > 2 files changed, 11 insertions(+)
> >
> > diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h
> > index 432f6178ac..9af8cfbc3e 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;
> > diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c index
> > c7188ae5f1..0982e63639 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,15 @@ static void
> aspeed_soc_ast2700_realize(DeviceState *dev, Error **errp)
> > memory_region_add_subregion(s->memory,
> >
> sc->memmap[ASPEED_DEV_SRAM],
> > &s->sram);
> >
> > + /* VBOOTROM */
> > + name = g_strdup_printf("aspeed.vbootrom.%d",
> CPU(&a->cpu[0])->cpu_index);
> > + if (!memory_region_init_rom(&s->vbootrom, OBJECT(s), name,
> > + sc->vbootrom_size, 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] 29+ messages in thread
* [PATCH v2 05/10] hw/arm/aspeed: Enable vbootrom support by default on AST2700 EVB machines
2025-04-10 2:38 [PATCH v2 00/10] Support vbootrom for AST2700 Jamin Lin via
` (3 preceding siblings ...)
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-10 2:38 ` [PATCH v2 06/10] hw/arm/aspeed: Reuse rom_size variable for vbootrom setup Jamin Lin via
` (5 subsequent siblings)
10 siblings, 0 replies; 29+ messages in thread
From: Jamin Lin via @ 2025-04-10 2:38 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>
---
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] 29+ messages in thread* [PATCH v2 06/10] hw/arm/aspeed: Reuse rom_size variable for vbootrom setup
2025-04-10 2:38 [PATCH v2 00/10] Support vbootrom for AST2700 Jamin Lin via
` (4 preceding siblings ...)
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 ` Jamin Lin via
2025-04-11 15:50 ` Cédric Le Goater
2025-04-10 2:38 ` [PATCH v2 07/10] hw/arm/aspeed: Add support for loading vbootrom image via "-bios" Jamin Lin via
` (4 subsequent siblings)
10 siblings, 1 reply; 29+ messages in thread
From: Jamin Lin via @ 2025-04-10 2:38 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
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>
---
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] 29+ messages in thread* Re: [PATCH v2 06/10] hw/arm/aspeed: Reuse rom_size variable for vbootrom setup
2025-04-10 2:38 ` [PATCH v2 06/10] hw/arm/aspeed: Reuse rom_size variable for vbootrom setup Jamin Lin via
@ 2025-04-11 15:50 ` Cédric Le Goater
0 siblings, 0 replies; 29+ messages in thread
From: Cédric Le Goater @ 2025-04-11 15:50 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/10/25 04:38, 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>
Thanks,
C.
> ---
> 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);
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 07/10] hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
2025-04-10 2:38 [PATCH v2 00/10] Support vbootrom for AST2700 Jamin Lin via
` (5 preceding siblings ...)
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 16:07 ` Cédric Le Goater
2025-04-10 2:38 ` [PATCH v2 08/10] pc-bios: Add AST27x0 vBootrom Jamin Lin via
` (3 subsequent siblings)
10 siblings, 1 reply; 29+ messages in thread
From: Jamin Lin via @ 2025-04-10 2:38 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>
---
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
^ permalink raw reply related [flat|nested] 29+ messages in thread* Re: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
2025-04-10 2:38 ` [PATCH v2 07/10] hw/arm/aspeed: Add support for loading vbootrom image via "-bios" Jamin Lin via
@ 2025-04-11 16:07 ` Cédric Le Goater
2025-04-14 3:17 ` Jamin Lin
0 siblings, 1 reply; 29+ messages in thread
From: Cédric Le Goater @ 2025-04-11 16:07 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/10/25 04:38, 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>
> ---
> 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)
please add an 'Error **' parameter and let the caller decide to exit.
> +{
> + 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);
What if the user didn't provide any -bios command line option ?
> + 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);
> + }
> +
Even without a vbootrom file, the machine could boot with '-device loader'
options. We should preserve this way of booting an ast2700-evb machine.
Thanks,
C.
> arm_load_kernel(ARM_CPU(first_cpu), machine, &aspeed_board_binfo);
> }
>
^ permalink raw reply [flat|nested] 29+ messages in thread* RE: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
2025-04-11 16:07 ` Cédric Le Goater
@ 2025-04-14 3:17 ` Jamin Lin
2025-04-14 21:14 ` Nabih Estefan
0 siblings, 1 reply; 29+ messages in thread
From: Jamin Lin @ 2025-04-14 3:17 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 v2 07/10] hw/arm/aspeed: Add support for loading
> vbootrom image via "-bios"
>
> On 4/10/25 04:38, 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>
> > ---
> > 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)
>
> please add an 'Error **' parameter and let the caller decide to exit.
>
Will add.
> > +{
> > + 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);
>
> What if the user didn't provide any -bios command line option ?
>
Will update to support both vbootrom and loader.
> > + 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);
> > + }
> > +
>
> Even without a vbootrom file, the machine could boot with '-device loader'
> options. We should preserve this way of booting an ast2700-evb machine.
>
Will support both loader and vbootrom.
Thanks for review and suggestion.
Jamin
>
> Thanks,
>
> C.
>
>
>
>
> > arm_load_kernel(ARM_CPU(first_cpu), machine,
> &aspeed_board_binfo);
> > }
> >
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
2025-04-14 3:17 ` Jamin Lin
@ 2025-04-14 21:14 ` Nabih Estefan
2025-04-15 9:34 ` Jamin Lin
0 siblings, 1 reply; 29+ messages in thread
From: Nabih Estefan @ 2025-04-14 21:14 UTC (permalink / raw)
To: Jamin Lin
Cc: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs, Troy Lee
Hi Jamin and Cedric,
On Sun, Apr 13, 2025 at 8:17 PM Jamin Lin <jamin_lin@aspeedtech.com> wrote:
>
> Hi Cedric,
>
> > Subject: Re: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading
> > vbootrom image via "-bios"
> >
> > On 4/10/25 04:38, 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>
> > > ---
> > > 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)
> >
> > please add an 'Error **' parameter and let the caller decide to exit.
> >
>
> Will add.
>
> > > +{
> > > + 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);
> >
> > What if the user didn't provide any -bios command line option ?
> >
>
>
> Will update to support both vbootrom and loader.
For this case, could we have something like the npcm8xx_board.c where we
have a default bootrom and override it with -bios? That would also fix the
qtest issues with the ast2700 qtests which fail with this patchset.
>
> > > + 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);
> > > + }
> > > +
> >
> > Even without a vbootrom file, the machine could boot with '-device loader'
> > options. We should preserve this way of booting an ast2700-evb machine.
> >
>
> Will support both loader and vbootrom.
> Thanks for review and suggestion.
>
> Jamin
> >
> > Thanks,
> >
> > C.
> >
> >
> >
> >
> > > arm_load_kernel(ARM_CPU(first_cpu), machine,
> > &aspeed_board_binfo);
> > > }
> > >
>
Also, tested against our custom machine + custom bmc image and the
bootrom itself works.
I think it might just need that default set.
Tested-By: Nabih Estefan <nabihestefan@google.com>
^ permalink raw reply [flat|nested] 29+ messages in thread* RE: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
2025-04-14 21:14 ` Nabih Estefan
@ 2025-04-15 9:34 ` Jamin Lin
2025-04-15 16:07 ` Nabih Estefan
0 siblings, 1 reply; 29+ messages in thread
From: Jamin Lin @ 2025-04-15 9:34 UTC (permalink / raw)
To: Nabih Estefan
Cc: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs, Troy Lee
Hi Nabih,
> <qemu-arm@nongnu.org>; Troy Lee <troy_lee@aspeedtech.com>
> Subject: Re: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading
> vbootrom image via "-bios"
>
> Hi Jamin and Cedric,
>
> On Sun, Apr 13, 2025 at 8:17 PM Jamin Lin <jamin_lin@aspeedtech.com>
> wrote:
> >
> > Hi Cedric,
> >
> > > Subject: Re: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading
> > > vbootrom image via "-bios"
> > >
> > > On 4/10/25 04:38, 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>
> > > > ---
> > > > 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)
> > >
> > > please add an 'Error **' parameter and let the caller decide to exit.
> > >
> >
> > Will add.
> >
> > > > +{
> > > > + 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);
> > >
> > > What if the user didn't provide any -bios command line option ?
> > >
> >
> >
> > Will update to support both vbootrom and loader.
>
> For this case, could we have something like the npcm8xx_board.c where we
> have a default bootrom and override it with -bios? That would also fix the qtest
> issues with the ast2700 qtests which fail with this patchset.
>
Do you mean that if the user does not specify "-bios", we should still load a default vbootrom image into the vbootrom memory region?
We can verify whether -bios was provided by checking if machine->firmware is NULL.
It seems that if the user doesn't provide -bios, NPCM QEMU will look for a default vbootrom image in the current working directory — is that correct?
https://github.com/qemu/qemu/blob/master/hw/arm/npcm8xx_boards.c#L37
```
const char *bios_name = machine->firmware ?: npcm8xx_default_bootrom;
```
Could you let me know which qtest(s) failed, so I can run them and verify everything before sending out the v3 patch?
Thanks-Jamin
> >
> > > > + 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);
> > > > + }
> > > > +
> > >
> > > Even without a vbootrom file, the machine could boot with '-device loader'
> > > options. We should preserve this way of booting an ast2700-evb machine.
> > >
> >
> > Will support both loader and vbootrom.
> > Thanks for review and suggestion.
> >
> > Jamin
> > >
> > > Thanks,
> > >
> > > C.
> > >
> > >
> > >
> > >
> > > > arm_load_kernel(ARM_CPU(first_cpu), machine,
> > > &aspeed_board_binfo);
> > > > }
> > > >
> >
>
> Also, tested against our custom machine + custom bmc image and the bootrom
> itself works.
> I think it might just need that default set.
>
> Tested-By: Nabih Estefan <nabihestefan@google.com>
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
2025-04-15 9:34 ` Jamin Lin
@ 2025-04-15 16:07 ` Nabih Estefan
2025-04-16 2:21 ` Jamin Lin
0 siblings, 1 reply; 29+ messages in thread
From: Nabih Estefan @ 2025-04-15 16:07 UTC (permalink / raw)
To: Jamin Lin
Cc: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs, Troy Lee
Hi Jamin,
On Tue, Apr 15, 2025 at 2:35 AM Jamin Lin <jamin_lin@aspeedtech.com> wrote:
>
> Hi Nabih,
>
> > <qemu-arm@nongnu.org>; Troy Lee <troy_lee@aspeedtech.com>
> > Subject: Re: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading
> > vbootrom image via "-bios"
> >
> > Hi Jamin and Cedric,
> >
> > On Sun, Apr 13, 2025 at 8:17 PM Jamin Lin <jamin_lin@aspeedtech.com>
> > wrote:
> > >
> > > Hi Cedric,
> > >
> > > > Subject: Re: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading
> > > > vbootrom image via "-bios"
> > > >
> > > > On 4/10/25 04:38, 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>
> > > > > ---
> > > > > 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)
> > > >
> > > > please add an 'Error **' parameter and let the caller decide to exit.
> > > >
> > >
> > > Will add.
> > >
> > > > > +{
> > > > > + 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);
> > > >
> > > > What if the user didn't provide any -bios command line option ?
> > > >
> > >
> > >
> > > Will update to support both vbootrom and loader.
> >
> > For this case, could we have something like the npcm8xx_board.c where we
> > have a default bootrom and override it with -bios? That would also fix the qtest
> > issues with the ast2700 qtests which fail with this patchset.
> >
> Do you mean that if the user does not specify "-bios", we should still load a default vbootrom image into the vbootrom memory region?
> We can verify whether -bios was provided by checking if machine->firmware is NULL.
> It seems that if the user doesn't provide -bios, NPCM QEMU will look for a default vbootrom image in the current working directory — is that correct?
> https://github.com/qemu/qemu/blob/master/hw/arm/npcm8xx_boards.c#L37
Yeah. IIUC the default functionality should be to use a vbootrom to
boot with the AST27X0 so
if there is no bootrom declared we should default to the one you
created. for the NPCM one, if
we don't provide bios it will default to the one in pc-bios since it's
supposed to be the base true version.
I think it makes sense to do the same thing in ast2700. If we really
find use in supporting attaching the
loader binaries separately we could add a flag that skip the vbootrom,
but I don't see much use in that
since the information that would change is in the "image-bmc".
>
> ```
> const char *bios_name = machine->firmware ?: npcm8xx_default_bootrom;
> ```
> Could you let me know which qtest(s) failed, so I can run them and verify everything before sending out the v3 patch?
qemu:qtest+qtest-aarch64 / qtest-aarch64/ast2700-gpio-test
qemu:qtest+qtest-aarch64 / qtest-aarch64/ast2700-smc-test
They both fail with " qemu-system-aarch64: Could not find vbootrom
image '(null)' " so setting the default
bootrom should fix this.
>
> Thanks-Jamin
>
> > >
> > > > > + 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);
> > > > > + }
> > > > > +
> > > >
> > > > Even without a vbootrom file, the machine could boot with '-device loader'
> > > > options. We should preserve this way of booting an ast2700-evb machine.
> > > >
> > >
> > > Will support both loader and vbootrom.
> > > Thanks for review and suggestion.
> > >
> > > Jamin
> > > >
> > > > Thanks,
> > > >
> > > > C.
> > > >
> > > >
> > > >
> > > >
> > > > > arm_load_kernel(ARM_CPU(first_cpu), machine,
> > > > &aspeed_board_binfo);
> > > > > }
> > > > >
> > >
> >
> > Also, tested against our custom machine + custom bmc image and the bootrom
> > itself works.
> > I think it might just need that default set.
> >
> > Tested-By: Nabih Estefan <nabihestefan@google.com>
Thanks,
Nabih
^ permalink raw reply [flat|nested] 29+ messages in thread* RE: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
2025-04-15 16:07 ` Nabih Estefan
@ 2025-04-16 2:21 ` Jamin Lin
0 siblings, 0 replies; 29+ messages in thread
From: Jamin Lin @ 2025-04-16 2:21 UTC (permalink / raw)
To: Nabih Estefan
Cc: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs, Troy Lee
Hi Nabih,
> Subject: Re: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading
> vbootrom image via "-bios"
>
> Hi Jamin,
>
>
> On Tue, Apr 15, 2025 at 2:35 AM Jamin Lin <jamin_lin@aspeedtech.com>
> wrote:
> >
> > Hi Nabih,
> >
> > > <qemu-arm@nongnu.org>; Troy Lee <troy_lee@aspeedtech.com>
> > > Subject: Re: [PATCH v2 07/10] hw/arm/aspeed: Add support for loading
> > > vbootrom image via "-bios"
> > >
> > > Hi Jamin and Cedric,
> > >
> > > On Sun, Apr 13, 2025 at 8:17 PM Jamin Lin <jamin_lin@aspeedtech.com>
> > > wrote:
> > > >
> > > > Hi Cedric,
> > > >
> > > > > Subject: Re: [PATCH v2 07/10] hw/arm/aspeed: Add support for
> > > > > loading vbootrom image via "-bios"
> > > > >
> > > > > On 4/10/25 04:38, 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>
> > > > > > ---
> > > > > > 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)
> > > > >
> > > > > please add an 'Error **' parameter and let the caller decide to exit.
> > > > >
> > > >
> > > > Will add.
> > > >
> > > > > > +{
> > > > > > + 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);
> > > > >
> > > > > What if the user didn't provide any -bios command line option ?
> > > > >
> > > >
> > > >
> > > > Will update to support both vbootrom and loader.
> > >
> > > For this case, could we have something like the npcm8xx_board.c
> > > where we have a default bootrom and override it with -bios? That
> > > would also fix the qtest issues with the ast2700 qtests which fail with this
> patchset.
> > >
> > Do you mean that if the user does not specify "-bios", we should still load a
> default vbootrom image into the vbootrom memory region?
> > We can verify whether -bios was provided by checking if machine->firmware
> is NULL.
> > It seems that if the user doesn't provide -bios, NPCM QEMU will look for a
> default vbootrom image in the current working directory — is that correct?
> >
> https://github.com/qemu/qemu/blob/master/hw/arm/npcm8xx_boards.c#L37
>
> Yeah. IIUC the default functionality should be to use a vbootrom to boot with
> the AST27X0 so if there is no bootrom declared we should default to the one
> you created. for the NPCM one, if we don't provide bios it will default to the
> one in pc-bios since it's supposed to be the base true version.
> I think it makes sense to do the same thing in ast2700. If we really find use in
> supporting attaching the loader binaries separately we could add a flag that
> skip the vbootrom, but I don't see much use in that since the information that
> would change is in the "image-bmc".
>
Thanks for your suggestion and review.
Will add in v3.
> >
> > ```
> > const char *bios_name = machine->firmware ?: npcm8xx_default_bootrom;
> > ``` Could you let me know which qtest(s) failed, so I can run them and
> > verify everything before sending out the v3 patch?
>
> qemu:qtest+qtest-aarch64 / qtest-aarch64/ast2700-gpio-test
> qemu:qtest+qtest-aarch64 / qtest-aarch64/ast2700-smc-test
>
> They both fail with " qemu-system-aarch64: Could not find vbootrom image
> '(null)' " so setting the default bootrom should fix this.
>
I can reproduce this issue. Thanks for testing.
Will fix in v3.
Jamin
> >
> > Thanks-Jamin
> >
> > > >
> > > > > > + 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);
> > > > > > + }
> > > > > > +
> > > > >
> > > > > Even without a vbootrom file, the machine could boot with '-device
> loader'
> > > > > options. We should preserve this way of booting an ast2700-evb
> machine.
> > > > >
> > > >
> > > > Will support both loader and vbootrom.
> > > > Thanks for review and suggestion.
> > > >
> > > > Jamin
> > > > >
> > > > > Thanks,
> > > > >
> > > > > C.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > > arm_load_kernel(ARM_CPU(first_cpu), machine,
> > > > > &aspeed_board_binfo);
> > > > > > }
> > > > > >
> > > >
> > >
> > > Also, tested against our custom machine + custom bmc image and the
> > > bootrom itself works.
> > > I think it might just need that default set.
> > >
> > > Tested-By: Nabih Estefan <nabihestefan@google.com>
>
> Thanks,
> Nabih
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 08/10] pc-bios: Add AST27x0 vBootrom
2025-04-10 2:38 [PATCH v2 00/10] Support vbootrom for AST2700 Jamin Lin via
` (6 preceding siblings ...)
2025-04-10 2:38 ` [PATCH v2 07/10] hw/arm/aspeed: Add support for loading vbootrom image via "-bios" Jamin Lin via
@ 2025-04-10 2:38 ` Jamin Lin via
2025-04-11 15:58 ` 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
` (2 subsequent siblings)
10 siblings, 1 reply; 29+ messages in thread
From: Jamin Lin via @ 2025-04-10 2:38 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>
---
MAINTAINERS | 1 +
pc-bios/README | 6 ++++++
pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15464 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..e50f56eed9deeea65cbc1dd37897d59b1ff64ddd
GIT binary patch
literal 15464
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
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] 29+ messages in thread* Re: [PATCH v2 08/10] pc-bios: Add AST27x0 vBootrom
2025-04-10 2:38 ` [PATCH v2 08/10] pc-bios: Add AST27x0 vBootrom Jamin Lin via
@ 2025-04-11 15:58 ` Cédric Le Goater
2025-04-14 6:50 ` Jamin Lin
0 siblings, 1 reply; 29+ messages in thread
From: Cédric Le Goater @ 2025-04-11 15:58 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/10/25 04:38, 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
See commit d1cb5eda67a0 ("roms: Add virtual Boot ROM for NPCM7xx SoCs")
for an example adding a ROM file.
Also, we need to be able to rebuild from source the provided vbootrom
blob, which means we need access to the code. I don't see any support
for Aspeed under https://github.com/google/vbootrom. Is that expected ?
What does pc-bios/ast27x0_bootrom.bin contain ?
Thanks,
C.
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> ---
> MAINTAINERS | 1 +
> pc-bios/README | 6 ++++++
> pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15464 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..e50f56eed9deeea65cbc1dd37897d59b1ff64ddd
> GIT binary patch
> literal 15464
> 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
>
> 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] 29+ messages in thread* RE: [PATCH v2 08/10] pc-bios: Add AST27x0 vBootrom
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
0 siblings, 1 reply; 29+ messages in thread
From: Jamin Lin @ 2025-04-14 6:50 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 and all,
> Subject: Re: [PATCH v2 08/10] pc-bios: Add AST27x0 vBootrom
>
> On 4/10/25 04:38, 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
>
> See commit d1cb5eda67a0 ("roms: Add virtual Boot ROM for NPCM7xx SoCs")
> for an example adding a ROM file.
>
> Also, we need to be able to rebuild from source the provided vbootrom blob,
> which means we need access to the code. I don't see any support for Aspeed
> under https://github.com/google/vbootrom. Is that expected ?
>
I have a question regarding the maintenance of the vbootrom submodule. According to the commit log, it was initially added from "google/vbootrom", but the latest version appears to be hosted at https://gitlab.com/qemu-project/vbootrom.git.
https://github.com/qemu/qemu/blob/master/.gitmodules#L40
I'm currently upstreaming changes from google/vbootrom, which is maintained by Google.
https://github.com/google/vbootrom/pull/5
Should I upstream to the qemu-project/vbootrom repository on GitLab or is it acceptable to continue updating the submodule from google/vbootrom?
Thanks-Jamin
> What does pc-bios/ast27x0_bootrom.bin contain ?
>
> Thanks,
>
> C.
>
>
>
>
> > Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> > ---
> > MAINTAINERS | 1 +
> > pc-bios/README | 6 ++++++
> > pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15464 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..e50f56eed9deeea65cbc1dd
> 37897
> > d59b1ff64ddd
> > GIT binary patch
> > literal 15464
> >
> zcmdUWeRNdix$m?0o`jG@3gios)$AnDOGgk80*TUQXA&tE+d@pO%a4@_Bs3
> T#gb9@b
> >
> zJ(*DNEw}0FVwwp-1QMt{$4ou<dTMA%k3B@{u^+hZK}2iqhm!=YJ+Y@MAc=}|f
> 4_I{
> > zJs%Nm*ZuDfPWImK`#jJ4d_T|o?$IZbI|bhie5c}@iLc<pYZkty1kbL()xxzDS3j;x
> >
> zaSh_S1lJ*47vUPkbs?_A{r~CHZW=GdVzB}N|3{_lg(8pjy-H06bdTIwCDz0Sk>hoM
> >
> zc^@#n6~+s%;Om#d7vIM7QBCgjN#9wYCC^p(i#u->3Hx-p(-N8J{jBjqFYsI(0nV#x
> > z9hsi2pCFXSkG0ai23OkiP0qEV#CYM#t|$9-@OQ<K(1qKz{!4f3{g(`hykltIe@~O}
> >
> zkS@n_M9u`Zc|$P3neahxX!L@FMvUCZu#xYL8hMeDDS*@DI953$k9nQBoXD3o
> 2~+k9
> >
> zw^xF$um8%fryo6uHHVD47cXFqH^B2~g*DhdU0ORtYQgECWDMPP5##Nqv_6F
> ~EyMb>
> >
> ziLpw2&7eg7f;oHboQPV_ygqa@)_D!%wmd)S7yq};`VSm?+m&gl44tK1ZTi~K<qby
> v
> >
> zM6;*=y+B%j>~k{VQ9R0<GI!NP6wlETJ@g*NG{{nP@%oTjBfK<JjIpSZ6Io$M*wm
> $T
> >
> zeY!O`jAtMCQZRi>L)QX^I_lW6EJWBJLodUIc>Tusas{)uG&CJB^#6d*3bpIGWA#^J
> >
> zkQ;jY&NApNCsMDkeXay{PY2vA=uXY;TN=7Q7VDuNqsFWVb$NM1738Rf9JfHPzl
> !UX
> >
> z>lS+?3>$hC?)lPCbcIZGi^D^-Ec6O=HEiU0X?Mb}ft`m}SQGESCWcO)^Spf`%Q*K*
> > zht`|G;d20dj00{6zN_fJUmAiRL|%q}o>R6F`h{(qrsbh?7?0-Yp;6#Om&ycj^fSwW
> >
> zlLz0)iG<T7d>L~=k%5tKS%Y;Vt&b^RfKJX6E<f^T(9M&a)B4YgJL9w$uL%7Nw23nc
> > zALRIK(6)ZKBJ>kyJi5#JQK2DYm$K@AlxO619^Z4|pbL8)VEs3jg|HTA1Yyg92z~hr
> > zkbe&5f~U(uKfv5&%w5)J{jl#stk$)w<=8dq>J)Z82w0_$#W#n(<>+b%z7n^?>hcin
> >
> z8NJ!ofjn9sidM+PCD6F@gV?|@?5glHR))R>TK^q1TpiI)Bd~*Oql5HCO_q%=wLYX
> z
> >
> z3;LXJ^cjV23Zc&hn$$*bwkD{ft)T7F{U?V%*B@w)_dbaATm-)5fjw}I>l?PL2QGEm
> > ztIOCX*eD9UhIQ$Tg06~}1LdIrc;lM0a>55`n-U}EG-=Q->ws_DOXZFT^?#chqyDdj
> >
> z{&ORL0X}uV3ga(Q2Nl)?>EFw7O-i|b4C`OS+86cQ&hVa|gCnqAoX->GA=H%cFm
> RPV
> >
> zgEuK3I)&%DxyB2cWV~5awrWD=$jp+p5?YU(GZI_0+!PsPUUFf~vh)cp+ZrsEYj4!E
> >
> z1=nDW4w#V{!I?#(XBK*7u*f4fYM2|I9<0$aWDvQohBWLv^l$xc{>jCf9iLq_ft)^&
> >
> zgLT`z(h6PH_G!TyQz~BM9CYtxe7|XEkt@4SsdyH>@I{Wf&k5QCaoWtIQNswSyj`L
> p
> >
> z@1!F~=*ZQ<nme@MS>`+XTr@p6GrCI#W9{I#GoydBYij?i4`=rOsZJ*Rx>YXFE%O
> R&
> >
> zp!i^Zxw7locwQ+COKWAm)cVt{^1>l$^&3(fNS6?NvxfMEk87<*J<dGt;rnXdgZUB
> %
> >
> zMy|w`6+Vl(G^yQ-dD865!F8Y3+BXgQ@C0lA1^I>akR)gPFWfI?uFSO8se--~uS2p<
> >
> zgB~m9O6&ahW3@gpt|KoKurXohVm$-jQ9N_~E4UU$wN?$eHj0=T-enCw?U7|
> 2Y2z!j
> >
> zl@cm?^BdnAMsCtjlVcmS@(Pi+tPE?XHWf7~Jy`P{@G%X15RdprwN$(U;Ax1_%jx
> o5
> >
> znMXp=`*xK1q0g|cWs$E(v3{{BGe)3)=C=hOfDhzb87k_03v+Ft&-my4hWBEnivEH
> W
> >
> zz6M{$TnT85f<`-N-1csQ#@R`8lj)n;*7u6uuYNw*<S+9#%`1x<X%Whp=8@+-v#g!j
> >
> zG1Q>lR+mQ))}%q+4v{r=qBY;o`U@D!^1zVU8O^uKf)lZ2tHCdI>Or1-@Y$82QTUz
> c
> >
> z!Lwr+i^6{!n~KW*ihEaI^#=5nBu{|^2Y+IW|F|zLSW^mGQKR5A^=D+fc<?gt*9Y?-
> >
> z_6^C5;-=Cv=Aa_#)G#7-bLFkqp}WifV0HD~_dpr-JrDS?bXn2?8Ge8@ll8nAzTxVb
> >
> zzJPTi>=RIPW)uMLA>1?G;rj#33&kr}O&n8o&6+S*rX#o7@oeJyfdk82T++0@482=
> v
> >
> zVN-D#W75FY2Oi%Aj2rv#Kf9;Ok_pCWyXa$n=+kW4P-a1&e%<JV-%{=xBo5VET*
> $H}
> >
> zl4IR}UrE^p(4}9H&m#D|E><~h69lb2-~o1Q73n=lJ_NAiNwCx%WH^gnv%DQRGJ
> VfM
> >
> z^7+kJtd#JiiT)%~jQRDTWs02UIQ9KrlDr1wor`a~c$%5FNMi$N_{Fovr9*k^#2AaB
> >
> z)}%qkx%l=<nu2cx{CUt<^S~F(72zwQDg06RBW0w%*$a~|_6x7U7hW~=hy|OlU#
> <tA
> > z;J5TVe1YrHCmumROdjezRylRmp|fvEj|{-R{#fidVLOPY`kC|yb4mx`X!Bl?^7AU+
> >
> zKJ_SRokVZy(&IS$aCfcCxVLS4Qsv%1InSdC|78Dp@XLJvL(m@vE!d}%aeZYMX?ql
> H
> >
> z^6AoW;a>&*Ymo6UV2MMyUV$F{(9==q=qcrAC1s>RTI7**v?kj(E;;(z19@PV=aB
> Et
> > z8chvl^YE<`&lqUdJ_vc+VG9c};+Hg~bL!glX+yNr^iR;BZJ(om)2EL?e_V^U^f>F$
> >
> zhKx1(I(c>N#e2?GV!g>Y$#Fp+R&~*d3(O(@b0U*{-}M3X-2=Mloy4P!8gec8mF@r
> J
> > zxt_TTYjaKF#C;yQ4l%l{P_#Ht0zHrycb`EV*B-<pU)UirhI;BUthY7PGxqP_|3h!h
> > z_qCsHLtUkx_7sZITn}AY=pV2j=|L~h+7G!czl6}M_7ql2>#dkKwcyNb)Qzg*U`^Er
> >
> zKiEb*^Z>QiK4A~u6GRUeeW370#Bg&|f-}v1!P&_+w)Egk>Q_LAd=CM}jc=|w6|
> @R7
> >
> z5dXYd*h6`+Ur56@*rD=4&<LKTjRoVR<H{=Fo3j2JcyQNa?xy|<A@^{G)Vi>)UXDT
> s
> >
> zN1=m%p?uIk`W+?zKjRs(>Qy?JV(S3)PU&Dip4%bYXgYdD=q`$J`n?4m_u`(q?X}FY
> >
> zUxNQW)Ktro5OQ)4^|8mac4lC_9dcQwgkFb!zn3)kE6h=6*FwLn&xqw_@?q|?c2
> >bB
> >
> zsN?^EarnUXr%*F0p!;v)YAu#fa1#8_(HB@j3GH;?eRw83>C58Y57~r%<JyEarcGRZ
> >
> zF>fh90?!*k5AtFkrd|K)ir(28WPBCzoF@A9s57;G=;2<#oCNRerv-k@KEuCOLSMl+
> >
> zZTe@77X!YSu?v~jVZ09Tk3yCr)a<#|+)m`-PS=iZ9J~&FyF86R4)UaHGWaL(_h;<w
> >
> z_aOeC2QBPn2N(~PkVC`#r)J0u&EHp(iG3~Y97GJ%T_de~p>NIXtKrxX?=Ab@uS=
> ~L
> > zeHqt}8kydcZhi_n^9t{14fE8nk?t+Vx=~|F<QdVkp5Xe}`(XWY6ZPbjOkFc<O!ad9
> >
> zG0a(4Vgt`)%Zz8*J~<Qn;X&qH(%?M#|32~Gj|~{$pK-JSJl9M5^~H;=olWnd_Ct@K
> >
> zLeJy@T;WP-&469o=Sb_X&=>q%j5Y1>bwBPuwOD3wzhLXj?%Rh8W$-BWW`63<
> >Bp(t
> >
> z5$LYYW4&DodyE7mgq}mi|5LC>w9p!)oc}L$x=1G*XC7Cf^B2dbV&Lfw*tJq0U;bZ
> M
> >
> zdkpK17}FwA;~MOLvb=jp1Np#$O$yN)M|nk_AWiH62Z9>TS3EKUd1o*Ue)crrqo6
> qk
> >
> z9}QlKEsugmvaH$Ae+O{T53K6|PRIMP<y`X}$jIwy=%>9%mQ;d%uO@Fb&*;62eP
> 0%I
> >
> z#&eovJy2KV|1{T>@fE|suK;i8UG7R=6EUE2o{RfeNA|aYZ_;-_W5k#VnLiOZ0b0x<
> > z7UGJ!FGMf&7sLx?9;O~)t7O_5XtS@eY5y#~hgya>3ZE)DjlS?X_G-D3+i9PJ>5;Et
> > zj^{MYwK<4Sdyj;ArS@e%kJsZ7>`}3=246XmIoLy^ewX_1`&wD>gV-|e0jL+|*JJwl
> >
> z3VZ!T&*1bq-g|*ZS%Sz5U%`DLYIYOWMGp238y?V3kK|$;I#Tg=(up+-a?v+={hRd-
> > zIhOTJ<;u--Zf`_>WZh>@M!%!-)q^;5tUpuKX^Ga^Yt0)Iv-e<fe!==l_2kL89(itX
> >
> z0Xn~wgL91wJR{_}OpcfP`rlC=_;(ccxljRH!9OdpZo3YDMeYgwC^-944)^-@J~;WT
> >
> zun^~ieTZG?e<u4d$sT%H<zU1+uaoUb8(u`5kdIQ>Zw};wUYFP6j47zgpt7UA)`#rq
> > zFP6~bfba8}odKL}oI`%{<E-yhj1iYT;pFwyT1n@oV^?B5v{^KLd_~`l5;_Fj9LdkB
> >
> zlbq&$)WT}XS;Mm?x2A?M@52~#Yd!YG`>`+WtC7%mG0qx5-|O2Wp>N~)6&<w
> ^IoXi>
> >
> zHSEXN?|X3e6TYQ5gUP`eOt9uhSQ~rqfi}o0I5Q*9ALX-^=u0Y9UxIb92F_5{{1|%T
> > zS}j}~{FGq47uP={PZmR$&_lr<*y|#Ca_W(1bL(Lj_7@|L|Lwt=+>6uSb-<t(zpBnI
> >
> zpr1=VZ$1p(*$03R_)K1ewGQze=|k=k^#9CnkY~d5SQG8I_v0SESi@MPj8}Fg;?eK
> $
> >
> zLLON2XtQ(`H+KK-){!#M8G<aY0p6}*>G2vSSf>&5=$i+gLEgOZ5puXP2x@*2;Fm*
> B
> >
> z@IfU*6J!cv|Le;1RmLx#pNGw!&~rLz=fF$}<p7U0>X(QQ+Hx3s<L|z&dc=Vo^sQm
> o
> > zljB_+`xu)tmf9TKFjff5y}IqQKTU~MH^;qW7+#(eVejqb+4#-inf&`<iwj19cOsyL
> >
> zUc#RH-3?kOcDD>h@3sat$??|1SD14H$9nH_d@O!;#IxxuyPk>XN0pONk4A9L=j
> H_V
> >
> zjy(G{(Sr=vS%a_WTJy8;w-KC$Fqi%svRc?HU&eV#0nUy%PQTDHf;HoqLykQj)3sLg
> >
> z0Px)$?}#xQ^SO~5p=0vT^TQ9vDsvQiQ71oKg3O-<EuOtIC-Q96&O^B=xdA!Bq2-
> +G
> >
> zIs2Cj(3PrZ%HFB_m=hnw3MTJsY<^N{T>Kas|MZbG29+(}yIv-C(cheRH$20?WOyR
> 9
> >
> z=eUs;xolh)p-m?s@4HWEq5pu+shcj;?k}gwahwyL%||bg$kq9g$Dlvva={s}WU$A
> W
> >
> z9r*#qSZjF}JA`|SHfym4q5tM#WwYyGvuh*w(k`&sINk@@K4I%I{=VXRo^kvl?iaQ
> %
> >
> z<VSw$@bxnEoMXr!_E`m8@a5m&`UHG9Vat>K@g5uf-7Vln^>*L^XBY$Q$1R-G
> GM14W
> > z&YpB?q#fJ#9={Dbwe4`S|24>|`gPEv-?+3I99qGTq?H~?bLb<#f4rZeHXz1e7tQ<q
> > z_gG`|m9Np~l)u^Mt||WZ(j=O%K7sdhj?Z!b!n`<yyy!>%@Hl+G4jn`n1qWrZgt(7`
> >
> z9cqy)2bXgmeJ}SCMX3MuNuJXs=gT7Cuy?Ta@~=sG0`*++ProuEm#>qF%kZTU+!
> uo`
> >
> zd4NAf9^gKLzOqyc&BnOvE2X%PB2R;t<J+0TzGMyd!Jf2@o3}4tN1yojxK9j0rvE@
> p
> >
> z&=#v9Lm2t7H`97M3jY15#kwO8_e_4Dg#HVB`)`!c8*%;<y`9~YIPsojhswXx4%nw
> U
> > zI^la#dE7VuGivYb_Bec>#Mq+_F2cT1*aki`fcF-I73f=N1BEyJGk6Eaekd0)loNqJ
> >
> zGq=Uzh9Qg62l^5b3;t`rEB(b4<Pg+1=&Oc#$sNC1--Gp4J!KAHuapNIH@;Yh-#~0K
> > z_D$w(k1Xi}Z^?N(*&kf{Jq12bqUShX9GuOb-l;7$?1Q>fYKx<D<)d0;82$<$Mr}oJ
> >
> zz6kwZhAe@+wa+7GQx-cfChE1IzWPCreS_fK13hY7?~G6CnDSB2n#jJQ)t?C|8yLF
> x
> >
> z9-N<==&Q-|dGwvoGipIDa(qr?QL>(${egya_o6rJ$~w@aYuI~MJc%9@`UhXOPh
> M5e
> >
> zi9Q!SuG6>ZUOOHnvIYJGU-JebFZ89}xrJc^CkNVfQTch|9k?IwIgX*O7GnMFr%F2o
> >
> z??qVm$+rc1sI711Pwzem8%9p)>=_Fp{|b2+`zH2ge7=BOg7=kSuHCNZjqO1#d<X
> Cz
> >
> z<n$M@?>MRFk43Q;9^yM1tmDVN^_ZT2+FmC=@+oJX9JNlacY~h4hI<)B8!<?_7
> WRh!
> >
> z2ln7QCHLI(%C5xwEjz|E;AoNNcgbH4@&jvyTSM*lSvY%jY<hLvdp-vD8*$v^*iQ0
> ?
> >
> z%?W>?-?4Y0KhPH#H?BW0mUu?$`nsyGc6^<+<168lDYaVppW5FjIhTA4uZdc9A}
> Nnz
> > zKa#XZu=_1T^;`Tc!XH78u}S~I`;6Ajh?U#p{$uZn;x$yg^Z#W$Uq&xzp##{vBIax6
> >
> z;Cn5;@6wO(PAfW!cY=8TALDx?_@)2Y9Xp@pc^uwlp%?Q`g`ae^TV3zNcG%}XhZ
> Fv?
> > zUie7|{N&ISS?9yvzfkn%G3=)`xwg6JOz-S+L(3|}eLefRrF^f<Jzid<9R4!WZsA?7
> >
> zMEr<z^jY3Bu-n}-C#&5kX#P*cSn$-!&hjZTV>iA&^ewHB`{1u{E^F8Gn=2tR`66xa
> > zIL;KNV88gA-r0u?Swq=+f4#EoNzfa?yEAvqpTK{qw_jnr9q)ng!lSl*Ce9?@iPheY
> >
> zUVwdD0D4ULUUF^Iy|zs>FYB{y6N&6{Y~hD3mLXSSZ6}Tsc1W&Q<EVM;Rk;6(eM
> tr@
> >
> zkY~)kFYn}81kN~?d>eW~Em%T+mQL?dd6adqP;#3CGdpHiNM7?(fV~5CV+c8r<KI
> Rc
> > zk5E?C^A<$D0XgZ<+;35y-{b1~CvtlYbL411Lcf6TcVHd%<z`=SHqTjPdI!!h?HEkd
> >
> zjYJGGr?PgTe)ga?tk7X|w@xu$c((82|8K0zG50w^@56hGci3Ya9<SYtYTnDx@kEJC
> > zlsNk3T6piN@&xPCct8tPLC!(sMA~#Ibe~+Gl>e8o1}63uqtK6i_F|ti2zmoyUB!Na
> > zdOZrg+Ix<I$d4ybo3W3ueJ3}<HUFFAKit>a`b^{(yS`{%#KpRbY*{iNdvlfRK!^NA
> >
> z;UA;{yW`zNZY0;Ch4JO~9>P7#NaPfEZJrSnf<N@qYVSfie+3UufEIgSo0pWD<M=A
> y
> >
> z_v;b25Bmgo$wlo%&G&|(H^$L@keM}hhU)A2TMM2`6-2%USU=u5tOuOhM*-#
> ^G1iAO
> > z4o&h-<D6<;K-bpfVZX_q%EUZvO&i!fTB3F(^EZl`tM(r_Z|Q?v(Ess^=znY-*uN)8
> >
> z?prQZ1PAGJd6L)3n!>tu40<@K=bUEk`!0B5KM*)&c5<!>^6;JQJK*UYeEUD+`bosH
> >
> z-J=?jQN$ws?H|C0Nj?x~DK%LAt|8HDk`L}_el{NKx%8#rAYN+E*sdq|!ux|-@Hms
> U
> >
> zarxWm@V5i}>BwP)M&20v)Iupx{>I;;P>$Jv!`^fmdA|TZWq(Tk6S14H??uC->I3qS
> > zm-_r7_=l~Iqu&~cLYG101>~Vg=Z^_{B<qwq`zCd!&em;za(Q0?o;1ifTp@$?r;0ie
> >
> zBV+#)u*=X-41qVkAK#C@=p4?~x#oF1qmNj}o+qJqJ4QyIaQ7rSVoCP-`aTmvU!u-a
> >
> z*z-;9@rE(RJ<qMkGt5uXg5KFYqnI3bPCsFvBf{4Uz;jgP3OmLbE9FiO5sWAHuDKD`
> >
> ze)hJ_kSX{<tQ2-oz1QU0zH<AP<}ED`Z27EgZmDmOyXOV&HRlCxGPiDP+1j|R?d#
> ^2
> >
> zmNs)^%l0h|nTg3wTfSDmc~gVAxpB)^+nUVz^BT<cUvFy+EHE2)Y;D}o*4SV!Gh4Q
> q
> > zWuMLzv(Ch)PJQfa^54nhYK{o*jSb-bwNdLp(jLj&ZSFSBMfiuYPpiN8IDZvP%7|(1
> > zUPNGi_;<HLt6OA4g1|kCNO=*#Y(z!gdBD(B{?#Ro?dF5x3s*9B4{0hautz}NgI|{r
> > z$#Zy-O(prS0;yYIDv}CDVL8-sF?Zt+COC)xcuyS4g$rjg6@-leP5@#5wPyjbyKc8V
> > zqHy_#$h<-lg`ghnTTbA=-E}rfX67A@+X9<fw%oMjhQ&85&dii~0a-;iF>Tjab!)A;
> >
> z>Hhk!Hk$Qq=HeamHt#U!2R7|&yonDxY<GcoEK)E5`C`k5@RZY;o3@zS>bHQ5O
> =Dr4
> >
> zR$Jp%MQig8kO8_w3I5v9=sN87^(`%Jw%az<2QX#Q$<6wPhHZ_3K#}9o$zu-5Ol
> hcZ
> >
> zt53n?Kng}9WOXRTu~hgF@+Q-b3DYuLHf{_wI$B6tbJLcuCZO6{9La9D;RaJ0TDCL
> -
> >
> zQt^LpA_S=oDAu77Xx;=BKqxMlDfMj|Wn+UQZnCHg%#HP%H?ObX&}?Fr?F*?C6
> WphA
> > z9jBJ84znIYf|g4lQ*PO|t!3Lyrth|;OU(JT+qMT7?5j3yyZ?duZH)^nKb>H9f!S2Q
> >
> zxeY?zkSUp;-+upA$_oZQ8rAg_c+=t~H!fXPx_m`hdHwng4UHRR^QJA^cP!Z21co*
> @
> >
> z$|9tn`aokq;GBW4-@m?PbD*wHHniNowZ3iBdH|$+raMpC&KmLT_@s7Sb|H?2
> L}uaZ
> >
> zIU9?e;e6%7%4yc&j3ZO3yVApH-Jbo%S2F+jhZkOa{@gUq;dlB{jW2$uiC-nhVkS10
> > z3TK~oc;=BA)m_uWpIFsBZT~er*$1*7$~-vr;fzC50-*4_-~aaI-@KGUhx~-`-GL3#
> >
> zTwM9#7!K-WFUGhIKjiUAd{1BudwY95^RVZL;p@`F+803G<<95c;>Sez5w}PbIBN|
> D
> >
> zXGl9d>qvpGD?gl9)t$RPXI0P412et^^i;-j0gm^ha`CsZ*aF<UAM#d>@eCYFy8QBb
> >
> zC&p%B>`nqwe~P!NF8wxgW~+_3LBOpBoJ*5q{9(BtWAllN562$GSR2Mn4&cMF
> CovYB
> >
> z1a}5wVT`R+P_~}VW9$sZs6+X}wCRWSBih2X;A5Kj7W%SonI?bu<3jSNW<*SY%|f
> xR
> >
> z{#`7#j5w7GefHevY#a=k_^t#@EnsSKuVhsCUsQzY7UU7<HS!=}RuTpuj<sRzF^svk
> > z<k((}{T^e<Iy{82H!!xCh{-y<#Ze)KiTgC*E&@*R>WsaFv0OA!$vS)kWAibV4H$k*
> >
> z{(&Eu7#rYyTn8IcWS9$>#{onC;m5?c3}fdo#`^?bHT6@u5JOz|9>AOd%t{Rp)vkVZ
> > z_#=U;97EXj@LN}j{vj6o4nPz1>f-cF3_k{#)qeyZq*vwAyUQ_TWfo!10OlV2aA-B|
> > z6&>Ywx5VWk40<OC{tcK}9+5`?GX(eqoqJN~tOSgO!%St{xP5L-f$;<8PQawb=(;!z
> >
> zZHwQY$v(jBaMxOVIQ>YPugeoQR(0$9HBwAY64dPp;G6?a6LI3YSUXv@%0JEncK
> UFt
> >
> z-N!MOfw4GW%6AidF&^jO2M`uu;(Vzb=wlA7>h=)!1vkg2b#4RvUchINCw%CeevI
> u-
> > z8YA5{jBUl(RsvCP33;o!_0Ol!rG6d({NsS1PrIkW`>3D$Ch3Rkz66{{a5&)lI_bQD
> >
> zu|pV(%agM1e(m;2bWGrw>F`V7ti?U_?B)SLGI>;Hk#03$vPWaF6NI@6fBs2y=`TB
> g
> >
> zvky4qE{^|j_K_@KS7vysuRCM^l&YTe18Kg8JO>SOm0Bj0{eiz48;{#u{Ddsk-TJL@
> >
> z(@@{%0ow%FY8Te66Q2WVCl|9wFe(Yp{~>Mn-wAI4z8diR03VlS>)~lfuJJwWsp`r
> O
> > zXLV=ppIX(EabQZ-L+J<88nEQ=QpHiZVlQY^<A5P9kMc+Qg01ID`$oYI0JZ_J$|ltJ
> >
> z)nKa@3T24`b}wM#IXXp8`?WQR(2}`;pAP4J4DfBZPuQ}m%Tt@s74vKv;Kl(r<if2z
> > zoOxubuPY-w#n+v_Kdq|Aa|bYflN`6?XDjf6*g*b0{FDK{5Acrw{(!rV-G_8Tw+O>8
> >
> zV~KbSBKbP^fTdsl9=L+T=)Ep(LUt85tn$hHDfw~OSqq#yC*!P1$Uh%*Wq^AynRX
> &K
> > z+|up&N}LtyssXT3z~cYwvUQq(^|6`q^{B2OMOWnI5b#dCJ~_Xt{ss<iryjyR4Y+6j
> > z1{`(y2KfNoR@^6StMcqE-8u!lx-PlK{7l3J4i-~$eJU^2fLjZ=`G8{&qt*y&ho>L;
> >
> zgs*E__!?h#_WrD@p3DPNs~*ZYIOXB=Luu^OKGX%0*8`x_hQow2xL0&O>|X~Av
> Ygtc
> > zi3#v?z|FvqRY^zTs(AmrT^le&-xvqX9Kftifl=}>=-j*>?;R=k0yMg1!1<+%bG4jR
> >
> z^^mFzzn#PveSb6Xhk*Yb7hm}!Vk>NP>or(4u6~=xLx7)y1ED?_ev;o*_2~B|g_w%
> >
> > zGr-vkoL~x$)3-C<C9Of<lx)-rzz@0bO3zh{V<(Ic7^{JnEDrTo20TAr_MLF?Ch^8L
> >
> wcXDiP2F`ilq{cqv=K@Y1W^9E4HywwIZ7%IZ+@e0##%18N``L#a|8bxH3u>Wpiv
> R!s
> >
> > 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] 29+ messages in thread* Re: [PATCH v2 08/10] pc-bios: Add AST27x0 vBootrom
2025-04-14 6:50 ` Jamin Lin
@ 2025-04-21 16:31 ` Cédric Le Goater
0 siblings, 0 replies; 29+ messages in thread
From: Cédric Le Goater @ 2025-04-21 16:31 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@google.com
Jamin,
On 4/14/25 08:50, Jamin Lin wrote:
> Hi Cedric and all,
>
>> Subject: Re: [PATCH v2 08/10] pc-bios: Add AST27x0 vBootrom
>>
>> On 4/10/25 04:38, 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
>>
>> See commit d1cb5eda67a0 ("roms: Add virtual Boot ROM for NPCM7xx SoCs")
>> for an example adding a ROM file.
>>
>> Also, we need to be able to rebuild from source the provided vbootrom blob,
>> which means we need access to the code. I don't see any support for Aspeed
>> under https://github.com/google/vbootrom. Is that expected ?
>>
>
> I have a question regarding the maintenance of the vbootrom submodule. According to the commit log, it was initially added from "google/vbootrom", but the latest version appears to be hosted at https://gitlab.com/qemu-project/vbootrom.git.
> https://github.com/qemu/qemu/blob/master/.gitmodules#L40
> I'm currently upstreaming changes from google/vbootrom, which is maintained by Google.
> https://github.com/google/vbootrom/pull/5
> Should I upstream to the qemu-project/vbootrom repository on GitLab or is it acceptable to continue updating the submodule from google/vbootrom?
https://gitlab.com/qemu-project/vbootrom.git is a mirror.
Please upstreamto google/vbootrom and qemu-project/vbootrom should
be quickly be updated.
Thanks,
C.
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 09/10] tests/functional/aspeed: Update AST2700 functional test to use vbootrom
2025-04-10 2:38 [PATCH v2 00/10] Support vbootrom for AST2700 Jamin Lin via
` (7 preceding siblings ...)
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:54 ` Cédric Le Goater
2025-04-10 2:38 ` [PATCH v2 10/10] docs/system/arm/aspeed: Support vbootrom for AST2700 Jamin Lin via
2025-04-11 15:48 ` [PATCH v2 00/10] " Cédric Le Goater
10 siblings, 1 reply; 29+ messages in thread
From: Jamin Lin via @ 2025-04-10 2:38 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
Refactor 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 | 38 +------------------------
1 file changed, 1 insertion(+), 37 deletions(-)
diff --git a/tests/functional/test_aarch64_aspeed.py b/tests/functional/test_aarch64_aspeed.py
index c25c966278..971f548534 100755
--- a/tests/functional/test_aarch64_aspeed.py
+++ b/tests/functional/test_aarch64_aspeed.py
@@ -36,43 +36,7 @@ def do_test_aarch64_aspeed_sdk_start(self, image):
'c1f4496aec06743c812a6e9a1a18d032f34d62f3ddb6956e924fef62aa2046a5')
def start_ast2700_test(self, name):
- num_cpu = 4
- uboot_size = os.path.getsize(self.scratch_file(name,
- 'u-boot-nodtb.bin'))
- uboot_dtb_load_addr = hex(0x400000000 + uboot_size)
-
- load_images_list = [
- {
- 'addr': '0x400000000',
- 'file': self.scratch_file(name,
- 'u-boot-nodtb.bin')
- },
- {
- 'addr': str(uboot_dtb_load_addr),
- 'file': self.scratch_file(name, 'u-boot.dtb')
- },
- {
- 'addr': '0x430000000',
- 'file': self.scratch_file(name, 'bl31.bin')
- },
- {
- 'addr': '0x430080000',
- 'file': self.scratch_file(name, 'optee',
- 'tee-raw.bin')
- }
- ]
-
- for load_image in load_images_list:
- addr = load_image['addr']
- file = load_image['file']
- self.vm.add_args('-device',
- f'loader,force-raw=on,addr={addr},file={file}')
-
- for i in range(num_cpu):
- self.vm.add_args('-device',
- f'loader,addr=0x430000000,cpu-num={i}')
-
- self.vm.add_args('-smp', str(num_cpu))
+ self.vm.add_args('-bios', 'ast27x0_bootrom.bin')
self.vm.add_args('-device',
'tmp105,bus=aspeed.i2c.bus.1,address=0x4d,id=tmp-test')
self.do_test_aarch64_aspeed_sdk_start(
--
2.43.0
^ permalink raw reply related [flat|nested] 29+ messages in thread* Re: [PATCH v2 09/10] tests/functional/aspeed: Update AST2700 functional test to use vbootrom
2025-04-10 2:38 ` [PATCH v2 09/10] tests/functional/aspeed: Update AST2700 functional test to use vbootrom Jamin Lin via
@ 2025-04-11 15:54 ` Cédric Le Goater
2025-04-14 2:06 ` Jamin Lin
0 siblings, 1 reply; 29+ messages in thread
From: Cédric Le Goater @ 2025-04-11 15:54 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/10/25 04:38, Jamin Lin wrote:
> Refactor 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 | 38 +------------------------
> 1 file changed, 1 insertion(+), 37 deletions(-)
>
> diff --git a/tests/functional/test_aarch64_aspeed.py b/tests/functional/test_aarch64_aspeed.py
> index c25c966278..971f548534 100755
> --- a/tests/functional/test_aarch64_aspeed.py
> +++ b/tests/functional/test_aarch64_aspeed.py
> @@ -36,43 +36,7 @@ def do_test_aarch64_aspeed_sdk_start(self, image):
> 'c1f4496aec06743c812a6e9a1a18d032f34d62f3ddb6956e924fef62aa2046a5')
>
> def start_ast2700_test(self, name):
> - num_cpu = 4
> - uboot_size = os.path.getsize(self.scratch_file(name,
> - 'u-boot-nodtb.bin'))
> - uboot_dtb_load_addr = hex(0x400000000 + uboot_size)
> -
> - load_images_list = [
> - {
> - 'addr': '0x400000000',
> - 'file': self.scratch_file(name,
> - 'u-boot-nodtb.bin')
> - },
> - {
> - 'addr': str(uboot_dtb_load_addr),
> - 'file': self.scratch_file(name, 'u-boot.dtb')
> - },
> - {
> - 'addr': '0x430000000',
> - 'file': self.scratch_file(name, 'bl31.bin')
> - },
> - {
> - 'addr': '0x430080000',
> - 'file': self.scratch_file(name, 'optee',
> - 'tee-raw.bin')
> - }
> - ]
> -
> - for load_image in load_images_list:
> - addr = load_image['addr']
> - file = load_image['file']
> - self.vm.add_args('-device',
> - f'loader,force-raw=on,addr={addr},file={file}')
> -
> - for i in range(num_cpu):
> - self.vm.add_args('-device',
> - f'loader,addr=0x430000000,cpu-num={i}')
> -
> - self.vm.add_args('-smp', str(num_cpu))
> + self.vm.add_args('-bios', 'ast27x0_bootrom.bin')
> self.vm.add_args('-device',
> 'tmp105,bus=aspeed.i2c.bus.1,address=0x4d,id=tmp-test')
> self.do_test_aarch64_aspeed_sdk_start(
I think it is interesting to keep both method for the tests, with and without
the vbootrom.
Thanks,
C.
^ permalink raw reply [flat|nested] 29+ messages in thread* RE: [PATCH v2 09/10] tests/functional/aspeed: Update AST2700 functional test to use vbootrom
2025-04-11 15:54 ` Cédric Le Goater
@ 2025-04-14 2:06 ` Jamin Lin
0 siblings, 0 replies; 29+ messages in thread
From: Jamin Lin @ 2025-04-14 2:06 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 v2 09/10] tests/functional/aspeed: Update AST2700
> functional test to use vbootrom
>
> On 4/10/25 04:38, Jamin Lin wrote:
> > Refactor 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 | 38 +------------------------
> > 1 file changed, 1 insertion(+), 37 deletions(-)
> >
> > diff --git a/tests/functional/test_aarch64_aspeed.py
> > b/tests/functional/test_aarch64_aspeed.py
> > index c25c966278..971f548534 100755
> > --- a/tests/functional/test_aarch64_aspeed.py
> > +++ b/tests/functional/test_aarch64_aspeed.py
> > @@ -36,43 +36,7 @@ def do_test_aarch64_aspeed_sdk_start(self, image):
> >
> >
> 'c1f4496aec06743c812a6e9a1a18d032f34d62f3ddb6956e924fef62aa2046a5')
> >
> > def start_ast2700_test(self, name):
> > - num_cpu = 4
> > - uboot_size = os.path.getsize(self.scratch_file(name,
> > -
> 'u-boot-nodtb.bin'))
> > - uboot_dtb_load_addr = hex(0x400000000 + uboot_size)
> > -
> > - load_images_list = [
> > - {
> > - 'addr': '0x400000000',
> > - 'file': self.scratch_file(name,
> > - 'u-boot-nodtb.bin')
> > - },
> > - {
> > - 'addr': str(uboot_dtb_load_addr),
> > - 'file': self.scratch_file(name, 'u-boot.dtb')
> > - },
> > - {
> > - 'addr': '0x430000000',
> > - 'file': self.scratch_file(name, 'bl31.bin')
> > - },
> > - {
> > - 'addr': '0x430080000',
> > - 'file': self.scratch_file(name, 'optee',
> > - 'tee-raw.bin')
> > - }
> > - ]
> > -
> > - for load_image in load_images_list:
> > - addr = load_image['addr']
> > - file = load_image['file']
> > - self.vm.add_args('-device',
> > -
> f'loader,force-raw=on,addr={addr},file={file}')
> > -
> > - for i in range(num_cpu):
> > - self.vm.add_args('-device',
> > -
> f'loader,addr=0x430000000,cpu-num={i}')
> > -
> > - self.vm.add_args('-smp', str(num_cpu))
> > + self.vm.add_args('-bios', 'ast27x0_bootrom.bin')
> > self.vm.add_args('-device',
> >
> 'tmp105,bus=aspeed.i2c.bus.1,address=0x4d,id=tmp-test')
> > self.do_test_aarch64_aspeed_sdk_start(
>
>
> I think it is interesting to keep both method for the tests, with and without the
> vbootrom.
>
Got it.
Will update it.
Jamin
> Thanks,
>
> C.
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 10/10] docs/system/arm/aspeed: Support vbootrom for AST2700
2025-04-10 2:38 [PATCH v2 00/10] Support vbootrom for AST2700 Jamin Lin via
` (8 preceding siblings ...)
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:48 ` [PATCH v2 00/10] " Cédric Le Goater
10 siblings, 0 replies; 29+ messages in thread
From: Jamin Lin via @ 2025-04-10 2:38 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 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>
---
docs/system/arm/aspeed.rst | 18 ++++--------------
1 file changed, 4 insertions(+), 14 deletions(-)
diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst
index 97fd6a0e7f..dfa8e6b4c6 100644
--- a/docs/system/arm/aspeed.rst
+++ b/docs/system/arm/aspeed.rst
@@ -250,24 +250,14 @@ under Linux), use :
Booting the ast2700-evb machine
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Boot the AST2700 machine from the flash image, use an MTD drive :
+Boot the AST2700 machine using a flash image, with an MTD drive and
+the virtual boot ROM :
.. code-block:: bash
- IMGDIR=ast2700-default
- UBOOT_SIZE=$(stat --format=%s -L ${IMGDIR}/u-boot-nodtb.bin)
-
$ qemu-system-aarch64 -M ast2700-evb \
- -device loader,force-raw=on,addr=0x400000000,file=${IMGDIR}/u-boot-nodtb.bin \
- -device loader,force-raw=on,addr=$((0x400000000 + ${UBOOT_SIZE})),file=${IMGDIR}/u-boot.dtb \
- -device loader,force-raw=on,addr=0x430000000,file=${IMGDIR}/bl31.bin \
- -device loader,force-raw=on,addr=0x430080000,file=${IMGDIR}/optee/tee-raw.bin \
- -device loader,cpu-num=0,addr=0x430000000 \
- -device loader,cpu-num=1,addr=0x430000000 \
- -device loader,cpu-num=2,addr=0x430000000 \
- -device loader,cpu-num=3,addr=0x430000000 \
- -smp 4 \
- -drive file=${IMGDIR}/image-bmc,format=raw,if=mtd \
+ -bios ast27x0_bootrom.bin \
+ -drive file=image-bmc,format=raw,if=mtd \
-nographic
Aspeed minibmc family boards (``ast1030-evb``)
--
2.43.0
^ permalink raw reply related [flat|nested] 29+ messages in thread* Re: [PATCH v2 00/10] Support vbootrom for AST2700
2025-04-10 2:38 [PATCH v2 00/10] Support vbootrom for AST2700 Jamin Lin via
` (9 preceding siblings ...)
2025-04-10 2:38 ` [PATCH v2 10/10] docs/system/arm/aspeed: Support vbootrom for AST2700 Jamin Lin via
@ 2025-04-11 15:48 ` Cédric Le Goater
2025-04-14 1:20 ` Jamin Lin
10 siblings, 1 reply; 29+ messages in thread
From: Cédric Le Goater @ 2025-04-11 15:48 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
Hello Jamin
On 4/10/25 04:38, 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
I don't see any updates on the vbootrom github repo for Aspeed SoCs. Is the
vbootrom compatible with the Nuvoton SoC ?
Thanks,
C.
> v2:
> Add "Introduced ASPEED_DEV_VBOOTROM in the device enumeration" patch to fix
> build failed.
>
> Jamin Lin (10):
> hw/arm/aspeed: Introduced ASPEED_DEV_VBOOTROM in the device
> enumeration
> hw/arm/aspeed_ast27x0: Add "vbootrom_size" field to AspeedSoCClass
> hw/arm/aspeed_ast27x0: Rename variable sram_name to name in ast2700
> realize
> hw/arm/aspeed_ast27x0 Introduce vbootrom memory region
> hw/arm/aspeed: Enable vbootrom support by default on AST2700 EVB
> machines
> hw/arm/aspeed: Reuse rom_size variable for vbootrom setup
> hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
> pc-bios: Add AST27x0 vBootrom
> tests/functional/aspeed: Update AST2700 functional test to use
> vbootrom
> docs/system/arm/aspeed: Support vbootrom for AST2700
>
> MAINTAINERS | 1 +
> docs/system/arm/aspeed.rst | 18 +++--------
> include/hw/arm/aspeed.h | 1 +
> include/hw/arm/aspeed_soc.h | 3 ++
> hw/arm/aspeed.c | 37 ++++++++++++++++++++++-
> hw/arm/aspeed_ast27x0.c | 20 ++++++++++---
> pc-bios/README | 6 ++++
> pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15464 bytes
> pc-bios/meson.build | 1 +
> tests/functional/test_aarch64_aspeed.py | 38 +-----------------------
> 10 files changed, 69 insertions(+), 56 deletions(-)
> create mode 100644 pc-bios/ast27x0_bootrom.bin
>
^ permalink raw reply [flat|nested] 29+ messages in thread* RE: [PATCH v2 00/10] Support vbootrom for AST2700
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
0 siblings, 1 reply; 29+ messages in thread
From: Jamin Lin @ 2025-04-14 1:20 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 v2 00/10] Support vbootrom for AST2700
>
> Hello Jamin
>
> On 4/10/25 04:38, 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
>
> I don't see any updates on the vbootrom github repo for Aspeed SoCs. Is the
> vbootrom compatible with the Nuvoton SoC ?
>
I am upstreaming google/vbootrom to support AST27X0 and code changes in this
pull request, https://github.com/google/vbootrom/pull/5
Thanks-Jamin
>
> Thanks,
>
> C.
>
>
>
>
> > v2:
> > Add "Introduced ASPEED_DEV_VBOOTROM in the device enumeration"
> patch to fix
> > build failed.
> >
> > Jamin Lin (10):
> > hw/arm/aspeed: Introduced ASPEED_DEV_VBOOTROM in the device
> > enumeration
> > hw/arm/aspeed_ast27x0: Add "vbootrom_size" field to AspeedSoCClass
> > hw/arm/aspeed_ast27x0: Rename variable sram_name to name in
> ast2700
> > realize
> > hw/arm/aspeed_ast27x0 Introduce vbootrom memory region
> > hw/arm/aspeed: Enable vbootrom support by default on AST2700 EVB
> > machines
> > hw/arm/aspeed: Reuse rom_size variable for vbootrom setup
> > hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
> > pc-bios: Add AST27x0 vBootrom
> > tests/functional/aspeed: Update AST2700 functional test to use
> > vbootrom
> > docs/system/arm/aspeed: Support vbootrom for AST2700
> >
> > MAINTAINERS | 1 +
> > docs/system/arm/aspeed.rst | 18 +++--------
> > include/hw/arm/aspeed.h | 1 +
> > include/hw/arm/aspeed_soc.h | 3 ++
> > hw/arm/aspeed.c | 37
> ++++++++++++++++++++++-
> > hw/arm/aspeed_ast27x0.c | 20 ++++++++++---
> > pc-bios/README | 6 ++++
> > pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15464 bytes
> > pc-bios/meson.build | 1 +
> > tests/functional/test_aarch64_aspeed.py | 38 +-----------------------
> > 10 files changed, 69 insertions(+), 56 deletions(-)
> > create mode 100644 pc-bios/ast27x0_bootrom.bin
> >
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v2 00/10] Support vbootrom for AST2700
2025-04-14 1:20 ` Jamin Lin
@ 2025-04-21 16:08 ` Cédric Le Goater
0 siblings, 0 replies; 29+ messages in thread
From: Cédric Le Goater @ 2025-04-21 16:08 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@google.com
Hello Jamin
On 4/14/25 03:20, Jamin Lin wrote:
> Hi Cedric,
>
>> Subject: Re: [PATCH v2 00/10] Support vbootrom for AST2700
>>
>> Hello Jamin
>>
>> On 4/10/25 04:38, 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
>>
>> I don't see any updates on the vbootrom github repo for Aspeed SoCs. Is the
>> vbootrom compatible with the Nuvoton SoC ?
>>
> I am upstreaming google/vbootrom to support AST27X0 and code changes in this
> pull request, https://github.com/google/vbootrom/pull/5
Nice !
This vbootrom proposal should be merged before accepting the changes
in QEMU though. The vbootrom PR has been approved, it lacks an Aspeed
CLA AFAICT. So this seems feasible for the QEMU 10.1 cycle.
Thanks,
C.
^ permalink raw reply [flat|nested] 29+ messages in thread