* [PATCH v6 1/6] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region
2025-04-24 7:51 [PATCH v6 0/6] Support vbootrom for AST2700 Jamin Lin via
@ 2025-04-24 7:51 ` Jamin Lin via
2025-04-24 8:43 ` Cédric Le Goater
2025-04-24 7:51 ` [PATCH v6 2/6] pc-bios: Add AST27x0 vBootrom Jamin Lin via
` (5 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Jamin Lin via @ 2025-04-24 7:51 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan
Introduce a new vbootrom memory region. The region is mapped at address
"0x00000000" and has a size of 128KB, identical to the SRAM region size.
This memory region is intended for loading a vbootrom image file as part of the
boot process.
The vbootrom registered in the SoC's address space using the ASPEED_DEV_VBOOTROM
index.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Nabih Estefan <nabihestefan@google.com>
Tested-by: Nabih Estefan <nabihestefan@google.com>
---
include/hw/arm/aspeed_soc.h | 2 ++
hw/arm/aspeed_ast27x0.c | 9 +++++++++
2 files changed, 11 insertions(+)
diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h
index f069d17d16..b4b23d693d 100644
--- a/include/hw/arm/aspeed_soc.h
+++ b/include/hw/arm/aspeed_soc.h
@@ -59,6 +59,7 @@ struct AspeedSoCState {
MemoryRegion sram;
MemoryRegion spi_boot_container;
MemoryRegion spi_boot;
+ MemoryRegion vbootrom;
AddressSpace dram_as;
AspeedRtcState rtc;
AspeedTimerCtrlState timerctrl;
@@ -169,6 +170,7 @@ struct AspeedSoCClass {
const char *aspeed_soc_cpu_type(AspeedSoCClass *sc);
enum {
+ ASPEED_DEV_VBOOTROM,
ASPEED_DEV_SPI_BOOT,
ASPEED_DEV_IOMEM,
ASPEED_DEV_UART0,
diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c
index b05ed75ff4..968dfa5526 100644
--- a/hw/arm/aspeed_ast27x0.c
+++ b/hw/arm/aspeed_ast27x0.c
@@ -24,6 +24,7 @@
#include "qemu/log.h"
static const hwaddr aspeed_soc_ast2700_memmap[] = {
+ [ASPEED_DEV_VBOOTROM] = 0x00000000,
[ASPEED_DEV_SRAM] = 0x10000000,
[ASPEED_DEV_HACE] = 0x12070000,
[ASPEED_DEV_EMMC] = 0x12090000,
@@ -657,6 +658,14 @@ static void aspeed_soc_ast2700_realize(DeviceState *dev, Error **errp)
memory_region_add_subregion(s->memory,
sc->memmap[ASPEED_DEV_SRAM], &s->sram);
+ /* VBOOTROM */
+ if (!memory_region_init_ram(&s->vbootrom, OBJECT(s), "aspeed.vbootrom",
+ 0x20000, errp)) {
+ return;
+ }
+ memory_region_add_subregion(s->memory,
+ sc->memmap[ASPEED_DEV_VBOOTROM], &s->vbootrom);
+
/* SCU */
if (!sysbus_realize(SYS_BUS_DEVICE(&s->scu), errp)) {
return;
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v6 1/6] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region
2025-04-24 7:51 ` [PATCH v6 1/6] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region Jamin Lin via
@ 2025-04-24 8:43 ` Cédric Le Goater
0 siblings, 0 replies; 14+ messages in thread
From: Cédric Le Goater @ 2025-04-24 8:43 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/24/25 09:51, Jamin Lin wrote:
> Introduce a new vbootrom memory region. The region is mapped at address
> "0x00000000" and has a size of 128KB, identical to the SRAM region size.
> This memory region is intended for loading a vbootrom image file as part of the
> boot process.
>
> The vbootrom registered in the SoC's address space using the ASPEED_DEV_VBOOTROM
> index.
>
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> Reviewed-by: Nabih Estefan <nabihestefan@google.com>
> Tested-by: Nabih Estefan <nabihestefan@google.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> include/hw/arm/aspeed_soc.h | 2 ++
> hw/arm/aspeed_ast27x0.c | 9 +++++++++
> 2 files changed, 11 insertions(+)
>
> diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h
> index f069d17d16..b4b23d693d 100644
> --- a/include/hw/arm/aspeed_soc.h
> +++ b/include/hw/arm/aspeed_soc.h
> @@ -59,6 +59,7 @@ struct AspeedSoCState {
> MemoryRegion sram;
> MemoryRegion spi_boot_container;
> MemoryRegion spi_boot;
> + MemoryRegion vbootrom;
> AddressSpace dram_as;
> AspeedRtcState rtc;
> AspeedTimerCtrlState timerctrl;
> @@ -169,6 +170,7 @@ struct AspeedSoCClass {
> const char *aspeed_soc_cpu_type(AspeedSoCClass *sc);
>
> enum {
> + ASPEED_DEV_VBOOTROM,
> ASPEED_DEV_SPI_BOOT,
> ASPEED_DEV_IOMEM,
> ASPEED_DEV_UART0,
> diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c
> index b05ed75ff4..968dfa5526 100644
> --- a/hw/arm/aspeed_ast27x0.c
> +++ b/hw/arm/aspeed_ast27x0.c
> @@ -24,6 +24,7 @@
> #include "qemu/log.h"
>
> static const hwaddr aspeed_soc_ast2700_memmap[] = {
> + [ASPEED_DEV_VBOOTROM] = 0x00000000,
> [ASPEED_DEV_SRAM] = 0x10000000,
> [ASPEED_DEV_HACE] = 0x12070000,
> [ASPEED_DEV_EMMC] = 0x12090000,
> @@ -657,6 +658,14 @@ static void aspeed_soc_ast2700_realize(DeviceState *dev, Error **errp)
> memory_region_add_subregion(s->memory,
> sc->memmap[ASPEED_DEV_SRAM], &s->sram);
>
> + /* VBOOTROM */
> + if (!memory_region_init_ram(&s->vbootrom, OBJECT(s), "aspeed.vbootrom",
> + 0x20000, errp)) {
> + return;
> + }
> + memory_region_add_subregion(s->memory,
> + sc->memmap[ASPEED_DEV_VBOOTROM], &s->vbootrom);
> +
> /* SCU */
> if (!sysbus_realize(SYS_BUS_DEVICE(&s->scu), errp)) {
> return;
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v6 2/6] pc-bios: Add AST27x0 vBootrom
2025-04-24 7:51 [PATCH v6 0/6] Support vbootrom for AST2700 Jamin Lin via
2025-04-24 7:51 ` [PATCH v6 1/6] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region Jamin Lin via
@ 2025-04-24 7:51 ` Jamin Lin via
2025-04-24 10:22 ` Cédric Le Goater
2025-04-24 7:51 ` [PATCH v6 3/6] hw/arm/aspeed: Add support for loading vbootrom image via "-bios" Jamin Lin via
` (4 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Jamin Lin via @ 2025-04-24 7:51 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
Commit id: 82bed5ca62295228ea7bcdc721b63db178f686e8
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Nabih Estefan <nabihestefan@google.com>
Tested-by: Nabih Estefan <nabihestefan@google.com>
---
MAINTAINERS | 1 +
pc-bios/README | 6 ++++++
pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15424 bytes
pc-bios/meson.build | 1 +
4 files changed, 8 insertions(+)
create mode 100644 pc-bios/ast27x0_bootrom.bin
diff --git a/MAINTAINERS b/MAINTAINERS
index d54b5578f8..70ab0d0afa 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1163,6 +1163,7 @@ F: docs/system/arm/fby35.rst
F: tests/*/*aspeed*
F: tests/*/*ast2700*
F: hw/arm/fby35.c
+F: pc-bios/ast27x0_bootrom.bin
NRF51
M: Joel Stanley <joel@jms.id.au>
diff --git a/pc-bios/README b/pc-bios/README
index f0f13e15f2..d009c37895 100644
--- a/pc-bios/README
+++ b/pc-bios/README
@@ -89,6 +89,12 @@
more features over time as needed. The source code is available at:
https://github.com/google/vbootrom
+- ast27x0_bootrom.bin is a simplified, free (Apache 2.0) boot ROM for
+ ASPEED AST27x0 BMC SOC. It currently implements the bare minimum to
+ load, parse, initialize and run boot images stored in SPI flash, but may grow
+ more features over time as needed. The source code is available at:
+ https://github.com/google/vbootrom
+
- hppa-firmware.img (32-bit) and hppa-firmware64.img (64-bit) are firmware
files for the HP-PARISC (hppa) architecture.
They are built form the SeaBIOS-hppa sources, which is a fork of SeaBIOS
diff --git a/pc-bios/ast27x0_bootrom.bin b/pc-bios/ast27x0_bootrom.bin
new file mode 100644
index 0000000000000000000000000000000000000000..d46403b023c00f989b6facb397d57bea7e5c583a
GIT binary patch
literal 15424
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
TJDH<UkE#+fTtE*0xX=Fr0X;+;
literal 0
HcmV?d00001
diff --git a/pc-bios/meson.build b/pc-bios/meson.build
index 34d6616c32..83998f6071 100644
--- a/pc-bios/meson.build
+++ b/pc-bios/meson.build
@@ -84,6 +84,7 @@ blobs = [
'npcm8xx_bootrom.bin',
'vof.bin',
'vof-nvram.bin',
+ 'ast27x0_bootrom.bin',
]
dtc = find_program('dtc', required: false)
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v6 2/6] pc-bios: Add AST27x0 vBootrom
2025-04-24 7:51 ` [PATCH v6 2/6] pc-bios: Add AST27x0 vBootrom Jamin Lin via
@ 2025-04-24 10:22 ` Cédric Le Goater
2025-04-25 2:28 ` Jamin Lin
0 siblings, 1 reply; 14+ messages in thread
From: Cédric Le Goater @ 2025-04-24 10:22 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/24/25 09:51, 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
> Commit id: 82bed5ca62295228ea7bcdc721b63db178f686e8
It would be good to report some build info when vbootrom starts.
Today we have,
_ ______ ____ ____ __________ ____ __ ___ ___ ______________ ______ ______
| | / / __ )/ __ \/ __ \/_ __/ __ \/ __ \/ |/ / / | / ___/_ __/__ \/__ / |/ / __ \
| | / / __ / / / / / / / / / / /_/ / / / / /|_/ /_____/ /| | \__ \ / / __/ / / /| / / / /
| |/ / /_/ / /_/ / /_/ / / / / _, _/ /_/ / / / /_____/ ___ |___/ // / / __/ / // / /_/ /
|___/_____/\____/\____/ /_/ /_/ |_|\____/_/ /_/ /_/ |_/____//_/ /____/ /_//_/|_\____/
Version:1.0.0
I don't see any 1.0.0 tag under https://github.com/google/vbootrom ?
Other firmware images report :
Jumping to BL31 (Trusted Firmware-A) at 0x430000000
NOTICE: BL31: v2.10.3(release):lts-v2.10.3-dirty
NOTICE: BL31: Built : 17:17:34, Apr 5 2024
I/TC:
I/TC: OP-TEE version: 4.1.0-dev (gcc version 13.2.0 (GCC)) #1 Fri Jan 19 17:14:14 UTC 2024 aarch64
I/TC: WARNING: This OP-TEE configuration might be insecure!
I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
I/TC: Primary CPU initializing
I/TC: Primary CPU switching to normal world boot
U-Boot 2023.10-v00.05.06 (Mar 26 2025 - 05:59:26 +0000)
OpenFirmware:
SLOF **********************************************************************
QEMU Starting
Build Date = Nov 6 2024 15:31:54
FW Version = git-ee03aec2c106a699
OpenBIOS:
>> =============================================================
>> OpenBIOS 1.1 [Sep 24 2024 19:56]
>> Configuration device id QEMU version 1 machine id 1
SeaBIOS:
SeaBIOS (version rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org)
Adding a commit id, tag, build date to identify the firmware image
would be useful when issues are reported.
See https://github.com/google/vbootrom/issues/6.
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> Reviewed-by: Nabih Estefan <nabihestefan@google.com>
> Tested-by: Nabih Estefan <nabihestefan@google.com>
Other than that,
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> MAINTAINERS | 1 +
> pc-bios/README | 6 ++++++
> pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15424 bytes
> pc-bios/meson.build | 1 +
> 4 files changed, 8 insertions(+)
> create mode 100644 pc-bios/ast27x0_bootrom.bin
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index d54b5578f8..70ab0d0afa 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1163,6 +1163,7 @@ F: docs/system/arm/fby35.rst
> F: tests/*/*aspeed*
> F: tests/*/*ast2700*
> F: hw/arm/fby35.c
> +F: pc-bios/ast27x0_bootrom.bin
>
> NRF51
> M: Joel Stanley <joel@jms.id.au>
> diff --git a/pc-bios/README b/pc-bios/README
> index f0f13e15f2..d009c37895 100644
> --- a/pc-bios/README
> +++ b/pc-bios/README
> @@ -89,6 +89,12 @@
> more features over time as needed. The source code is available at:
> https://github.com/google/vbootrom
>
> +- ast27x0_bootrom.bin is a simplified, free (Apache 2.0) boot ROM for
> + ASPEED AST27x0 BMC SOC. It currently implements the bare minimum to
> + load, parse, initialize and run boot images stored in SPI flash, but may grow
> + more features over time as needed. The source code is available at:
> + https://github.com/google/vbootrom
> +
> - hppa-firmware.img (32-bit) and hppa-firmware64.img (64-bit) are firmware
> files for the HP-PARISC (hppa) architecture.
> They are built form the SeaBIOS-hppa sources, which is a fork of SeaBIOS
> diff --git a/pc-bios/ast27x0_bootrom.bin b/pc-bios/ast27x0_bootrom.bin
> new file mode 100644
> index 0000000000000000000000000000000000000000..d46403b023c00f989b6facb397d57bea7e5c583a
> GIT binary patch
> literal 15424
> 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
> TJDH<UkE#+fTtE*0xX=Fr0X;+;
>
> literal 0
> HcmV?d00001
>
> diff --git a/pc-bios/meson.build b/pc-bios/meson.build
> index 34d6616c32..83998f6071 100644
> --- a/pc-bios/meson.build
> +++ b/pc-bios/meson.build
> @@ -84,6 +84,7 @@ blobs = [
> 'npcm8xx_bootrom.bin',
> 'vof.bin',
> 'vof-nvram.bin',
> + 'ast27x0_bootrom.bin',
> ]
>
> dtc = find_program('dtc', required: false)
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH v6 2/6] pc-bios: Add AST27x0 vBootrom
2025-04-24 10:22 ` Cédric Le Goater
@ 2025-04-25 2:28 ` Jamin Lin
2025-04-25 6:21 ` Cédric Le Goater
0 siblings, 1 reply; 14+ messages in thread
From: Jamin Lin @ 2025-04-25 2:28 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, Nabih
> Subject: Re: [PATCH v6 2/6] pc-bios: Add AST27x0 vBootrom
>
> On 4/24/25 09:51, 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
> > Commit id: 82bed5ca62295228ea7bcdc721b63db178f686e8
>
> It would be good to report some build info when vbootrom starts.
>
> Today we have,
>
> _ ______ ____ ____ __________ ____ __ ___ ___
> ______________ ______ ______
> | | / / __ )/ __ \/ __ \/_ __/ __ \/ __ \/ |/ / / | / ___/_
> __/__ \/__ / |/ / __ \
> | | / / __ / / / / / / / / / / /_/ / / / / /|_/ /_____/ /| | \__ \ / / __/ / /
> /| / / / /
> | |/ / /_/ / /_/ / /_/ / / / / _, _/ /_/ / / / /_____/ ___ |___/ // / / __/ /
> // / /_/ /
> |___/_____/\____/\____/ /_/ /_/ |_|\____/_/ /_/ /_/
> |_/____//_/ /____/ /_//_/|_\____/
>
> Version:1.0.0
>
> I don't see any 1.0.0 tag under https://github.com/google/vbootrom ?
>
> Other firmware images report :
>
> Jumping to BL31 (Trusted Firmware-A) at 0x430000000
>
> NOTICE: BL31: v2.10.3(release):lts-v2.10.3-dirty
> NOTICE: BL31: Built : 17:17:34, Apr 5 2024
> I/TC:
> I/TC: OP-TEE version: 4.1.0-dev (gcc version 13.2.0 (GCC)) #1 Fri Jan 19
> 17:14:14 UTC 2024 aarch64
> I/TC: WARNING: This OP-TEE configuration might be insecure!
> I/TC: WARNING: Please check
> https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
> I/TC: Primary CPU initializing
> I/TC: Primary CPU switching to normal world boot
>
> U-Boot 2023.10-v00.05.06 (Mar 26 2025 - 05:59:26 +0000)
>
>
> OpenFirmware:
>
> SLOF
> ****************************************************************
> ******
> QEMU Starting
> Build Date = Nov 6 2024 15:31:54
> FW Version = git-ee03aec2c106a699
>
> OpenBIOS:
>
> >>
> =============================================================
> >> OpenBIOS 1.1 [Sep 24 2024 19:56]
> >> Configuration device id QEMU version 1 machine id 1
>
> SeaBIOS:
>
> SeaBIOS (version rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org)
>
> Adding a commit id, tag, build date to identify the firmware image would be
> useful when issues are reported.
>
> See https://github.com/google/vbootrom/issues/6.
>
> > Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> > Reviewed-by: Nabih Estefan <nabihestefan@google.com>
> > Tested-by: Nabih Estefan <nabihestefan@google.com>
>
Thanks for review and suggestion.
I submitted a pull request to fix this issue, please see
https://github.com/google/vbootrom/pull/7
https://github.com/google/vbootrom/issues/6
If you agree this build info format, I will resend this patch after this pull request is merged.
Thanks-Jamin
> Other than that,
>
> Reviewed-by: Cédric Le Goater <clg@redhat.com>
>
> Thanks,
>
> C.
>
>
> > ---
> > MAINTAINERS | 1 +
> > pc-bios/README | 6 ++++++
> > pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15424 bytes
> > pc-bios/meson.build | 1 +
> > 4 files changed, 8 insertions(+)
> > create mode 100644 pc-bios/ast27x0_bootrom.bin
> >
> > diff --git a/MAINTAINERS b/MAINTAINERS index d54b5578f8..70ab0d0afa
> > 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -1163,6 +1163,7 @@ F: docs/system/arm/fby35.rst
> > F: tests/*/*aspeed*
> > F: tests/*/*ast2700*
> > F: hw/arm/fby35.c
> > +F: pc-bios/ast27x0_bootrom.bin
> >
> > NRF51
> > M: Joel Stanley <joel@jms.id.au>
> > diff --git a/pc-bios/README b/pc-bios/README index
> > f0f13e15f2..d009c37895 100644
> > --- a/pc-bios/README
> > +++ b/pc-bios/README
> > @@ -89,6 +89,12 @@
> > more features over time as needed. The source code is available at:
> > https://github.com/google/vbootrom
> >
> > +- ast27x0_bootrom.bin is a simplified, free (Apache 2.0) boot ROM for
> > + ASPEED AST27x0 BMC SOC. It currently implements the bare minimum
> to
> > + load, parse, initialize and run boot images stored in SPI flash,
> > +but may grow
> > + more features over time as needed. The source code is available at:
> > + https://github.com/google/vbootrom
> > +
> > - hppa-firmware.img (32-bit) and hppa-firmware64.img (64-bit) are
> firmware
> > files for the HP-PARISC (hppa) architecture.
> > They are built form the SeaBIOS-hppa sources, which is a fork of
> > SeaBIOS diff --git a/pc-bios/ast27x0_bootrom.bin
> > b/pc-bios/ast27x0_bootrom.bin new file mode 100644 index
> >
> 0000000000000000000000000000000000000000..d46403b023c00f989b6facb3
> 97d5
> > 7bea7e5c583a
> > GIT binary patch
> > literal 15424
> >
> zcmdU0eRNdSwcq#NNeBTckS_|X&P{+W9Ql+0!D6|YM5|(Jh-qb6e3<~D!5|?dR0
> ^~i
> >
> zD691~zO@(`2&G~IzOHAczAmewkF>Uo)LL8YTY#w4+B!+lVq^PMK$1$B_xqiD?|
> cM5
> >
> z`u=>QH}}ptd+)Qq_de$iev#Y}xUz7K#FdRp@Zo(FE>nW17UFK<J|Fi0?(=XD;yxGm
> >
> zDDJaykKsNOcjEqk`m~tFOYwNTK*0Y&DS4^TV?9)=Ntd1>%ge+XTqSb28Zegu)4s
> %b
> >
> z>2+KI@xJ^Xz85almiwjSl;4t*O9Dl$j~cT4SzK@6YL|@uh)C6%a_h)<M7np5mCy&
> k
> >
> zDaTxG%6z5-D^urh6A2e-vfL6GZ2!FRQajdm*A=XLTJb7kij1Y6&BgqyKK6Ha+__u
> M
> > zeaRH#rJ=1)cj}OH$dJ(aJGIV>U)4J=8WMTm(0tEjNI0s?;T(|@O^19T81h8;cfL^H
> >
> zc?tCzxse_t-xo9TB9lh|PLsn}@r1nQbLMg)D>MmHhv)As1zmsV(AH-kJBl@<M)k|
> *
> > zvBulryKjlr-7;1hw?i)?R<~qD@4kTX7E>CZ!I+k1U29^j6qgy4$low$ubl%`V!ev%
> >
> zLVm3CCdO@fx;rKC-BW>mhu%w->C!5rbFkji`N4HEI7ac6wF~&65xRsm&?%fcBc
> $j(
> >
> zJ1;Z~^F<OpRV5Xn^M)RY;j#<~Te{3&nF$`b?umJ!9wR5>2VbyF7|wFy(*F4vD*${>
> >
> z<Z<Yv#}J>T4=hmdN9Knn0B#22VWr;+RZDJv;ZVG)R4PtRfxjr2hl@j>QoMnFbY3V
> 2
> >
> zy1OSHZ+i=}k!Bv&IGn#AG}|NL3!ohqhxXV-A;Qp(Jw`5Uk`uWLw(Egy-iMy^AS1^+
> >
> zM2a~#%fWxgq5CbYL7Q8y4QDKX9Ql#A;dhEJ@G=3kZvY&G$?XL!=hfW41)*NR^
> *yBl
> >
> z$6i|ppMF^w+M6li0l)@Dx_TR|?rM?7$CaHSU+zM+#$UiguH+m)bgZZ~K{K#0^n
> 1`G
> >
> zPM_^(_F88ahJNFW$F^Ee9@VA)!l;@jyY$@F@QywE(_rgLLQgB$V0Vu(0XE5v+y
> gx*
> >
> zo(D=oaMtiZL$G^-k@ut6K)lMe+vgp-1+}Ezu(*vE_+02e+-K;d06MvNCEmuINWD
> &k
> > z+;<l&2u;F$tFbWjYxoTG>Qiu_cWEfz#dQ=9C5uBK8fI+7Fvj?}w5kj~S`Htz28Xu(
> >
> zCJ`&PUGtP(dtkdBW1_NaJA5UkNilWbYfOSoY?u=0ebCW+3_A2e@3(7=FX(;qBBl
> 3D
> >
> zSlfk<IDEbWTexF`kPAK*>F~gI!|c5VxYU0;^uHGNjKKzBU0P%C2^CAvFA8l2Z(R4%
> >
> z`0#$(af*?1JYiqh@ynobm3?8eJJdLB_Gx9acieb@&2GWmi{MeMab{77>-`JnJ2a
> WU
> >
> z5BZrqc@5hqat->#zWu$hePZ2ni$bVd;nzSz>EekSlrDaO@6}U{mo&-RRhVlH%48
> Wo
> >
> zr9wh0k&k-gvlp1i)y!EgjF~Hg+Gwl0NIreNK3Z@OR>J4Id&dRG7mA+k^+<Q2N3Pc
> }
> >
> z*E2R)sbvXrMzE4J>>TyWPB%B@V$JOnt-*ufKL_i!_@uE0I_=Pcm8L9tnRD<hAN}
> MV
> >
> zLyHV;J*NCZbnnX?bH68PcO_^u$HojJq;mQc4f@K2uj$C+!OE{_!BfnMvCqk1EHg
> Mh
> >
> zwpF_0E#S8`tFv$S$j&!@klp#0Y8edZ)*^v^>7R%p#RvU#XzL3J|MZ5Xu{2+*0-4q#
> >
> zZ&VrshEz3WN(g>iNqp}UTH`^FGmqz}Gw;Ft6bD9z;>F$<Fqa`!4`7}&J92Q}r8Rbp
> > zfj&IJ%AX+rkX|@j#{C%2a}ak;+4eeR(3j#hD$6wJamiF^oPIf8<riZTc^QO_2|E?*
> >
> z8MylJo$C+b?u}`U8gg-Lo;BFB)#`rMBgNY@1{P|IB~<v%Hy`Sm2YaLL$5&~KmWa
> G-
> >
> zWm#Lak%*_vVC940V+{Bp9`O%q>39Xe(~u`FWy;ACkA!0PZY~KxpJ81aMZO-x`b
> DOU
> >
> z>xKTAA7@+v9}D4w(ZbeuG1m<G%wK$7^+9~TqCX>zukKedHw85MK%<4R{*NS
> $Q^V$l
> > z(>F(34;5Z6e=%4WC<)X}D~TBy5z3h1k&~VY)|S!nc$I9kc6;<-Wd`KkF0!;*wEFv4
> > zn*l>v?vI+Sv3#o}I2bR!1^iN{9^{&xmlucn;CG@2PxWIg2LG+CD=hgRJiGd;F`%y$
> >
> zd5|l+|H~NoX-7t|az1DwHy)?{jI5XUUjqKhVEzyMQ5jcMH@}2=sgOD~j7arVdG{Q
> 2
> > zcj;T!?v8u!FQLAt0Y9E8bGJi=A7af^J+FgrxO%29FbA`T2xrQ;0^ofg&y08Yei!pX
> >
> z(FAMo5c)p!D1+t%8Fb^>gb!VDV40_<)U7N*e>mS;S5(57G;sHW$A19EjeYo^-EW
> PO
> >
> zLB?o{==}lc)2v%nVnLq)-Drj1QtnD5jxcM>`BAJ1cI=aG;NB@Et3a22K|TxN^SW4z
> >
> zXqzBt?Enw3W1~p>e!>f22U1|EJIHVf{p_L^;K<k=`^o3G<MH`~Cr$J(ks{2m1T9nK
> >
> zILE1P_N<(zyawc*imOFD^~_tOu?jQ-;#um_p}f^%^v6(xG9cqrT<C=rd@bP5g1(vu
> > zzF@8pmx!kD`{0k1k@{x8&2{_0*PHN#H`tfKChW;;z$f^fe-^&L_2?7-j((Xu)Of5#
> > z)YW#K{ZD433-%4f<A({mop`D*%8W3lYzG`|-Y&A}tjf2~JVsha(YLzvIL=<*UF#B_
> >
> zZQCAIxtBc+zxOHpqn&5LFZ2D6K)(mHV4qgT_0U$*_9)uq)1~3UzXAL=A>#qS5{Gi
> V
> >
> z4m}2-r-RVZGs@4Vl#m8#kw?<e>TKV*=;&()<bhpIBHzJYt4pTgsuoW_Xjbinye+V
> W
> >
> zg%}A)hSE88?fSGK+Hv|PXwbGN>EHC}L(m`BqAfkndbA;9jlND^U3>AFbEQ~sI8JI
> @
> >
> z(1%rBbm9VYi2tj7-}M3X-Cerqt;C~^R_9vqE8G9ca}9GB*5;bTN%%Z+9b&ZDD_Vjl
> >
> zfgZ>U;#=)Oh~wIWc;pMaE5=Y;b(Zy>hI+>S{?R|RS3au!Y$Nvw@Y6Q081*&Km4*
> HR
> > zdzCiy0*#%J+X@JK^fqs~G~SANQwxqCjk-}*6s#<}^23e9Ll018?UK;zfD59pi{0<N
> >
> z9x+@Wli+xBS8!sgjV(Pmp86HgA>UEJxbe+3M}n3&3-Qmph5eN$cuF#G1-Gkw5
> Hy0P
> >
> zXk)=R>A12A_@=DC1P|_d%-z(V7jpMxNtFxh>g6DGa1c893FU+S(eEhv{}bO4t3I
> WJ
> >
> z5w;Fc@01Rv<9iEa>&ry{2;IdnPQSOH<90k#x9yhM|2+8bKuxtQ2_Yx9Q6D=@YfB
> c!
> >
> zTOgNZO6VN)`%uc<Z!t%meH!{@eMT(TlMi#3wWSO`K^=bw<M4s&j-h5Of$qPJy
> ER8b
> > z!C~;fLSJA7CA7tX_v1U^Nnhr)Uu6^ejcXIym^N|s#k{5b2t2O=J;>`rp1baih3ykH
> >
> z$oK~0IYad8P-m(F(8E1|ISSs{V+;J4eMX={LU&=DHhl}@MSw42>_Vnx7_SEWW00
> i~
> >
> zHG8TxwH0}|)wQD=2j`$~m#1FHL7sF?y8i<H-on0r2jU-ncAKe77vrH6a%h<U>^K>
> x
> >
> z1v)CTvFD|ogNT9ZYozf3=vy;8DmfPAvt>UAbgA;8FXQ?#Binb>%}+sRUf~_AWS;6V
> >
> zGJQo@H)f28JSY07r?~!=IM-ifqMjU+kxP4wkv`5pjyVf^spm$^xaXQbGd`2NJ2W^?
> >
> z{vRd&<#?9?{uxKBz;lgcURN~7+EVucYCrV&S@cXEz<C!-V;1b%GFcjbi@xAjVk~We
> > zuLtn_**P+<Ct*XoZ}0I+_d)Ev1JqqgP40#6sy)_wrLaeDlZ4Q7sQ7;d_K10{Zpvxv
> > z{r^U1H|dPVdB}&*`J3ZYaq#pu><YdXz6AIfzW39=^nr!_SeyLBjBBtL8s%#tJ>-TC
> >
> z=--Pz*@B%Iqon^J_Ub_mInX2Hg3xOW@ToFB4!v*3Jo<oT+cA$bj0L3sK4jzlIP}s|
> > zD053e3;WY|>&La<&3<nbbj7oqRQbsh`Tjlm1>ZfuUjjbRv)rA!CVXGzIv4lvj?5<g
> > z1^BjXV<JBX9p()Su|$1)(f|AnF+$mTs5{svm97T5>}71azewzxiV-{EV^fZ!7d*-S
> >
> zELU<{?Q=0b@^#F$=(+vOuRNcz_eH2tYA^PyL=Eo6-jwGrtY2R2rBSoz2k!lPN$^U
> %
> > zn0-HW!kl^t_OaJb_6bgJ;|l<fvILO}?#8nhb-E7gBJcWo3=e2$MhY+v{iql_>cp1?
> >
> zxftube_~BTUS&;F`ElLkJ8O{>S?igH(c`EbwG(HVH75#NEzw%rt!e#Yw(n2PDOf+H
> >
> zh9vdK^MmuydGAw#eRd9FH#ZWa9Ps5B>~elKYy|%+#Ck0{{1ADj>B-<kcfUKdHK
> |W8
> >
> z&IqH3QRrOdR2dz8Rpna5HSfc1NV{D?JY39?!TGQmawK)Rpo;#jOSiIJj@nyaWxGI
> ;
> >
> zgqVLi{AOzt&NWUW4+U`U_Xfs@%ieGJdTOndv(tBn;%&53EOTIC$Mtqi%aQz1)sj
> =+
> >
> ziJDg~IZJtVdeEtzZJ_PP7;|V1_P=|v|LmxgPzdA9_4K!n9TNICe1Ba>4MgrWB!4OU
> >
> z?v=ZCPJGHg59cpAIDZLN9>Ln!V|O(}R>9dCdHyIrEk*xPs`?MCi#2dovh=6W6W7|
> v
> >
> zwZYF6jJM<d7V=>cbO}8a?0~H<p!cR8dG@#xc3~gU>-gLbtjRq$eOw0&dhQR^*?
> IJB
> >
> zsb|iQf_K(?@Bx3xi&TLJ#B>C?3bI&(JMbOy44NKmka;YCXZT+w<Bu|?`b@y#g*>
> pf
> >
> z(PlhbAKGg7>8v@d7oP*2C}epP@OG`rOw=mDI<=Tbf86yPa^m@qki(ThP}`>heg
> X6Z
> >
> zA5=1|hfG22b6uJ4W6a|Fi?G>KdQL0t+%#T7`M_f>dLFSsTlQcN9KNi2!LA(ir(xKW
> >
> z<KO4l$Jmr{)a=-XdlSNPPj36{&l7o$@#*HZ_YK3x^C0Z8edux8$h!$UoHq)5XRxP^
> >
> zFGVd_YISRp<12-KFt;`xYQNj@tCVx0Ung>)%Dbp7z4LfBY{x%)#7kJ$L~qe^ht>VM
> >
> zuGPN)|FX~N@*<}pn}t2_C7hEi#F-Gs=?7XC&e*^g^625Xt~FZlMbhk5=UTau#n35
> v
> > zekCF2@H}Ln<1-&zgp9XfonGjYd5>qF7ga9EP0IyIpLNdboPEg<_)zsq**ATEa`Z~P
> >
> zVEA6$)_XdQD<4DS#~(@KXUcYbkFf>*HHiG?zO&&u|3$+Sv28dpGGJsxPD0nzNf
> 0$T
> >
> zFGCLF-0xIAddObr)3!%`<Vom_e!zSoS?m+E(2p?2I?D6a=kTm-Rc&=c@Ac0pTTKN
> 1
> >
> zrz2|}TOGlB1KSU5{kiAZLtCFq_=3CMFTm3uVWS*Fx*1Em;j4eZ{VDk9nS||*b|!jd
> >
> z^l25~LG@@@8)p$+?5i!Dw=z~)dyYDF&yHPtuf7dBwDo?p^G(R7`fkv=F@@G@h
> gR?-
> >
> zX=O$-9Qqvz-af*wkoyrsuz}|L$p@^P`O3HGW6Hnm^V2l{O3G`~d;@jzyyIg#p(p0
> O
> >
> zDDqwa`QcLz-{+u%*z91p%#jfHV*z|eF6{n1=h44%Pf&=OP9NlXTWUTm1P=Rwt
> Mh>7
> > zV;-=5$cS8;B!idWTfLCS2fE||eiXT%`vLk0;<*Upu8&ZsG2~(Jav1Lwx?+gy4%m~n
> >
> zar5$}Nj$$w=7uO_dKEE1yWRpB!pMK^+17h8@E<^}&35GB-Y4Lf(BHv#;CczYo#6
> kI
> >
> z?Qq9GX$R~#6SYYfdBVT^Mzsg-qdo9Wl(JudU3*~@_)1p~`j#c=N2q%RZ`~Loto!~
> 8
> > zc5O4EGZ*d|$Ur@aSnyf9r#Ur*JfX%|kCJ_kZJSitG?k-i8}>eVs9$a@v94Z03^K-%
> >
> zs}~^O&g}qCsW~~7wrj6ngFn1Gt3O;6oXDQssTGy%Yxbno3WpEnlUk$)GE%lEdi5
> B4
> > zw=9`!VZ9fTlVR&hJMSfB5!A~7=&=tFoL3Aa^!#*64bspf3f~*;D%^Zy$j;BYZw1ah
> > zP4vd(`RsWK^&v;|y)WzEJn(>ZyLy(u4o;7+;k>-?o$8Y9=(9EK8J9ebeiC|5_#pCo
> > z>icI~&q+Ser@FP!XZt_iTf%>k8<{^BLSKzD=%=uOlk4o7r~EqkUORyI6NgYQy;y(K
> >
> zvH7in_Zh6?<hv5|P&ePrAG>EiY#2GFvj;42_bm|<dn<lFkK8dC@^kGLJ+FTUYTf&
> Q
> >
> z_aJw_jJ?BAJ-<JOJ#3WkR<KS0`^`go{&9Pq{78wjPL5h9*SAW~U&{RmX~z+Bq>KIY
> >
> zg8zm+_%6sjuN>Oy)F}8oYXWt`9P-V7FxGRB4_Fi28fl+J<IL2Foe#%d|1r4VOyH*b
> >
> zd%_<cPWl7=E};5C@zEDpuU&s&9Pw<^^>x%QH?~d@&K*zg6F!{RvX9~Q<pi(Y3
> ExfT
> > zOx>xwnr{Gol=_`PQ%2`IpvTyx|9D48<2v}yoeBT3-|4xv@`I+E(7Ptz`F3OPiFmK1
> >
> zeJ0`h2Ye`AFWuZH1rFV{<prLb)gu=hlYArL7u(@;$WeSBa&k(2O-T#<f@iVV!!Gk<
> >
> zukIDSz8`yFO(xYBo@k%A)zC(H@m$0H4DXNKoN_Dtqqo7r`&Wqs5ZCzqgYPtCUx
> A<g
> >
> zv>OxZ|B9IEI9A-cb%cxy<MN{q`7Y%A+3yyYwCDx(rI3+)k#+>{)!Q?%*L$UXBHj-#
> >
> zr94M}S6mVWJ+9aLDBnruM}7}~rJjC^@fN(V!HbEimhm$8nfK#WccRv_4{L(np2Y
> p?
> >
> z+NJyK9#-?Q{<^V?LZ@g3p!;IvMy&0`t)us0^@x24_fGLUMCBB-<I7ukc7XGUx!;41
> >
> zkniV`mw97%Ph>4(jq^%webe~u6PHL{J#+k5P#dDicN~u(X8QogTFJNzLq_H@?v*I
> Z
> > zpAxeClE1&HWPj4vB%$Zw=i9Lk`)ji!IFV-}GIl%88I$jRY#k(hnDN5;gxZL@Gq6yH
> > zz1>>G*x>oQi~j`H<(T_D8539U3*P7c+3@(-Qx1UsCFu8aj$TE@;slisSci_l|Gw(j
> >
> zF$elitwHwt;$-dbgHG)85qnQC8ns@S&!JQ5@*s3+?*|GZCkC+}#6H0G&)f*tDs|T
> 3
> >
> z`?}%v((UgN2g{a>mbufhmu4=z#^E~#e;^Im8t)8pBeNV@7++xT0c`(B%^B|6`27a
> *
> >
> zcV2xIal|pw;W^Gzp!IHom$aJV_$J@OBS$!W)wPf*7qt;J-4}-5TJ-$-dm%Gx=s4A%
> > z^S4zzJ1U6m0&D>90#*V}?SlXlrA}}rp-J9xoFy%5(zT^|*dNj_P0Z82)W6+xC2Lb^
> >
> z&Fe!=ReJ~Qhj6Ax{U5%7dg|<hRBcPGmlu}=yXj|nlGn<d#JY3{dN`=(9A|BN3_P*k
> >
> zHytxuIaddH_%4;_f~Vone@*Bo>1THSG$Ql|`q=lthe<x*2Wd4{{oWwyKjedX<COv
> Y
> >
> zZt0F-H(oZ6+oUJ?!nuAGcpOjLxcuSWwBm0w_|uWIyhdI>`%bSED1YN`L?}lw;BanS
> >
> zOy199@5z3X{J)mqKWX0!h9~04;G;h82LG_tVf0g7G3YXgT!6eY?2IsJk5rvfXWypI
> >
> z)S0*KPcHAvz>@|UdzMId&9TB(#7O_Y0=5|aLKM6)4)&t&!QNS&ZJot;^a;yYzms~
> m
> >
> zYpm*NRX?XAmSmUz#EqdD;5&+3&z^30562#sdzf31TbPq#1?>}grZ7D2oPGgynfq
> %!
> >
> zG8a6@RF1G?oUw9eO72MRL31Ol?d)CaAye>5d_L@;{BL;emgHwF9~W<0U%$T
> L{`H@i
> >
> zbqzJE<*U=0?lGq|-C%Cm*s!5?WAiu6^$pGDnubm5S7#?D*RKD1&APR#&2_cwz
> t&u5
> >
> zPM@~gT=|XW+NK$1?dA=&tD0+9o5g0sMziGFY%!}%e5%#QzNh{jKCb47;6B&@
> ?q3_V
> >
> z8YJzJ>}}>Y)0~a}Fm|o_yTbXaVA4iRbK7hJ^TWT}6k7Fc8xjOo%qHd81hWwpdFKm
> ;
> > zKIFgZl(B96qWHp{jIAI|g$4Eq$Y=2D5+ZpH&$g+g{#78=GfYKN!6+<;I&S7R{J{k0
> >
> z@IRl4L%DF{OtylsF~A8R?7#LbAhuO+vquyz{}7pXNTLwb7yFSD_<viqjgp=HmD-I>
> >
> zYa7<zFn89RS#z?pWm=QmOgAxY*SPuCDs%09HD9YWYnshDo2RYYY))@lyQTI9e
> %Wlh
> >
> z3%uh?4OhV{XEWEXH#gR-2fB?rGeM)dc7vj^ZZptlt0kI9#(9LluC8?*cGJp+hGyGs
> >
> z>uQ=XWzxybn$@c});2X2Iv$-m=8(>o)iupEX_y>H!>EO<4y6Q^3Liq=V7f73T4uwV
> >
> zHBGgS7E;z+yZ&oQsOAPo!dbIsnX<ZJeJvmr|Mw(AkXnIa9U4vbYoQ7V#Raparg@
> F5
> >
> zS?!3MD(Vb#P0hM>D{EHOn^<MjOe)0$_vu_GsHLjItbvfA<r2u2n>KE2*m#5KzkS
> |Z
> >
> zb9&XrO-&5;o7Zl<@BW&NwKGevO)@*ftgBhq3?XM_OZIJ>?%P0l!N5nOx}E}Wn
> ltzM
> > zdByV=EG$`6vvSqy+BLFn?fOldXKbhgL+ff~HquW`Q*D#LIh($5-^zw{P1V)1s^Pv3
> >
> zHO*^R0zg!9Lw?h?RElTwXS7M9y*Ta>nSkr|Q}Or-+@*A8=@{!k)*~azcV~t(_IUO
> h
> > zcV++iPcOav;^{G*!*5chobb5L0cSBbj|ykQfiaI<bIb10;Zb|C_l|7K+Bf3+nfo(-
> >
> z;L#&M|KlHCedSCV4PYsL!nnVNP0&;h;6om9_$F^-jO*}29`T!7nT$hN?BDJ6%mbc
> B
> >
> z4F7IDtbGv+xZL^ONBq!7-oaH4oC?FiiE0NXJW}A_ogdCC+mpLD=jOKY`^Mb?^m
> OKO
> >
> z0ggSnEPpi~pMhuhL*B|Uz7FFqzq~KU*fxwUCm{8wcq`kj-%ieKwGlT6xW`jya*RI`
> >
> ze->lYiHi@%9>drfjF}w3hhtA;?CdbO6Brx7ScQVJ^>h|v#W)D14&{qu#vafg(PmbF
> >
> zk1^t(=^u5|82QtmXOc%XBVqz<0t)tHz$qq9=}f;p_XQgVLnf}pfH?w~Dm*J075<kL
> > zVY&r*#F>no1I%K=;KQ+IjEzN;<JyvA4`9r~SgH;m##jZ$<`6Mehc`JY#4vH61>ADL
> > zDPEniGZ@>9u~Z$tjj;zYHX1PenEV4j*om<&J|}drDouu|fXT%sivGioiK_%-B^cv#
> > z60e;4DV>QSuDb#-#ei9?;Y+!zUmgBPpfbl0Ha+|fRm%SykK>(q3cczCJrl!^1LkqS
> >
> zl#pJTOYd&Skfoyta{@5Y*W>Y9@T~Y!es@zs9>So1lCz%xGr=R06^qA@q|ve0qH
> Rfs
> >
> zasDu1lx-9CxixLA0ARWRlO6}Q^N|j1i{FLGIlydo*P3%6^N|eyZco^_d5^wVBgNE2
> >
> zLERn!&J6rmqK-HTT~rKLt@4kvfUN^;s@(@L7Qk2{cPQUomf)RhOwJJ52bgtSgYq
> T$
> >
> zBA}aJ)Ec({_6%UN2#XK>as|d-NEw@fu?-lDVr&C}(rK3M(Ql)q3A)rx2jHa_eoULE
> > z!~3b5dxz<U>z)SA1>m^ylFm7dy^XOC(J|KDtKB(_jtQK}naCeFSg61=bnNB;Kr(UI
> >
> zwzB}U0x$_bN$N=P7Z^sj1f-gQ69djU(xprl2eKa->EE3d9^v1Uxi_P%&9l#-hSO89
> >
> zim4}n`ye(Qx4XE>^~(3?w<gp_UB3p{#{paJ!n*b03!v@fU={~PBjHEmAEHJ7NqGA
> F
> >
> zV!)pUd_s=EfzgkQ@_*m6-zeXm9Ui$SYww7%w#<DQOee#t9sO$?@VDUwcS08
> BgY*Gg
> > zzoqtrlKU~hJ`7l83+n8{V9RC-<v2|_0Gr6mX*$}gElq}#Oa;6LPJ0&c&3I1wSlMn*
> >
> zRZ>sPtup{O2OGes3wO2Mz5<L_Qe&0;tOni@;QcfF&{xBNe+}>txa%nXZ(=@B96
> 4P_
> >
> znHz${d7ixCa5)`E<q+kEtmvtHQSQsY*$JHGY3l%IX;SX#n45}2&#qM3su%LJ7rJSW
> >
> z=dOg$QAZVk9eXYwAM3_z64uYg$={|rfHWPEmj{4%4tVLgRP{1&YC9zm?g_wM{
> scJ2
> >
> z*ctMH1HcV<PTExI<EA}21x(}_6fNf&pj?Ch2(uixAID2M;1&aJIpB7>vZ{Ws%<cEe
> >
> z*zlFx9pA$SJF-8%HY^HIA3<j)=!9{2@B*GcA|H_9G@Y3MeHwVv@q<yytMF8O-)
> 7eU
> >
> z4AC!QfLRQfiZmFdR|cA!Ytwo}{=?Jdz<Jumx!TV^G(XYTD}Z|jxDUFx%6Ab<VPlV8
> >
> zi4_xSxA_YKz8D8T9WMMZe<^Fz?@19|#djBQI)D>Q!*P0Z=C+hIsNb`Ie+TeU7hcI
> z
> >
> z#(bMdx3>T-HQiEolSiY6!b`g&F5WQS*vbx%sS4m+22OgcLw+vc<XpzoX24CyA!4
> &j
> > TJDH<UkE#+fTtE*0xX=Fr0X;+;
> >
> > literal 0
> > HcmV?d00001
> >
> > diff --git a/pc-bios/meson.build b/pc-bios/meson.build index
> > 34d6616c32..83998f6071 100644
> > --- a/pc-bios/meson.build
> > +++ b/pc-bios/meson.build
> > @@ -84,6 +84,7 @@ blobs = [
> > 'npcm8xx_bootrom.bin',
> > 'vof.bin',
> > 'vof-nvram.bin',
> > + 'ast27x0_bootrom.bin',
> > ]
> >
> > dtc = find_program('dtc', required: false)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v6 2/6] pc-bios: Add AST27x0 vBootrom
2025-04-25 2:28 ` Jamin Lin
@ 2025-04-25 6:21 ` Cédric Le Goater
0 siblings, 0 replies; 14+ messages in thread
From: Cédric Le Goater @ 2025-04-25 6:21 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
On 4/25/25 04:28, Jamin Lin wrote:
> Hi Cedric, Nabih
>
>> Subject: Re: [PATCH v6 2/6] pc-bios: Add AST27x0 vBootrom
>>
>> On 4/24/25 09:51, 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
>>> Commit id: 82bed5ca62295228ea7bcdc721b63db178f686e8
>>
>> It would be good to report some build info when vbootrom starts.
>>
>> Today we have,
>>
>> _ ______ ____ ____ __________ ____ __ ___ ___
>> ______________ ______ ______
>> | | / / __ )/ __ \/ __ \/_ __/ __ \/ __ \/ |/ / / | / ___/_
>> __/__ \/__ / |/ / __ \
>> | | / / __ / / / / / / / / / / /_/ / / / / /|_/ /_____/ /| | \__ \ / / __/ / /
>> /| / / / /
>> | |/ / /_/ / /_/ / /_/ / / / / _, _/ /_/ / / / /_____/ ___ |___/ // / / __/ /
>> // / /_/ /
>> |___/_____/\____/\____/ /_/ /_/ |_|\____/_/ /_/ /_/
>> |_/____//_/ /____/ /_//_/|_\____/
>>
>> Version:1.0.0
>>
>> I don't see any 1.0.0 tag under https://github.com/google/vbootrom ?
>>
>> Other firmware images report :
>>
>> Jumping to BL31 (Trusted Firmware-A) at 0x430000000
>>
>> NOTICE: BL31: v2.10.3(release):lts-v2.10.3-dirty
>> NOTICE: BL31: Built : 17:17:34, Apr 5 2024
>> I/TC:
>> I/TC: OP-TEE version: 4.1.0-dev (gcc version 13.2.0 (GCC)) #1 Fri Jan 19
>> 17:14:14 UTC 2024 aarch64
>> I/TC: WARNING: This OP-TEE configuration might be insecure!
>> I/TC: WARNING: Please check
>> https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
>> I/TC: Primary CPU initializing
>> I/TC: Primary CPU switching to normal world boot
>>
>> U-Boot 2023.10-v00.05.06 (Mar 26 2025 - 05:59:26 +0000)
>>
>>
>> OpenFirmware:
>>
>> SLOF
>> ****************************************************************
>> ******
>> QEMU Starting
>> Build Date = Nov 6 2024 15:31:54
>> FW Version = git-ee03aec2c106a699
>>
>> OpenBIOS:
>>
>> >>
>> =============================================================
>> >> OpenBIOS 1.1 [Sep 24 2024 19:56]
>> >> Configuration device id QEMU version 1 machine id 1
>>
>> SeaBIOS:
>>
>> SeaBIOS (version rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org)
>>
>> Adding a commit id, tag, build date to identify the firmware image would be
>> useful when issues are reported.
>>
>> See https://github.com/google/vbootrom/issues/6.
>>
>>> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
>>> Reviewed-by: Nabih Estefan <nabihestefan@google.com>
>>> Tested-by: Nabih Estefan <nabihestefan@google.com>
>>
> Thanks for review and suggestion.
>
> I submitted a pull request to fix this issue, please see
> https://github.com/google/vbootrom/pull/7
> https://github.com/google/vbootrom/issues/6
Approved.
> If you agree this build info format, I will resend this patch after this pull request is merged.
Yes. Just resend this patch, I will insert it in the v6 series.
Thanks,
C.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v6 3/6] hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
2025-04-24 7:51 [PATCH v6 0/6] Support vbootrom for AST2700 Jamin Lin via
2025-04-24 7:51 ` [PATCH v6 1/6] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region Jamin Lin via
2025-04-24 7:51 ` [PATCH v6 2/6] pc-bios: Add AST27x0 vBootrom Jamin Lin via
@ 2025-04-24 7:51 ` Jamin Lin via
2025-04-24 8:59 ` Cédric Le Goater
2025-04-24 7:51 ` [PATCH v6 4/6] tests/functional/aspeed: Add to test vbootrom for AST2700 Jamin Lin via
` (3 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Jamin Lin via @ 2025-04-24 7:51 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.
Introduce a new "vbootrom" field in the AspeedMachineClass to indicate whether
a machine supports the virtual boot ROM region.
Set this field to true by default for the AST2700-A0 and AST2700-A1 EVB
machines.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Nabih Estefan <nabihestefan@google.com>
Tested-by: Nabih Estefan <nabihestefan@google.com>
---
include/hw/arm/aspeed.h | 1 +
hw/arm/aspeed.c | 36 ++++++++++++++++++++++++++++++++++++
2 files changed, 37 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..32846bd088 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,33 @@ static void aspeed_install_boot_rom(AspeedMachineState *bmc, BlockBackend *blk,
rom_size, &error_abort);
}
+#define VBOOTROM_FILE_NAME "ast27x0_bootrom.bin"
+
+/*
+ * This function locates the vbootrom image file specified via the command line
+ * using the -bios option. It loads the specified image into the vbootrom
+ * memory region and handles errors if the file cannot be found or loaded.
+ */
+static void aspeed_load_vbootrom(AspeedMachineState *bmc, const char *bios_name,
+ Error **errp)
+{
+ g_autofree char *filename = NULL;
+ AspeedSoCState *soc = bmc->soc;
+ int ret;
+
+ filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
+ if (!filename) {
+ error_setg(errp, "Could not find vbootrom image '%s'", bios_name);
+ return;
+ }
+
+ ret = load_image_mr(filename, &soc->vbootrom);
+ if (ret < 0) {
+ error_setg(errp, "Failed to load vbootrom image '%s'", bios_name);
+ return;
+ }
+}
+
void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype,
unsigned int count, int unit0)
{
@@ -380,6 +408,7 @@ static void aspeed_machine_init(MachineState *machine)
AspeedMachineClass *amc = ASPEED_MACHINE_GET_CLASS(machine);
AspeedSoCClass *sc;
int i;
+ const char *bios_name = NULL;
DriveInfo *emmc0 = NULL;
bool boot_emmc;
@@ -482,6 +511,11 @@ static void aspeed_machine_init(MachineState *machine)
}
}
+ if (amc->vbootrom) {
+ bios_name = machine->firmware ?: VBOOTROM_FILE_NAME;
+ aspeed_load_vbootrom(bmc, bios_name, &error_abort);
+ }
+
arm_load_kernel(ARM_CPU(first_cpu), machine, &aspeed_board_binfo);
}
@@ -1689,6 +1723,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 +1744,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] 14+ messages in thread
* Re: [PATCH v6 3/6] hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
2025-04-24 7:51 ` [PATCH v6 3/6] hw/arm/aspeed: Add support for loading vbootrom image via "-bios" Jamin Lin via
@ 2025-04-24 8:59 ` Cédric Le Goater
0 siblings, 0 replies; 14+ messages in thread
From: Cédric Le Goater @ 2025-04-24 8:59 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/24/25 09:51, 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.
>
> Introduce a new "vbootrom" field in the AspeedMachineClass to indicate whether
> a machine supports the virtual boot ROM region.
>
> Set this field to true by default for the AST2700-A0 and AST2700-A1 EVB
> machines.
>
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> Reviewed-by: Nabih Estefan <nabihestefan@google.com>
> Tested-by: Nabih Estefan <nabihestefan@google.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> include/hw/arm/aspeed.h | 1 +
> hw/arm/aspeed.c | 36 ++++++++++++++++++++++++++++++++++++
> 2 files changed, 37 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..32846bd088 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,33 @@ static void aspeed_install_boot_rom(AspeedMachineState *bmc, BlockBackend *blk,
> rom_size, &error_abort);
> }
>
> +#define VBOOTROM_FILE_NAME "ast27x0_bootrom.bin"
> +
> +/*
> + * This function locates the vbootrom image file specified via the command line
> + * using the -bios option. It loads the specified image into the vbootrom
> + * memory region and handles errors if the file cannot be found or loaded.
> + */
> +static void aspeed_load_vbootrom(AspeedMachineState *bmc, const char *bios_name,
> + Error **errp)
> +{
> + g_autofree char *filename = NULL;
> + AspeedSoCState *soc = bmc->soc;
> + int ret;
> +
> + filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
> + if (!filename) {
> + error_setg(errp, "Could not find vbootrom image '%s'", bios_name);
> + return;
> + }
> +
> + ret = load_image_mr(filename, &soc->vbootrom);
> + if (ret < 0) {
> + error_setg(errp, "Failed to load vbootrom image '%s'", bios_name);
> + return;
> + }
> +}
> +
> void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype,
> unsigned int count, int unit0)
> {
> @@ -380,6 +408,7 @@ static void aspeed_machine_init(MachineState *machine)
> AspeedMachineClass *amc = ASPEED_MACHINE_GET_CLASS(machine);
> AspeedSoCClass *sc;
> int i;
> + const char *bios_name = NULL;
> DriveInfo *emmc0 = NULL;
> bool boot_emmc;
>
> @@ -482,6 +511,11 @@ static void aspeed_machine_init(MachineState *machine)
> }
> }
>
> + if (amc->vbootrom) {
> + bios_name = machine->firmware ?: VBOOTROM_FILE_NAME;
> + aspeed_load_vbootrom(bmc, bios_name, &error_abort);
> + }
> +
> arm_load_kernel(ARM_CPU(first_cpu), machine, &aspeed_board_binfo);
> }
>
> @@ -1689,6 +1723,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 +1744,7 @@ static void aspeed_machine_ast2700a1_evb_class_init(ObjectClass *oc, void *data)
> amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON | ASPEED_MAC2_ON;
> amc->uart_default = ASPEED_DEV_UART12;
> amc->i2c_init = ast2700_evb_i2c_init;
> + amc->vbootrom = true;
> mc->auto_create_sdcard = true;
> mc->default_ram_size = 1 * GiB;
> aspeed_machine_class_init_cpus_defaults(mc);
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v6 4/6] tests/functional/aspeed: Add to test vbootrom for AST2700
2025-04-24 7:51 [PATCH v6 0/6] Support vbootrom for AST2700 Jamin Lin via
` (2 preceding siblings ...)
2025-04-24 7:51 ` [PATCH v6 3/6] hw/arm/aspeed: Add support for loading vbootrom image via "-bios" Jamin Lin via
@ 2025-04-24 7:51 ` Jamin Lin via
2025-04-24 7:51 ` [PATCH v6 5/6] docs/system/arm/aspeed: move AST2700 content to new section Jamin Lin via
` (2 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Jamin Lin via @ 2025-04-24 7:51 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan, Cédric Le Goater
Add the AST2700 functional test to boot using the vbootrom image
instead of manually loading boot components with -device loader.
The boot ROM binary is now passed via the
-bios option, using the image located in pc-bios/ast27x0_bootrom.bin.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
---
tests/functional/test_aarch64_aspeed.py | 26 +++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/tests/functional/test_aarch64_aspeed.py b/tests/functional/test_aarch64_aspeed.py
index 2f04655b60..34ddfa852c 100755
--- a/tests/functional/test_aarch64_aspeed.py
+++ b/tests/functional/test_aarch64_aspeed.py
@@ -25,6 +25,18 @@ def do_test_aarch64_aspeed_sdk_start(self, image):
self.vm.launch()
+ def verify_vbootrom_firmware_flow(self):
+ wait_for_console_pattern(self, 'Found valid FIT image')
+ wait_for_console_pattern(self, '[uboot] loading')
+ wait_for_console_pattern(self, 'done')
+ wait_for_console_pattern(self, '[fdt] loading')
+ wait_for_console_pattern(self, 'done')
+ wait_for_console_pattern(self, '[tee] loading')
+ wait_for_console_pattern(self, 'done')
+ wait_for_console_pattern(self, '[atf] loading')
+ wait_for_console_pattern(self, 'done')
+ wait_for_console_pattern(self, 'Jumping to BL31 (Trusted Firmware-A)')
+
def verify_openbmc_boot_and_login(self, name):
wait_for_console_pattern(self, 'U-Boot 2023.10')
wait_for_console_pattern(self, '## Loading kernel from FIT Image')
@@ -94,6 +106,11 @@ def start_ast2700_test(self, name):
self.do_test_aarch64_aspeed_sdk_start(
self.scratch_file(name, 'image-bmc'))
+ def start_ast2700_test_vbootrom(self, name):
+ self.vm.add_args('-bios', 'ast27x0_bootrom.bin')
+ self.do_test_aarch64_aspeed_sdk_start(
+ self.scratch_file(name, 'image-bmc'))
+
def test_aarch64_ast2700_evb_sdk_v09_06(self):
self.set_machine('ast2700-evb')
@@ -110,5 +127,14 @@ def test_aarch64_ast2700a1_evb_sdk_v09_06(self):
self.verify_openbmc_boot_and_login('ast2700-default')
self.do_ast2700_i2c_test()
+ def test_aarch64_ast2700a1_evb_sdk_vbootrom_v09_06(self):
+ self.set_machine('ast2700a1-evb')
+
+ self.archive_extract(self.ASSET_SDK_V906_AST2700A1)
+ self.start_ast2700_test_vbootrom('ast2700-default')
+ self.verify_vbootrom_firmware_flow()
+ self.verify_openbmc_boot_and_login('ast2700-default')
+ self.do_ast2700_i2c_test()
+
if __name__ == '__main__':
QemuSystemTest.main()
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v6 5/6] docs/system/arm/aspeed: move AST2700 content to new section
2025-04-24 7:51 [PATCH v6 0/6] Support vbootrom for AST2700 Jamin Lin via
` (3 preceding siblings ...)
2025-04-24 7:51 ` [PATCH v6 4/6] tests/functional/aspeed: Add to test vbootrom for AST2700 Jamin Lin via
@ 2025-04-24 7:51 ` Jamin Lin via
2025-04-24 9:00 ` Cédric Le Goater
2025-04-24 7:51 ` [PATCH v6 6/6] docs/system/arm/aspeed: Support vbootrom for AST2700 Jamin Lin via
2025-04-29 7:21 ` [PATCH v6 0/6] " Cédric Le Goater
6 siblings, 1 reply; 14+ messages in thread
From: Jamin Lin via @ 2025-04-24 7:51 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
Moved AST2700-related content from the general Aspeed board list into a
dedicated section for Aspeed 2700 family boards. Improves clarity and
readability.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
---
docs/system/arm/aspeed.rst | 70 ++++++++++++++++++++++++++++++++++----
1 file changed, 63 insertions(+), 7 deletions(-)
diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst
index 97fd6a0e7f..08a33b7008 100644
--- a/docs/system/arm/aspeed.rst
+++ b/docs/system/arm/aspeed.rst
@@ -1,12 +1,11 @@
-Aspeed family boards (``ast2500-evb``, ``ast2600-evb``, ``ast2700-evb``, ``bletchley-bmc``, ``fuji-bmc``, ``fby35-bmc``, ``fp5280g2-bmc``, ``g220a-bmc``, ``palmetto-bmc``, ``qcom-dc-scm-v1-bmc``, ``qcom-firework-bmc``, ``quanta-q71l-bmc``, ``rainier-bmc``, ``romulus-bmc``, ``sonorapass-bmc``, ``supermicrox11-bmc``, ``supermicrox11spi-bmc``, ``tiogapass-bmc``, ``witherspoon-bmc``, ``yosemitev2-bmc``)
+Aspeed family boards (``ast2500-evb``, ``ast2600-evb``, ``bletchley-bmc``, ``fuji-bmc``, ``fby35-bmc``, ``fp5280g2-bmc``, ``g220a-bmc``, ``palmetto-bmc``, ``qcom-dc-scm-v1-bmc``, ``qcom-firework-bmc``, ``quanta-q71l-bmc``, ``rainier-bmc``, ``romulus-bmc``, ``sonorapass-bmc``, ``supermicrox11-bmc``, ``supermicrox11spi-bmc``, ``tiogapass-bmc``, ``witherspoon-bmc``, ``yosemitev2-bmc``)
==================================================================================================================================================================================================================================================================================================================================================================================================================
The QEMU Aspeed machines model BMCs of various OpenPOWER systems and
Aspeed evaluation boards. They are based on different releases of the
Aspeed SoC : the AST2400 integrating an ARM926EJ-S CPU (400MHz), the
AST2500 with an ARM1176JZS CPU (800MHz), the AST2600
-with dual cores ARM Cortex-A7 CPUs (1.2GHz) and more recently the AST2700
-with quad cores ARM Cortex-A35 64 bits CPUs (1.6GHz)
+with dual cores ARM Cortex-A7 CPUs (1.2GHz).
The SoC comes with RAM, Gigabit ethernet, USB, SD/MMC, USB, SPI, I2C,
etc.
@@ -39,10 +38,6 @@ AST2600 SoC based machines :
- ``qcom-dc-scm-v1-bmc`` Qualcomm DC-SCM V1 BMC
- ``qcom-firework-bmc`` Qualcomm Firework BMC
-AST2700 SoC based machines :
-
-- ``ast2700-evb`` Aspeed AST2700 Evaluation board (Cortex-A35)
-
Supported devices
-----------------
@@ -247,6 +242,67 @@ under Linux), use :
-M ast2500-evb,bmc-console=uart3
+Aspeed 2700 family boards (``ast2700-evb``)
+==================================================================
+
+The QEMU Aspeed machines model BMCs of Aspeed evaluation boards.
+They are based on different releases of the Aspeed SoC :
+the AST2700 with quad cores ARM Cortex-A35 64 bits CPUs (1.6GHz).
+
+The SoC comes with RAM, Gigabit ethernet, USB, SD/MMC, USB, SPI, I2C,
+etc.
+
+AST2700 SoC based machines :
+
+- ``ast2700-evb`` Aspeed AST2700 Evaluation board (Cortex-A35)
+
+Supported devices
+-----------------
+ * Interrupt Controller
+ * Timer Controller
+ * RTC Controller
+ * I2C Controller
+ * System Control Unit (SCU)
+ * SRAM mapping
+ * X-DMA Controller (basic interface)
+ * Static Memory Controller (SMC or FMC) - Only SPI Flash support
+ * SPI Memory Controller
+ * USB 2.0 Controller
+ * SD/MMC storage controllers
+ * SDRAM controller (dummy interface for basic settings and training)
+ * Watchdog Controller
+ * GPIO Controller (Master only)
+ * UART
+ * Ethernet controllers
+ * Front LEDs (PCA9552 on I2C bus)
+ * LPC Peripheral Controller (a subset of subdevices are supported)
+ * Hash/Crypto Engine (HACE) - Hash support only. TODO: Crypto
+ * ADC
+ * eMMC Boot Controller (dummy)
+ * PECI Controller (minimal)
+ * I3C Controller
+ * Internal Bridge Controller (SLI dummy)
+
+Missing devices
+---------------
+ * Coprocessor support
+ * PWM and Fan Controller
+ * Slave GPIO Controller
+ * Super I/O Controller
+ * PCI-Express 1 Controller
+ * Graphic Display Controller
+ * MCTP Controller
+ * Mailbox Controller
+ * Virtual UART
+ * eSPI Controller
+
+Boot options
+------------
+
+Images can be downloaded from the ASPEED Forked OpenBMC GitHub release repository :
+
+ https://github.com/AspeedTech-BMC/openbmc/releases
+
Booting the ast2700-evb machine
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v6 5/6] docs/system/arm/aspeed: move AST2700 content to new section
2025-04-24 7:51 ` [PATCH v6 5/6] docs/system/arm/aspeed: move AST2700 content to new section Jamin Lin via
@ 2025-04-24 9:00 ` Cédric Le Goater
0 siblings, 0 replies; 14+ messages in thread
From: Cédric Le Goater @ 2025-04-24 9:00 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/24/25 09:51, Jamin Lin wrote:
> Moved AST2700-related content from the general Aspeed board list into a
> dedicated section for Aspeed 2700 family boards. Improves clarity and
> readability.
>
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> docs/system/arm/aspeed.rst | 70 ++++++++++++++++++++++++++++++++++----
> 1 file changed, 63 insertions(+), 7 deletions(-)
>
> diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst
> index 97fd6a0e7f..08a33b7008 100644
> --- a/docs/system/arm/aspeed.rst
> +++ b/docs/system/arm/aspeed.rst
> @@ -1,12 +1,11 @@
> -Aspeed family boards (``ast2500-evb``, ``ast2600-evb``, ``ast2700-evb``, ``bletchley-bmc``, ``fuji-bmc``, ``fby35-bmc``, ``fp5280g2-bmc``, ``g220a-bmc``, ``palmetto-bmc``, ``qcom-dc-scm-v1-bmc``, ``qcom-firework-bmc``, ``quanta-q71l-bmc``, ``rainier-bmc``, ``romulus-bmc``, ``sonorapass-bmc``, ``supermicrox11-bmc``, ``supermicrox11spi-bmc``, ``tiogapass-bmc``, ``witherspoon-bmc``, ``yosemitev2-bmc``)
> +Aspeed family boards (``ast2500-evb``, ``ast2600-evb``, ``bletchley-bmc``, ``fuji-bmc``, ``fby35-bmc``, ``fp5280g2-bmc``, ``g220a-bmc``, ``palmetto-bmc``, ``qcom-dc-scm-v1-bmc``, ``qcom-firework-bmc``, ``quanta-q71l-bmc``, ``rainier-bmc``, ``romulus-bmc``, ``sonorapass-bmc``, ``supermicrox11-bmc``, ``supermicrox11spi-bmc``, ``tiogapass-bmc``, ``witherspoon-bmc``, ``yosemitev2-bmc``)
> ==================================================================================================================================================================================================================================================================================================================================================================================================================
>
> The QEMU Aspeed machines model BMCs of various OpenPOWER systems and
> Aspeed evaluation boards. They are based on different releases of the
> Aspeed SoC : the AST2400 integrating an ARM926EJ-S CPU (400MHz), the
> AST2500 with an ARM1176JZS CPU (800MHz), the AST2600
> -with dual cores ARM Cortex-A7 CPUs (1.2GHz) and more recently the AST2700
> -with quad cores ARM Cortex-A35 64 bits CPUs (1.6GHz)
> +with dual cores ARM Cortex-A7 CPUs (1.2GHz).
>
> The SoC comes with RAM, Gigabit ethernet, USB, SD/MMC, USB, SPI, I2C,
> etc.
> @@ -39,10 +38,6 @@ AST2600 SoC based machines :
> - ``qcom-dc-scm-v1-bmc`` Qualcomm DC-SCM V1 BMC
> - ``qcom-firework-bmc`` Qualcomm Firework BMC
>
> -AST2700 SoC based machines :
> -
> -- ``ast2700-evb`` Aspeed AST2700 Evaluation board (Cortex-A35)
> -
> Supported devices
> -----------------
>
> @@ -247,6 +242,67 @@ under Linux), use :
>
> -M ast2500-evb,bmc-console=uart3
>
> +Aspeed 2700 family boards (``ast2700-evb``)
> +==================================================================
> +
> +The QEMU Aspeed machines model BMCs of Aspeed evaluation boards.
> +They are based on different releases of the Aspeed SoC :
> +the AST2700 with quad cores ARM Cortex-A35 64 bits CPUs (1.6GHz).
> +
> +The SoC comes with RAM, Gigabit ethernet, USB, SD/MMC, USB, SPI, I2C,
> +etc.
> +
> +AST2700 SoC based machines :
> +
> +- ``ast2700-evb`` Aspeed AST2700 Evaluation board (Cortex-A35)
> +
> +Supported devices
> +-----------------
> + * Interrupt Controller
> + * Timer Controller
> + * RTC Controller
> + * I2C Controller
> + * System Control Unit (SCU)
> + * SRAM mapping
> + * X-DMA Controller (basic interface)
> + * Static Memory Controller (SMC or FMC) - Only SPI Flash support
> + * SPI Memory Controller
> + * USB 2.0 Controller
> + * SD/MMC storage controllers
> + * SDRAM controller (dummy interface for basic settings and training)
> + * Watchdog Controller
> + * GPIO Controller (Master only)
> + * UART
> + * Ethernet controllers
> + * Front LEDs (PCA9552 on I2C bus)
> + * LPC Peripheral Controller (a subset of subdevices are supported)
> + * Hash/Crypto Engine (HACE) - Hash support only. TODO: Crypto
> + * ADC
> + * eMMC Boot Controller (dummy)
> + * PECI Controller (minimal)
> + * I3C Controller
> + * Internal Bridge Controller (SLI dummy)
> +
> +Missing devices
> +---------------
> + * Coprocessor support
> + * PWM and Fan Controller
> + * Slave GPIO Controller
> + * Super I/O Controller
> + * PCI-Express 1 Controller
> + * Graphic Display Controller
> + * MCTP Controller
> + * Mailbox Controller
> + * Virtual UART
> + * eSPI Controller
> +
> +Boot options
> +------------
> +
> +Images can be downloaded from the ASPEED Forked OpenBMC GitHub release repository :
> +
> + https://github.com/AspeedTech-BMC/openbmc/releases
> +
> Booting the ast2700-evb machine
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v6 6/6] docs/system/arm/aspeed: Support vbootrom for AST2700
2025-04-24 7:51 [PATCH v6 0/6] Support vbootrom for AST2700 Jamin Lin via
` (4 preceding siblings ...)
2025-04-24 7:51 ` [PATCH v6 5/6] docs/system/arm/aspeed: move AST2700 content to new section Jamin Lin via
@ 2025-04-24 7:51 ` Jamin Lin via
2025-04-29 7:21 ` [PATCH v6 0/6] " Cédric Le Goater
6 siblings, 0 replies; 14+ messages in thread
From: Jamin Lin via @ 2025-04-24 7:51 UTC (permalink / raw)
To: Cédric Le Goater, Peter Maydell, Steven Lee, Troy Lee,
Andrew Jeffery, Joel Stanley, open list:All patches CC here,
open list:ASPEED BMCs
Cc: jamin_lin, troy_lee, nabihestefan, Cédric Le Goater
Using the vbootrom image support and the boot ROM binary is
now passed via the -bios option, using the image located in
pc-bios/ast27x0_bootrom.bin.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Nabih Estefan <nabihestefan@google.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
---
docs/system/arm/aspeed.rst | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst
index 08a33b7008..014545f444 100644
--- a/docs/system/arm/aspeed.rst
+++ b/docs/system/arm/aspeed.rst
@@ -306,7 +306,14 @@ Images can be downloaded from the ASPEED Forked OpenBMC GitHub release repositor
Booting the ast2700-evb machine
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Boot the AST2700 machine from the flash image, use an MTD drive :
+Boot the AST2700 machine from the flash image.
+
+There are two supported methods for booting the AST2700 machine with a flash image:
+
+Manual boot using ``-device loader``:
+
+It causes all 4 CPU cores to start execution from address ``0x430000000``, which
+corresponds to the BL31 image load address.
.. code-block:: bash
@@ -326,6 +333,26 @@ Boot the AST2700 machine from the flash image, use an MTD drive :
-drive file=${IMGDIR}/image-bmc,format=raw,if=mtd \
-nographic
+Boot using a virtual boot ROM (``-bios``):
+
+If users do not specify the ``-bios option``, QEMU will attempt to load the
+default vbootrom image ``ast27x0_bootrom.bin`` from either the current working
+directory or the ``pc-bios`` directory within the QEMU source tree.
+
+.. code-block:: bash
+
+ $ qemu-system-aarch64 -M ast2700-evb \
+ -drive file=image-bmc,format=raw,if=mtd \
+ -nographic
+
+The ``-bios`` option allows users to specify a custom path for the vbootrom
+image to be loaded during boot. This will load the vbootrom image from the
+specified path in the ${HOME} directory.
+
+.. code-block:: bash
+
+ -bios ${HOME}/ast27x0_bootrom.bin
+
Aspeed minibmc family boards (``ast1030-evb``)
==================================================================
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v6 0/6] Support vbootrom for AST2700
2025-04-24 7:51 [PATCH v6 0/6] Support vbootrom for AST2700 Jamin Lin via
` (5 preceding siblings ...)
2025-04-24 7:51 ` [PATCH v6 6/6] docs/system/arm/aspeed: Support vbootrom for AST2700 Jamin Lin via
@ 2025-04-29 7:21 ` Cédric Le Goater
6 siblings, 0 replies; 14+ messages in thread
From: Cédric Le Goater @ 2025-04-29 7:21 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/24/25 09:51, Jamin Lin wrote:
> v1:
> Add initial support for AST27x0
> The purpose of vbootrom here is to simulate the work of BootMCU SPL (riscv)
> in AST2700, because QEMU doesn't support heterogenous architecture yet.
>
> ast27x0_bootrom.bin is a simplified, free (Apache 2.0) boot ROM for
> ASPEED AST27x0 BMC SOC. It currently implements the bare minimum to
> load, parse, initialize and run boot images stored in SPI flash, but may grow
> more features over time as needed. The source code is available at:
> https://github.com/google/vbootrom
>
> v2:
> Add "Introduced ASPEED_DEV_VBOOTROM in the device enumeration" patch to fix
> build failed.
>
> v3:
> 1. Supports both vbootrom and device loader boot methods, with vbootrom used as
> the default.
> 2. Fix review and QTEST test failed issues.
>
> v4:
> Adjust the patch order.
>
> v5:
> fix review issue and remove unnecessary class attribure.
> doc: create a new section for AST2700.
>
> v6:
> fix review issue.
> Add google/vbootrom commit id for ast27x0
> split to patch to update documentataion for ast27x0
>
> Jamin Lin (6):
> hw/arm/aspeed_ast27x0 Introduce vbootrom memory region
> pc-bios: Add AST27x0 vBootrom
> hw/arm/aspeed: Add support for loading vbootrom image via "-bios"
> tests/functional/aspeed: Add to test vbootrom for AST2700
> docs/system/arm/aspeed: move AST2700 content to new section
> docs/system/arm/aspeed: Support vbootrom for AST2700
>
> MAINTAINERS | 1 +
> docs/system/arm/aspeed.rst | 99 ++++++++++++++++++++++--
> include/hw/arm/aspeed.h | 1 +
> include/hw/arm/aspeed_soc.h | 2 +
> hw/arm/aspeed.c | 36 +++++++++
> hw/arm/aspeed_ast27x0.c | 9 +++
> pc-bios/README | 6 ++
> pc-bios/ast27x0_bootrom.bin | Bin 0 -> 15424 bytes
> pc-bios/meson.build | 1 +
> tests/functional/test_aarch64_aspeed.py | 26 +++++++
> 10 files changed, 173 insertions(+), 8 deletions(-)
> create mode 100644 pc-bios/ast27x0_bootrom.bin
>
Applied to aspeed-next.
Thanks,
C.
^ permalink raw reply [flat|nested] 14+ messages in thread