On 2/10/26 11:44, Kane Chen wrote:
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 <[email protected]>
---
.../arm/test_aspeed_ast2600_sdk_otp.py | 35 ++++++++++++++++---
1 file changed, 31 insertions(+), 4 deletions(-)
diff --git a/tests/functional/arm/test_aspeed_ast2600_sdk_otp.py
b/tests/functional/arm/test_aspeed_ast2600_sdk_otp.py
index 4066532d5d..90f283ea09 100644
--- a/tests/functional/arm/test_aspeed_ast2600_sdk_otp.py
+++ b/tests/functional/arm/test_aspeed_ast2600_sdk_otp.py
@@ -6,7 +6,8 @@
from qemu_test import Asset
from aspeed import AspeedTest
-
Can you keep the line above please ?
+from qemu_test import wait_for_console_pattern, exec_command
+from qemu_test import exec_command_and_wait_for_pattern
class AST2600Machine(AspeedTest):
@@ -25,9 +26,35 @@ 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.require_netdev('user')
+ self.vm.add_args('-drive', 'file=' +
+ self.scratch_file("ast2600-default", "image-bmc") +
+ ',if=mtd,format=raw',
+ '-net', 'nic', '-net', 'user', '-snapshot')
please add at the top of the function :
self.require_netdev('user')
Thanks,
C.
+ 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__':