The ast2700a0-evb machine represents the first revision of the AST2700 and
serves as the initial engineering sample rather than a production version.
A newer revision, A1, is now supported, and the ast2700a1-evb should replace
the older A0 version.
Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
---
docs/about/deprecated.rst | 8 ------
hw/arm/aspeed.c | 28 +------------------
.../functional/aarch64/test_aspeed_ast2700.py | 12 --------
3 files changed, 1 insertion(+), 47 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 5d1579dcf8..8a273e019a 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -305,14 +305,6 @@ deprecated; use the new name ``dtb-randomness`` instead. The new name
better reflects the way this property affects all random data within
the device tree blob, not just the ``kaslr-seed`` node.
-Arm ``ast2700a0-evb`` machine (since 10.1)
-''''''''''''''''''''''''''''''''''''''''''
-
-The ``ast2700a0-evb`` machine represents the first revision of the AST2700
-and serves as the initial engineering sample rather than a production version.
-A newer revision, A1, is now supported, and the ``ast2700a1-evb`` should
-replace the older A0 version.
-
Mips ``mipssim`` machine (since 10.0)
'''''''''''''''''''''''''''''''''''''
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
index c31bbe7701..e729edfe13 100644
--- a/hw/arm/aspeed.c
+++ b/hw/arm/aspeed.c
@@ -1989,35 +1989,13 @@ static void ast2700_evb_i2c_init(AspeedMachineState *bmc)
TYPE_TMP105, 0x4d);
}
-static void aspeed_machine_ast2700a0_evb_class_init(ObjectClass *oc,
- const void *data)
-{
- MachineClass *mc = MACHINE_CLASS(oc);
- AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
-
- mc->alias = "ast2700-evb";
- mc->desc = "Aspeed AST2700 A0 EVB (Cortex-A35)";
- amc->soc_name = "ast2700-a0";
- amc->hw_strap1 = AST2700_EVB_HW_STRAP1;
- amc->hw_strap2 = AST2700_EVB_HW_STRAP2;
- amc->fmc_model = "w25q01jvq";
- amc->spi_model = "w25q512jv";
- amc->num_cs = 2;
- 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);
-}
-
static void aspeed_machine_ast2700a1_evb_class_init(ObjectClass *oc,
const void *data)
{
MachineClass *mc = MACHINE_CLASS(oc);
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
+ mc->alias = "ast2700-evb";
mc->desc = "Aspeed AST2700 A1 EVB (Cortex-A35)";
amc->soc_name = "ast2700-a1";
amc->hw_strap1 = AST2700_EVB_HW_STRAP1;
@@ -2166,10 +2144,6 @@ static const TypeInfo aspeed_machine_types[] = {
.class_init = aspeed_minibmc_machine_ast1030_evb_class_init,
#ifdef TARGET_AARCH64
}, {
- .name = MACHINE_TYPE_NAME("ast2700a0-evb"),
- .parent = TYPE_ASPEED_MACHINE,
- .class_init = aspeed_machine_ast2700a0_evb_class_init,
- }, {
.name = MACHINE_TYPE_NAME("ast2700a1-evb"),
.parent = TYPE_ASPEED_MACHINE,
.class_init = aspeed_machine_ast2700a1_evb_class_init,
diff --git a/tests/functional/aarch64/test_aspeed_ast2700.py b/tests/functional/aarch64/test_aspeed_ast2700.py
index d02dc7991c..063d9e572c 100755
--- a/tests/functional/aarch64/test_aspeed_ast2700.py
+++ b/tests/functional/aarch64/test_aspeed_ast2700.py
@@ -46,10 +46,6 @@ def verify_openbmc_boot_and_login(self, name):
exec_command_and_wait_for_pattern(self, 'root', 'Password:')
exec_command_and_wait_for_pattern(self, '0penBmc', f'root@{name}:~#')
- ASSET_SDK_V906_AST2700 = Asset(
- 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v09.06/ast2700-a0-default-obmc.tar.gz',
- '7247b6f19dbfb700686f8d9f723ac23f3eb229226c0589cb9b06b80d1b61f3cb')
-
ASSET_SDK_V906_AST2700A1 = Asset(
'https://github.com/AspeedTech-BMC/openbmc/releases/download/v09.06/ast2700-default-obmc.tar.gz',
'f1d53e0be8a404ecce3e105f72bc50fa4e090ad13160ffa91b10a6e0233a9dc6')
@@ -111,14 +107,6 @@ def start_ast2700_test_vbootrom(self, name):
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')
-
- self.archive_extract(self.ASSET_SDK_V906_AST2700)
- self.start_ast2700_test('ast2700-a0-default')
- self.verify_openbmc_boot_and_login('ast2700-a0-default')
- self.do_ast2700_i2c_test()
-
def test_aarch64_ast2700a1_evb_sdk_v09_06(self):
self.set_machine('ast2700a1-evb')
--
2.43.0
Hello Jamin,
On 9/1/25 06:08, Jamin Lin wrote:
> The ast2700a0-evb machine represents the first revision of the AST2700 and
> serves as the initial engineering sample rather than a production version.
> A newer revision, A1, is now supported, and the ast2700a1-evb should replace
> the older A0 version.
>
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> ---
> docs/about/deprecated.rst | 8 ------
> hw/arm/aspeed.c | 28 +------------------
> .../functional/aarch64/test_aspeed_ast2700.py | 12 --------
> 3 files changed, 1 insertion(+), 47 deletions(-)
>
> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index 5d1579dcf8..8a273e019a 100644
> --- a/docs/about/deprecated.rst
> +++ b/docs/about/deprecated.rst
> @@ -305,14 +305,6 @@ deprecated; use the new name ``dtb-randomness`` instead. The new name
> better reflects the way this property affects all random data within
> the device tree blob, not just the ``kaslr-seed`` node.
>
> -Arm ``ast2700a0-evb`` machine (since 10.1)
> -''''''''''''''''''''''''''''''''''''''''''
We need to wait *two* releases after deprecation before removing a
machine or any other feature. So removal of the ast2700a0-evb machine
will be possible for QEMU 11.0 (next after QEMU 10.2).
> -
> -The ``ast2700a0-evb`` machine represents the first revision of the AST2700
> -and serves as the initial engineering sample rather than a production version.
> -A newer revision, A1, is now supported, and the ``ast2700a1-evb`` should
> -replace the older A0 version.
> -
File docs/about/removed-features.rst should be updated too.
> Mips ``mipssim`` machine (since 10.0)
> '''''''''''''''''''''''''''''''''''''
>
> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> index c31bbe7701..e729edfe13 100644
> --- a/hw/arm/aspeed.c
> +++ b/hw/arm/aspeed.c
> @@ -1989,35 +1989,13 @@ static void ast2700_evb_i2c_init(AspeedMachineState *bmc)
> TYPE_TMP105, 0x4d);
> }
>
> -static void aspeed_machine_ast2700a0_evb_class_init(ObjectClass *oc,
> - const void *data)
> -{
> - MachineClass *mc = MACHINE_CLASS(oc);
> - AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
> -
> - mc->alias = "ast2700-evb";
The "ast2700-evb" alias should be moved first to the ast2700a1_evb machine.
This can be done in this QEMU cycle
Thanks,
C.
> - mc->desc = "Aspeed AST2700 A0 EVB (Cortex-A35)";
> - amc->soc_name = "ast2700-a0";
> - amc->hw_strap1 = AST2700_EVB_HW_STRAP1;
> - amc->hw_strap2 = AST2700_EVB_HW_STRAP2;
> - amc->fmc_model = "w25q01jvq";
> - amc->spi_model = "w25q512jv";
> - amc->num_cs = 2;
> - 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);
> -}
> -
> static void aspeed_machine_ast2700a1_evb_class_init(ObjectClass *oc,
> const void *data)
> {
> MachineClass *mc = MACHINE_CLASS(oc);
> AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
>
> + mc->alias = "ast2700-evb";
> mc->desc = "Aspeed AST2700 A1 EVB (Cortex-A35)";
> amc->soc_name = "ast2700-a1";
> amc->hw_strap1 = AST2700_EVB_HW_STRAP1;
> @@ -2166,10 +2144,6 @@ static const TypeInfo aspeed_machine_types[] = {
> .class_init = aspeed_minibmc_machine_ast1030_evb_class_init,
> #ifdef TARGET_AARCH64
> }, {
> - .name = MACHINE_TYPE_NAME("ast2700a0-evb"),
> - .parent = TYPE_ASPEED_MACHINE,
> - .class_init = aspeed_machine_ast2700a0_evb_class_init,
> - }, {
> .name = MACHINE_TYPE_NAME("ast2700a1-evb"),
> .parent = TYPE_ASPEED_MACHINE,
> .class_init = aspeed_machine_ast2700a1_evb_class_init,
> diff --git a/tests/functional/aarch64/test_aspeed_ast2700.py b/tests/functional/aarch64/test_aspeed_ast2700.py
> index d02dc7991c..063d9e572c 100755
> --- a/tests/functional/aarch64/test_aspeed_ast2700.py
> +++ b/tests/functional/aarch64/test_aspeed_ast2700.py
> @@ -46,10 +46,6 @@ def verify_openbmc_boot_and_login(self, name):
> exec_command_and_wait_for_pattern(self, 'root', 'Password:')
> exec_command_and_wait_for_pattern(self, '0penBmc', f'root@{name}:~#')
>
> - ASSET_SDK_V906_AST2700 = Asset(
> - 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v09.06/ast2700-a0-default-obmc.tar.gz',
> - '7247b6f19dbfb700686f8d9f723ac23f3eb229226c0589cb9b06b80d1b61f3cb')
> -
> ASSET_SDK_V906_AST2700A1 = Asset(
> 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v09.06/ast2700-default-obmc.tar.gz',
> 'f1d53e0be8a404ecce3e105f72bc50fa4e090ad13160ffa91b10a6e0233a9dc6')
> @@ -111,14 +107,6 @@ def start_ast2700_test_vbootrom(self, name):
> 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')
> -
> - self.archive_extract(self.ASSET_SDK_V906_AST2700)
> - self.start_ast2700_test('ast2700-a0-default')
> - self.verify_openbmc_boot_and_login('ast2700-a0-default')
> - self.do_ast2700_i2c_test()
> -
> def test_aarch64_ast2700a1_evb_sdk_v09_06(self):
> self.set_machine('ast2700a1-evb')
>
Hi Cédric
> From: Cédric Le Goater <clg@kaod.org>
> Sent: Monday, September 1, 2025 4:28 PM
> To: Jamin Lin <jamin_lin@aspeedtech.com>; reviewer:Incompatible changes
> <devel@lists.libvirt.org>; Peter Maydell <peter.maydell@linaro.org>; Steven
> Lee <steven_lee@aspeedtech.com>; Troy Lee <leetroy@gmail.com>; Andrew
> Jeffery <andrew@codeconstruct.com.au>; Joel Stanley <joel@jms.id.au>; open
> list:All patches CC here <qemu-devel@nongnu.org>; open list:ASPEED BMCs
> <qemu-arm@nongnu.org>
> Cc: Troy Lee <troy_lee@aspeedtech.com>; Kane Chen
> <kane_chen@aspeedtech.com>
> Subject: Re: [SPAM] [PATCH v1 1/4] hw/arm: Remove ast2700a0-evb machine
>
> Hello Jamin,
>
> On 9/1/25 06:08, Jamin Lin wrote:
> > The ast2700a0-evb machine represents the first revision of the AST2700
> > and serves as the initial engineering sample rather than a production
> version.
> > A newer revision, A1, is now supported, and the ast2700a1-evb should
> > replace the older A0 version.
> >
> > Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> > ---
> > docs/about/deprecated.rst | 8 ------
> > hw/arm/aspeed.c | 28
> +------------------
> > .../functional/aarch64/test_aspeed_ast2700.py | 12 --------
> > 3 files changed, 1 insertion(+), 47 deletions(-)
> >
> > diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> > index 5d1579dcf8..8a273e019a 100644
> > --- a/docs/about/deprecated.rst
> > +++ b/docs/about/deprecated.rst
> > @@ -305,14 +305,6 @@ deprecated; use the new name ``dtb-randomness``
> instead. The new name
> > better reflects the way this property affects all random data within
> > the device tree blob, not just the ``kaslr-seed`` node.
> >
> > -Arm ``ast2700a0-evb`` machine (since 10.1)
> > -''''''''''''''''''''''''''''''''''''''''''
>
> We need to wait *two* releases after deprecation before removing a machine
> or any other feature. So removal of the ast2700a0-evb machine will be
> possible for QEMU 11.0 (next after QEMU 10.2).
>
Got it.
Thanks for review.
> > -
> > -The ``ast2700a0-evb`` machine represents the first revision of the
> > AST2700 -and serves as the initial engineering sample rather than a
> production version.
> > -A newer revision, A1, is now supported, and the ``ast2700a1-evb``
> > should -replace the older A0 version.
> > -
>
> File docs/about/removed-features.rst should be updated too.
>
> > Mips ``mipssim`` machine (since 10.0)
> > '''''''''''''''''''''''''''''''''''''
> >
> > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index
> > c31bbe7701..e729edfe13 100644
> > --- a/hw/arm/aspeed.c
> > +++ b/hw/arm/aspeed.c
> > @@ -1989,35 +1989,13 @@ static void
> ast2700_evb_i2c_init(AspeedMachineState *bmc)
> > TYPE_TMP105, 0x4d);
> > }
> >
> > -static void aspeed_machine_ast2700a0_evb_class_init(ObjectClass *oc,
> > - const void
> *data)
> > -{
> > - MachineClass *mc = MACHINE_CLASS(oc);
> > - AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
> > -
> > - mc->alias = "ast2700-evb";
>
> The "ast2700-evb" alias should be moved first to the ast2700a1_evb machine.
> This can be done in this QEMU cycle
>
Will do.
Thanks-Jamin
>
> Thanks,
>
> C.
>
>
>
>
> > - mc->desc = "Aspeed AST2700 A0 EVB (Cortex-A35)";
> > - amc->soc_name = "ast2700-a0";
> > - amc->hw_strap1 = AST2700_EVB_HW_STRAP1;
> > - amc->hw_strap2 = AST2700_EVB_HW_STRAP2;
> > - amc->fmc_model = "w25q01jvq";
> > - amc->spi_model = "w25q512jv";
> > - amc->num_cs = 2;
> > - 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);
> > -}
> > -
> > static void aspeed_machine_ast2700a1_evb_class_init(ObjectClass *oc,
> > const void
> *data)
> > {
> > MachineClass *mc = MACHINE_CLASS(oc);
> > AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
> >
> > + mc->alias = "ast2700-evb";
> > mc->desc = "Aspeed AST2700 A1 EVB (Cortex-A35)";
> > amc->soc_name = "ast2700-a1";
> > amc->hw_strap1 = AST2700_EVB_HW_STRAP1; @@ -2166,10
> +2144,6 @@
> > static const TypeInfo aspeed_machine_types[] = {
> > .class_init =
> aspeed_minibmc_machine_ast1030_evb_class_init,
> > #ifdef TARGET_AARCH64
> > }, {
> > - .name = MACHINE_TYPE_NAME("ast2700a0-evb"),
> > - .parent = TYPE_ASPEED_MACHINE,
> > - .class_init = aspeed_machine_ast2700a0_evb_class_init,
> > - }, {
> > .name = MACHINE_TYPE_NAME("ast2700a1-evb"),
> > .parent = TYPE_ASPEED_MACHINE,
> > .class_init = aspeed_machine_ast2700a1_evb_class_init,
> > diff --git a/tests/functional/aarch64/test_aspeed_ast2700.py
> > b/tests/functional/aarch64/test_aspeed_ast2700.py
> > index d02dc7991c..063d9e572c 100755
> > --- a/tests/functional/aarch64/test_aspeed_ast2700.py
> > +++ b/tests/functional/aarch64/test_aspeed_ast2700.py
> > @@ -46,10 +46,6 @@ def verify_openbmc_boot_and_login(self, name):
> > exec_command_and_wait_for_pattern(self, 'root', 'Password:')
> > exec_command_and_wait_for_pattern(self, '0penBmc',
> > f'root@{name}:~#')
> >
> > - ASSET_SDK_V906_AST2700 = Asset(
> > -
> 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v09.06/ast
> 2700-a0-default-obmc.tar.gz',
> > -
> '7247b6f19dbfb700686f8d9f723ac23f3eb229226c0589cb9b06b80d1b61f3cb')
> > -
> > ASSET_SDK_V906_AST2700A1 = Asset(
> >
> 'https://github.com/AspeedTech-BMC/openbmc/releases/download/v09.06/ast
> 2700-default-obmc.tar.gz',
> >
> >
> 'f1d53e0be8a404ecce3e105f72bc50fa4e090ad13160ffa91b10a6e0233a9dc6')
> > @@ -111,14 +107,6 @@ def start_ast2700_test_vbootrom(self, name):
> > 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')
> > -
> > - self.archive_extract(self.ASSET_SDK_V906_AST2700)
> > - self.start_ast2700_test('ast2700-a0-default')
> > - self.verify_openbmc_boot_and_login('ast2700-a0-default')
> > - self.do_ast2700_i2c_test()
> > -
> > def test_aarch64_ast2700a1_evb_sdk_v09_06(self):
> > self.set_machine('ast2700a1-evb')
> >
© 2016 - 2026 Red Hat, Inc.