[PULL 05/16] tests/functional/arm/aspeed_ast2600: Enhance OTP test with functional validation

Cédric Le Goater posted 16 patches 1 month, 4 weeks ago
Maintainers: "Cédric Le Goater" <clg@kaod.org>, Peter Maydell <peter.maydell@linaro.org>, Steven Lee <steven_lee@aspeedtech.com>, Troy Lee <leetroy@gmail.com>, Jamin Lin <jamin_lin@aspeedtech.com>, Andrew Jeffery <andrew@codeconstruct.com.au>, Joel Stanley <joel@jms.id.au>, Fabiano Rosas <farosas@suse.de>, Laurent Vivier <lvivier@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>
There is a newer version of this series
[PULL 05/16] tests/functional/arm/aspeed_ast2600: Enhance OTP test with functional validation
Posted by Cédric Le Goater 1 month, 4 weeks ago
From: Kane Chen <kane_chen@aspeedtech.com>

Improve the OTP test script by adding functional verification of OTP
strap registers. The test now validates that OTP modifications made
in U-Boot persist through the Linux boot process and survive a
subsequent reboot.

Key changes:
- Added interactive console commands for U-Boot and Linux.
- Implemented verification for OTP register 0x30 across reboots.

Signed-off-by: Kane-Chen-AS <kane_chen@aspeedtech.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20260211052326.430475-2-kane_chen@aspeedtech.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
---
 .../arm/test_aspeed_ast2600_sdk_otp.py        | 34 +++++++++++++++++--
 1 file changed, 31 insertions(+), 3 deletions(-)

diff --git a/tests/functional/arm/test_aspeed_ast2600_sdk_otp.py b/tests/functional/arm/test_aspeed_ast2600_sdk_otp.py
index 4066532d5dec..31a1c3bed670 100755
--- a/tests/functional/arm/test_aspeed_ast2600_sdk_otp.py
+++ b/tests/functional/arm/test_aspeed_ast2600_sdk_otp.py
@@ -7,6 +7,8 @@
 from qemu_test import Asset
 from aspeed import AspeedTest
 
+from qemu_test import wait_for_console_pattern, exec_command
+from qemu_test import exec_command_and_wait_for_pattern
 
 class AST2600Machine(AspeedTest):
 
@@ -16,6 +18,7 @@ class AST2600Machine(AspeedTest):
 
     def test_arm_ast2600_otp_blockdev_device(self):
         self.vm.set_machine("ast2600-evb")
+        self.require_netdev('user')
 
         image_path = self.archive_extract(self.ASSET_SDK_V1100_AST2600)
         otp_img = self.generate_otpmem_image()
@@ -25,9 +28,34 @@ def test_arm_ast2600_otp_blockdev_device(self):
             "-blockdev", f"driver=file,filename={otp_img},node-name=otp",
             "-global", "aspeed-otp.drive=otp",
         )
-        self.do_test_arm_aspeed_sdk_start(
-            self.scratch_file("ast2600-default", "image-bmc"))
-        self.wait_for_console_pattern("ast2600-default login:")
+        self.vm.add_args('-drive', 'file=' +
+                self.scratch_file("ast2600-default", "image-bmc") +
+                ',if=mtd,format=raw',
+                '-net', 'nic', '-net', 'user', '-snapshot')
+        self.vm.launch()
+
+        # Set OTP value via uboot command
+        wait_for_console_pattern(self, 'Hit any key to stop autoboot:')
+        exec_command_and_wait_for_pattern(self, '\012', 'ast#')
+        exec_command_and_wait_for_pattern(self,
+            'otp pb strap  o 0x30 1', 'ast#')
+        # Validate OTP value in uboot stage
+        exec_command_and_wait_for_pattern(self,
+            'otp read strap 0x30', '0x30      1')
+        exec_command_and_wait_for_pattern(self, 'boot',
+            "ast2600-default login:")
+        exec_command_and_wait_for_pattern(self, 'root', 'Password:')
+        exec_command_and_wait_for_pattern(self, '0penBmc',
+            'root@ast2600-default:~#')
+        # Validate OTP value in BMC stage
+        exec_command_and_wait_for_pattern(self,
+            'otp read strap 0x30', '0x30      1')
+        exec_command_and_wait_for_pattern(self,
+            'reboot', 'Hit any key to stop autoboot')
+        exec_command_and_wait_for_pattern(self, '\012', 'ast#')
+        # Validate OTP value in uboot stage
+        exec_command_and_wait_for_pattern(self,
+            'otp read strap 0x30', '0x30      1')
 
 
 if __name__ == '__main__':
-- 
2.53.0