[PATCH v1 1/4] hw/arm: Remove ast2700a0-evb machine

Jamin Lin via posted 4 patches 6 days, 2 hours ago
There is a newer version of this series
[PATCH v1 1/4] hw/arm: Remove ast2700a0-evb machine
Posted by Jamin Lin via 6 days, 2 hours ago
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
Re: [SPAM] [PATCH v1 1/4] hw/arm: Remove ast2700a0-evb machine
Posted by Cédric Le Goater 5 days, 22 hours ago
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')
>
RE: [SPAM] [PATCH v1 1/4] hw/arm: Remove ast2700a0-evb machine
Posted by Jamin Lin 5 days, 22 hours ago
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')
> >