From nobody Sat Nov 15 23:37:24 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1745481174; cv=none; d=zohomail.com; s=zohoarc; b=ZlRDItMIU4xYZh0OMupDgZvO43nY/y7/oGw6Hojf/WeMkYZBy8NbL8L2G6DjKVIkCFyLghrrAqas3wKJQGS1EZ8U8gBvRr3S6Iwmvgd/2J794C7meefr47pqPo0hs++9X7jvkLgCuKRvY4msKzYia8Har0UVyg/LbNft73qoWwQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745481174; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=Z+4JRriFrdTglSsvy5f+WfdZ44yaCDD3vBpc2cnKSEw=; b=kMDSw1tC8uMmnJddA2s1xIb5rkkIAKF6Faq1TewNnsG7TSacb1XCkph10clfolrUBqSZaUf6g6jGOYAq7yGWRyztMxQQqqCsqgr+Q3x1RJ7hsZotyVdV2eNly7Z7jKU5xzuF43DlDfgYZfvzbBi0uKJT054Ov/8MDr9JYSjDTfc= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745481174221408.8584429574337; Thu, 24 Apr 2025 00:52:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u7rNB-0001Jc-2c; Thu, 24 Apr 2025 03:51:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u7rNA-0001JQ-FD; Thu, 24 Apr 2025 03:51:52 -0400 Received: from mail.aspeedtech.com ([211.20.114.72] helo=TWMBX01.aspeed.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u7rN4-0006ez-Eo; Thu, 24 Apr 2025 03:51:52 -0400 Received: from TWMBX01.aspeed.com (192.168.0.62) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 24 Apr 2025 15:51:36 +0800 Received: from mail.aspeedtech.com (192.168.10.10) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Thu, 24 Apr 2025 15:51:36 +0800 To: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Peter Maydell , Steven Lee , Troy Lee , Andrew Jeffery , "Joel Stanley" , "open list:All patches CC here" , "open list:ASPEED BMCs" CC: , , Subject: [PATCH v6 1/6] hw/arm/aspeed_ast27x0 Introduce vbootrom memory region Date: Thu, 24 Apr 2025 15:51:29 +0800 Message-ID: <20250424075135.3715128-2-jamin_lin@aspeedtech.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250424075135.3715128-1-jamin_lin@aspeedtech.com> References: <20250424075135.3715128-1-jamin_lin@aspeedtech.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=211.20.114.72; envelope-from=jamin_lin@aspeedtech.com; helo=TWMBX01.aspeed.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_FAIL=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Jamin Lin From: Jamin Lin via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1745481174830019000 Content-Type: text/plain; charset="utf-8" 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_VBO= OTROM index. Signed-off-by: Jamin Lin Reviewed-by: Nabih Estefan Tested-by: Nabih Estefan Reviewed-by: C=C3=A9dric Le Goater --- 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); =20 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" =20 static const hwaddr aspeed_soc_ast2700_memmap[] =3D { + [ASPEED_DEV_VBOOTROM] =3D 0x00000000, [ASPEED_DEV_SRAM] =3D 0x10000000, [ASPEED_DEV_HACE] =3D 0x12070000, [ASPEED_DEV_EMMC] =3D 0x12090000, @@ -657,6 +658,14 @@ static void aspeed_soc_ast2700_realize(DeviceState *de= v, Error **errp) memory_region_add_subregion(s->memory, sc->memmap[ASPEED_DEV_SRAM], &s->sram); =20 + /* 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->vboot= rom); + /* SCU */ if (!sysbus_realize(SYS_BUS_DEVICE(&s->scu), errp)) { return; --=20 2.43.0 From nobody Sat Nov 15 23:37:24 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1745481147; cv=none; d=zohomail.com; s=zohoarc; b=U3DHdPynE+7uP2gK/VsO1NA8MES/0sH+LqT3ck3V3kHqoq8jFDtCn8dRYnUeBzrNx70I2m3z08g2C42GDQB2E1VTHdK/ZmKct4ExVbhRClp3pNr/tMx+l7RaMHgtK1cTvR+9RixEqv2Bl6HrF5rSDu2369icKH4XjwSowYjbA/A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745481147; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=2yJsQ0SuQ8IKRi4f1YoX4MNwHWK1kc3WrgZuN1vxnI8=; b=TiXAKx6TwBo/zIWxUOAbB2NYEdo//7T1lTzcfnUNm/ohjmbWgFz8P5kMlxQpbE4aExPSeZOCohlHpFmnPvA4O6CG7a7n3zIzaKUyji5McfgxH/Nk74m/Yg3uOgR0gCwx6noFBhVIx/mgOFVrvrA8M90NxEPJAXA+x2JUNSmjHVA= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745481147150625.2712394593739; Thu, 24 Apr 2025 00:52:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u7rNF-0001Ll-Cc; Thu, 24 Apr 2025 03:51:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u7rNE-0001LC-83; Thu, 24 Apr 2025 03:51:56 -0400 Received: from mail.aspeedtech.com ([211.20.114.72] helo=TWMBX01.aspeed.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u7rNB-0006ez-Hl; Thu, 24 Apr 2025 03:51:55 -0400 Received: from TWMBX01.aspeed.com (192.168.0.62) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 24 Apr 2025 15:51:36 +0800 Received: from mail.aspeedtech.com (192.168.10.10) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Thu, 24 Apr 2025 15:51:36 +0800 To: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Peter Maydell , Steven Lee , Troy Lee , Andrew Jeffery , "Joel Stanley" , "open list:All patches CC here" , "open list:ASPEED BMCs" CC: , , Subject: [PATCH v6 2/6] pc-bios: Add AST27x0 vBootrom Date: Thu, 24 Apr 2025 15:51:30 +0800 Message-ID: <20250424075135.3715128-3-jamin_lin@aspeedtech.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250424075135.3715128-1-jamin_lin@aspeedtech.com> References: <20250424075135.3715128-1-jamin_lin@aspeedtech.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=211.20.114.72; envelope-from=jamin_lin@aspeedtech.com; helo=TWMBX01.aspeed.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_FAIL=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Jamin Lin From: Jamin Lin via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1745481149335019100 Content-Type: text/plain; charset="utf-8" The boot ROM is a minimal implementation designed to load an AST27x0 boot i= mage. Its source code is available at: https://github.com/google/vbootrom Commit id: 82bed5ca62295228ea7bcdc721b63db178f686e8 Signed-off-by: Jamin Lin Reviewed-by: Nabih Estefan Tested-by: Nabih Estefan Reviewed-by: C=C3=A9dric Le Goater --- 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 =20 NRF51 M: Joel Stanley 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 =20 +- 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..d46403b023c00f989b6facb397d= 57bea7e5c583a GIT binary patch literal 15424 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 (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745481169573342.49962585499543; Thu, 24 Apr 2025 00:52:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u7rNI-0001My-Ti; Thu, 24 Apr 2025 03:52:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u7rNG-0001MR-T0; Thu, 24 Apr 2025 03:51:58 -0400 Received: from mail.aspeedtech.com ([211.20.114.72] helo=TWMBX01.aspeed.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u7rNF-0006ez-4e; Thu, 24 Apr 2025 03:51:58 -0400 Received: from TWMBX01.aspeed.com (192.168.0.62) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 24 Apr 2025 15:51:37 +0800 Received: from mail.aspeedtech.com (192.168.10.10) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Thu, 24 Apr 2025 15:51:37 +0800 To: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Peter Maydell , Steven Lee , Troy Lee , Andrew Jeffery , "Joel Stanley" , "open list:All patches CC here" , "open list:ASPEED BMCs" CC: , , Subject: [PATCH v6 3/6] hw/arm/aspeed: Add support for loading vbootrom image via "-bios" Date: Thu, 24 Apr 2025 15:51:31 +0800 Message-ID: <20250424075135.3715128-4-jamin_lin@aspeedtech.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250424075135.3715128-1-jamin_lin@aspeedtech.com> References: <20250424075135.3715128-1-jamin_lin@aspeedtech.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=211.20.114.72; envelope-from=jamin_lin@aspeedtech.com; helo=TWMBX01.aspeed.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_FAIL=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Jamin Lin From: Jamin Lin via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1745481171758019000 Content-Type: text/plain; charset="utf-8" Introduce "aspeed_load_vbootrom()" to support loading a virtual boot ROM im= age into the vbootrom memory region, using the "-bios" command-line option. Introduce a new "vbootrom" field in the AspeedMachineClass to indicate whet= her 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 Reviewed-by: Nabih Estefan Tested-by: Nabih Estefan Reviewed-by: C=C3=A9dric Le Goater --- 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; }; =20 =20 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); } =20 +#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 =3D NULL; + AspeedSoCState *soc =3D bmc->soc; + int ret; + + filename =3D qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); + if (!filename) { + error_setg(errp, "Could not find vbootrom image '%s'", bios_name); + return; + } + + ret =3D 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 =3D ASPEED_MACHINE_GET_CLASS(machine); AspeedSoCClass *sc; int i; + const char *bios_name =3D NULL; DriveInfo *emmc0 =3D NULL; bool boot_emmc; =20 @@ -482,6 +511,11 @@ static void aspeed_machine_init(MachineState *machine) } } =20 + if (amc->vbootrom) { + bios_name =3D machine->firmware ?: VBOOTROM_FILE_NAME; + aspeed_load_vbootrom(bmc, bios_name, &error_abort); + } + arm_load_kernel(ARM_CPU(first_cpu), machine, &aspeed_board_binfo); } =20 @@ -1689,6 +1723,7 @@ static void aspeed_machine_ast2700a0_evb_class_init(O= bjectClass *oc, void *data) amc->macs_mask =3D ASPEED_MAC0_ON | ASPEED_MAC1_ON | ASPEED_MAC2_ON; amc->uart_default =3D ASPEED_DEV_UART12; amc->i2c_init =3D ast2700_evb_i2c_init; + amc->vbootrom =3D true; mc->auto_create_sdcard =3D true; mc->default_ram_size =3D 1 * GiB; aspeed_machine_class_init_cpus_defaults(mc); @@ -1709,6 +1744,7 @@ static void aspeed_machine_ast2700a1_evb_class_init(O= bjectClass *oc, void *data) amc->macs_mask =3D ASPEED_MAC0_ON | ASPEED_MAC1_ON | ASPEED_MAC2_ON; amc->uart_default =3D ASPEED_DEV_UART12; amc->i2c_init =3D ast2700_evb_i2c_init; + amc->vbootrom =3D true; mc->auto_create_sdcard =3D true; mc->default_ram_size =3D 1 * GiB; aspeed_machine_class_init_cpus_defaults(mc); --=20 2.43.0 From nobody Sat Nov 15 23:37:24 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1745481138; cv=none; d=zohomail.com; s=zohoarc; b=fAte4yLZhrC8tIrr5jqJ3HEBCp/ROULcu5DHV7BBxv4252aPF/syCEr8YIHqp/wd1eSKPULvmyd+kqkwBQjETN6ORlriHYYuoOEYj0VW0sSsFhKWqnjTR+2rLpT071F9e96I6ZB0ZCCDTXzOLq6/G1noQRk7Epshlc6cBgr2nds= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745481138; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=I/ou6T8cCOzr4E4BA05KZmX7wWvWYpm4pa1S4uvZADo=; b=aetWni6AwZ5OppHb26HQi2cUXBZ7ZygRmdNQ9cDSxUIqinFHClIE521EHKoJmGh44WzxLxDOOdFCCcRzqVuQUdN8YZ09iXR0kpo7Y/3InzmIuDcNGAhv+t/F18CYHKqsSiAUJw/vd8xqY1u5rMaMQTpKBOsIMQQgsDTQEVm1B44= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745481138014361.3693132991548; Thu, 24 Apr 2025 00:52:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u7rNK-0001Nc-Bl; Thu, 24 Apr 2025 03:52:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u7rNJ-0001NJ-Cv; Thu, 24 Apr 2025 03:52:01 -0400 Received: from mail.aspeedtech.com ([211.20.114.72] helo=TWMBX01.aspeed.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u7rNH-0006ez-QK; Thu, 24 Apr 2025 03:52:01 -0400 Received: from TWMBX01.aspeed.com (192.168.0.62) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 24 Apr 2025 15:51:37 +0800 Received: from mail.aspeedtech.com (192.168.10.10) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Thu, 24 Apr 2025 15:51:37 +0800 To: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Peter Maydell , Steven Lee , Troy Lee , Andrew Jeffery , "Joel Stanley" , "open list:All patches CC here" , "open list:ASPEED BMCs" CC: , , , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PATCH v6 4/6] tests/functional/aspeed: Add to test vbootrom for AST2700 Date: Thu, 24 Apr 2025 15:51:32 +0800 Message-ID: <20250424075135.3715128-5-jamin_lin@aspeedtech.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250424075135.3715128-1-jamin_lin@aspeedtech.com> References: <20250424075135.3715128-1-jamin_lin@aspeedtech.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=211.20.114.72; envelope-from=jamin_lin@aspeedtech.com; helo=TWMBX01.aspeed.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_FAIL=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Jamin Lin From: Jamin Lin via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1745481141245019100 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 Reviewed-by: C=C3=A9dric Le Goater --- tests/functional/test_aarch64_aspeed.py | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/functional/test_aarch64_aspeed.py b/tests/functional/tes= t_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): =20 self.vm.launch() =20 + 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')) =20 + 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') =20 @@ -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() =20 + 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__ =3D=3D '__main__': QemuSystemTest.main() --=20 2.43.0 From nobody Sat Nov 15 23:37:24 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1745481182; cv=none; d=zohomail.com; s=zohoarc; b=CG8KkBLayUTITEtQMzI9iTph8WY++9lAUK6ynTy3lZE2A42IRyNwvwX8C2fNOWgzT5EfNteEnmxm0605+2IB+FEOHlPbIYtUkUm2WJ6LU0lFFb8LhwR7RyTyJns/MeEScq3Vi6/jDUljnio88+ckGjg3VwRP6jIPuVhipT+FItQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745481182; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=tXrVP6KY/sKsEcL5xHhErLgMEDr7pghz1glM5Vwkt98=; b=T9Ej76XPKsK+3rcgpHZFHmW5JVflR65Z8A9wrhTQ6/Fj9ADkJkdHdBy6wWyP/s7wAMNLVck6LQFOG4hK1sQi2HiLtQyIY26Ba36i//fJ6GER4AJloAVSBROmG/J3/D0Py7kMaKwJ5+87wMTSom9Ias0sOzPbpUX8Xgjhnez/WFI= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745481182772651.4209188703896; Thu, 24 Apr 2025 00:53:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u7rNO-0001QT-94; Thu, 24 Apr 2025 03:52:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u7rNM-0001Oq-5M; Thu, 24 Apr 2025 03:52:04 -0400 Received: from mail.aspeedtech.com ([211.20.114.72] helo=TWMBX01.aspeed.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u7rNK-0006ez-9n; Thu, 24 Apr 2025 03:52:03 -0400 Received: from TWMBX01.aspeed.com (192.168.0.62) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 24 Apr 2025 15:51:37 +0800 Received: from mail.aspeedtech.com (192.168.10.10) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Thu, 24 Apr 2025 15:51:37 +0800 To: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Peter Maydell , Steven Lee , Troy Lee , Andrew Jeffery , "Joel Stanley" , "open list:All patches CC here" , "open list:ASPEED BMCs" CC: , , Subject: [PATCH v6 5/6] docs/system/arm/aspeed: move AST2700 content to new section Date: Thu, 24 Apr 2025 15:51:33 +0800 Message-ID: <20250424075135.3715128-6-jamin_lin@aspeedtech.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250424075135.3715128-1-jamin_lin@aspeedtech.com> References: <20250424075135.3715128-1-jamin_lin@aspeedtech.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=211.20.114.72; envelope-from=jamin_lin@aspeedtech.com; helo=TWMBX01.aspeed.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_FAIL=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Jamin Lin From: Jamin Lin via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1745481186334019100 Content-Type: text/plain; charset="utf-8" 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 Reviewed-by: C=C3=A9dric Le Goater --- 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-bm= c``, ``palmetto-bmc``, ``qcom-dc-scm-v1-bmc``, ``qcom-firework-bmc``, ``qua= nta-q71l-bmc``, ``rainier-bmc``, ``romulus-bmc``, ``sonorapass-bmc``, ``sup= ermicrox11-bmc``, ``supermicrox11spi-bmc``, ``tiogapass-bmc``, ``witherspoo= n-bmc``, ``yosemitev2-bmc``) +Aspeed family boards (``ast2500-evb``, ``ast2600-evb``, ``bletchley-bmc``,= ``fuji-bmc``, ``fby35-bmc``, ``fp5280g2-bmc``, ``g220a-bmc``, ``palmetto-b= mc``, ``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``, ``yosemi= tev2-bmc``) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D =20 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). =20 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 =20 -AST2700 SoC based machines : - -- ``ast2700-evb`` Aspeed AST2700 Evaluation board (Cortex-A35) - Supported devices ----------------- =20 @@ -247,6 +242,67 @@ under Linux), use : =20 -M ast2500-evb,bmc-console=3Duart3 =20 +Aspeed 2700 family boards (``ast2700-evb``) +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +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 rep= ository : + + https://github.com/AspeedTech-BMC/openbmc/releases + Booting the ast2700-evb machine ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ =20 --=20 2.43.0 From nobody Sat Nov 15 23:37:24 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1745481205; cv=none; d=zohomail.com; s=zohoarc; b=cHtoLU8MuDWvRsM+paPsW1LKIXQAbtqO8SLeHqF+qfjYmqSQgJB39RC90spn/ByXn0NdGTjxw/kiZBWzmrT5Y4t5pa9n3xV9fJ3b1paHK1AcLLs7U6TM/bqnV5PGDNNjCY04ayi4gX2mOItKbGn4eIsvkFScOqCgYY7Aersd/AE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745481205; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=pfXEUtVoNDsPt/3yXkuUDccPA0oDne1KucYGyvODcqg=; b=Q2tOb67UtCcLRFBln3LD5qdPrTxYhe/Rdas9eaCiXN6EKisSSdWbpUFNeMkXKeer+DXYzPIG8to9zmpACc+WgH1On/yOKWbmyyQd0eDisqM/V6aH+uANv6583d+CtWGtyHac4hGkhWFzt1ScHKTzHGUMymTInevn5i4w4nzmjpw= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1745481204991274.50766177592277; Thu, 24 Apr 2025 00:53:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u7rNQ-0001Qw-8i; Thu, 24 Apr 2025 03:52:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u7rNO-0001QX-Mj; Thu, 24 Apr 2025 03:52:06 -0400 Received: from mail.aspeedtech.com ([211.20.114.72] helo=TWMBX01.aspeed.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u7rNN-0006ez-3j; Thu, 24 Apr 2025 03:52:06 -0400 Received: from TWMBX01.aspeed.com (192.168.0.62) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Thu, 24 Apr 2025 15:51:37 +0800 Received: from mail.aspeedtech.com (192.168.10.10) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Thu, 24 Apr 2025 15:51:37 +0800 To: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Peter Maydell , Steven Lee , Troy Lee , Andrew Jeffery , "Joel Stanley" , "open list:All patches CC here" , "open list:ASPEED BMCs" CC: , , , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PATCH v6 6/6] docs/system/arm/aspeed: Support vbootrom for AST2700 Date: Thu, 24 Apr 2025 15:51:34 +0800 Message-ID: <20250424075135.3715128-7-jamin_lin@aspeedtech.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250424075135.3715128-1-jamin_lin@aspeedtech.com> References: <20250424075135.3715128-1-jamin_lin@aspeedtech.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=211.20.114.72; envelope-from=jamin_lin@aspeedtech.com; helo=TWMBX01.aspeed.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_FAIL=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Jamin Lin From: Jamin Lin via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1745481207334019100 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 Reviewed-by: Nabih Estefan Reviewed-by: C=C3=A9dric Le Goater --- 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 OpenBM= C GitHub release repositor Booting the ast2700-evb machine ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ =20 -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 fla= sh 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. =20 .. code-block:: bash =20 @@ -326,6 +333,26 @@ Boot the AST2700 machine from the flash image, use an = MTD drive : -drive file=3D${IMGDIR}/image-bmc,format=3Draw,if=3Dmtd \ -nographic =20 +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 wor= king +directory or the ``pc-bios`` directory within the QEMU source tree. + +.. code-block:: bash + + $ qemu-system-aarch64 -M ast2700-evb \ + -drive file=3Dimage-bmc,format=3Draw,if=3Dmtd \ + -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``) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 --=20 2.43.0