blob: 20c5b8d078889a93c2bfaa108629cf3c137cdd83 [file] [log] [blame]
*** Settings ***
Suite Setup Setup
Suite Teardown Teardown
Test Setup Reset Emulation
Test Teardown Test Teardown
Resource ${RENODEKEYWORDS}
*** Variables ***
${UART} sysbus.uart0
${SHODAN_DIR} ${CURDIR}/../..
${ROOTDIR} @${SHODAN_DIR}
${AES_BIN} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/tests/aes_smoketest_fpga_nexysvideo.elf
${UART_BIN} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/tests/uart_smoketest_fpga_nexysvideo.elf
${HMAC_BIN} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/tests/hmac_smoketest_fpga_nexysvideo.elf
${KMAC_BIN} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/tests/kmac_smoketest_fpga_nexysvideo.elf
${KMAC_CSHAKE_BIN} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/tests/kmac_mode_cshake_test_fpga_nexysvideo.elf
${KMAC_KMAC_BIN} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/tests/kmac_mode_kmac_test_fpga_nexysvideo.elf
${FLASH_CTRL_BIN} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/tests/flash_ctrl_test_fpga_nexysvideo.elf
${BOOT_ROM_BIN} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/boot_rom/boot_rom_fpga_nexysvideo.elf
${BOOT_ROM_SCR_VMEM} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/boot_rom/boot_rom_fpga_nexysvideo.scr.39.vmem
${TIMER_BIN} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/tests/rv_timer_smoketest_fpga_nexysvideo.elf
${RESET_BIN} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/tests/rstmgr_smoketest_fpga_nexysvideo.elf
${SW_RESET_BIN} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/tests/rstmgr_sw_req_test_fpga_nexysvideo.elf
${HELLO_WORLD_BIN} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/examples/hello_world/hello_world_fpga_nexysvideo.elf
${OTP_VMEM} ${SHODAN_DIR}/out/tmp/otp_img_smoketest.vmem
${LC_TRANSITION} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/tests/lc_ctrl_transition_test_fpga_nexysvideo.elf
${LC_OTP_CFG} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/tests/lc_ctrl_otp_hw_cfg_test_fpga_nexysvideo.elf
${CSRNG_BIN} ${ROOTDIR}/out/opentitan/sw/build-out/sw/device/tests/csrng_smoketest_fpga_nexysvideo.elf
${OTP_IMG_SCRIPT} ${SHODAN_DIR}/hw/opentitan-upstream/util/design/gen-otp-img.py
${OTP_IMG_CFG} ${SHODAN_DIR}/sim/tests/otp_ctrl_img_smoketest.hjson
${LEDS}= SEPARATOR=
... """ ${\n}
... gpio: ${\n}
... ${SPACE*4}8 -> led0@0 ${\n}
... ${SPACE*4}9 -> led1@0 ${\n}
... ${SPACE*4}10 -> led2@0 ${\n}
... ${SPACE*4}11 -> led3@0 ${\n}
... ${SPACE*4}12 -> led4@0 ${\n}
... ${SPACE*4}13 -> led5@0 ${\n}
... ${SPACE*4}14 -> led6@0 ${\n}
... ${SPACE*4}15 -> led7@0 ${\n}
... ${\n}
... led0: Miscellaneous.LED @ gpio 8 ${\n}
... led1: Miscellaneous.LED @ gpio 9 ${\n}
... led2: Miscellaneous.LED @ gpio 10 ${\n}
... led3: Miscellaneous.LED @ gpio 11 ${\n}
... led4: Miscellaneous.LED @ gpio 12 ${\n}
... led5: Miscellaneous.LED @ gpio 13 ${\n}
... led6: Miscellaneous.LED @ gpio 14 ${\n}
... led7: Miscellaneous.LED @ gpio 15 ${\n}
... """
*** Keywords ***
Setup Machine
Execute Command mach create
Execute Command machine LoadPlatformDescription ${ROOTDIR}/sim/config/platforms/opentitan-earlgrey-gen.repl
Execute Command showAnalyzer ${UART}
Execute Command machine LoadPlatformDescriptionFromString ${LEDS}
Execute Command sysbus LoadELF ${BOOT_ROM_BIN}
Execute Command sysbus LoadELF ${HELLO_WORLD_BIN}
Run Process mkdir -p ${SHODAN_DIR}/out/tmp
Run Process python3 ${OTP_IMG_SCRIPT} --img-cfg ${OTP_IMG_CFG} --out ${OTP_VMEM}
Execute Command sysbus.otp_ctrl LoadVMem @${OTP_VMEM}
Execute Command sysbus.cpu0 PC 0x00008084
Create Terminal Tester ${UART}
Set Default Uart Timeout 1
Setup Machine Without Boot ROM
Execute Command mach create
Execute Command machine LoadPlatformDescription ${ROOTDIR}/sim/config/platforms/opentitan-earlgrey-gen.repl
Execute Command showAnalyzer ${UART}
Execute Command machine LoadPlatformDescriptionFromString ${LEDS}
Execute Command sysbus LoadELF $bin
Create Terminal Tester ${UART}
Set Default Uart Timeout 1
Load Scrambled Boot ROM Vmem
Execute Command sysbus.rom_ctrl LoadVmem ${BOOT_ROM_SCR_VMEM}
Execute Command sysbus.cpu0 PC 0x00008084
Run Smoketest
[Arguments] ${bin}
Execute Command $bin=${bin}
Setup Machine
Execute Command sysbus LoadELF $bin
Start Emulation
Wait For Line On UART PASS
Run Smoketest With Scrambled Boot ROM Vmem
[Arguments] ${bin}
Execute Command $bin=${bin}
Setup Machine Without Boot ROM
Load Scrambled Boot ROM Vmem
Start Emulation
Wait For Line On UART PASS
*** Test Cases ***
Should Print To Uart
Setup Machine
Start Emulation
Wait For Line On Uart The LEDs show the ASCII code of the last character.
Provides initialization
Should Echo On Uart
Requires initialization
Write Line To Uart Testing testing 1-2-3
Provides working-uart
Should Display Output on GPIO
Requires working-uart
Execute Command emulation CreateLEDTester "led0" sysbus.gpio.led0
Execute Command emulation CreateLEDTester "led1" sysbus.gpio.led1
Execute Command emulation CreateLEDTester "led2" sysbus.gpio.led2
Execute Command emulation CreateLEDTester "led3" sysbus.gpio.led3
Execute Command emulation CreateLEDTester "led4" sysbus.gpio.led4
Execute Command emulation CreateLEDTester "led5" sysbus.gpio.led5
Execute Command emulation CreateLEDTester "led6" sysbus.gpio.led6
Execute Command emulation CreateLEDTester "led7" sysbus.gpio.led7
Send Key To Uart 0x0
Execute Command led0 AssertState false 0.2
Execute Command led1 AssertState false 0.2
Execute Command led2 AssertState false 0.2
Execute Command led3 AssertState false 0.2
Execute Command led4 AssertState false 0.2
Execute Command led5 AssertState false 0.2
Execute Command led6 AssertState false 0.2
Execute Command led7 AssertState false 0.2
Write Char On Uart B
# B is 0100 0010
Execute Command led0 AssertState false 0.2
Execute Command led1 AssertState true 0.2
Execute Command led2 AssertState false 0.2
Execute Command led3 AssertState false 0.2
Execute Command led4 AssertState false 0.2
Execute Command led5 AssertState false 0.2
Execute Command led6 AssertState true 0.2
Execute Command led7 AssertState false 0.2
Should Pass AES Smoketest
Run Smoketest ${AES_BIN}
Should Pass UART Smoketest
Run Smoketest ${UART_BIN}
Should Pass HMAC Smoketest
Run Smoketest ${HMAC_BIN}
Should Pass Flash Smoketest
Run Smoketest ${FLASH_CTRL_BIN}
Should Pass Timer Smoketest
Run Smoketest ${TIMER_BIN}
Should Pass KMAC Smoketest
Run Smoketest ${KMAC_BIN}
Should Pass KMAC CSHAKE Mode
Run Smoketest ${KMAC_CSHAKE_BIN}
Should Pass KMAC KMAC Mode
Run Smoketest ${KMAC_KMAC_BIN}
Should Pass Reset Smoketest
Run Smoketest ${RESET_BIN}
Should Pass Software Reset Test
Run Smoketest ${SW_RESET_BIN}
Should Pass Life Cycle Transition Test
Run Smoketest ${LC_TRANSITION}
Should Pass Life Cycle Otp Config Test
Run Smoketest ${LC_OTP_CFG}
Should Pass CSRNG Smoketest
Run Smoketest ${CSRNG_BIN}
Should Pass AES Smoketest With Scrambled Boot ROM Vmem
Run Smoketest With Scrambled Boot ROM Vmem ${AES_BIN}
Should Pass UART Smoketest With Scrambled Boot ROM Vmem
Run Smoketest With Scrambled Boot ROM Vmem ${UART_BIN}
Should Pass HMAC Smoketest With Scrambled Boot ROM Vmem
Run Smoketest With Scrambled Boot ROM Vmem ${HMAC_BIN}
Should Pass Flash Smoketest With Scrambled Boot ROM Vmem
Run Smoketest With Scrambled Boot ROM Vmem ${FLASH_CTRL_BIN}
Should Pass KMAC Smoketest With Scrambled Boot ROM Vmem
Run Smoketest With Scrambled Boot ROM Vmem ${KMAC_BIN}
Should Pass KMAC CSHAKE Mode With Scrambled Boot ROM Vmem
Run Smoketest With Scrambled Boot ROM Vmem ${KMAC_CSHAKE_BIN}
Should Pass KMAC KMAC Mode With Scrambled Boot ROM Vmem
Run Smoketest With Scrambled Boot ROM Vmem ${KMAC_KMAC_BIN}
Should Pass Reset Smoketest With Scrambled Boot ROM Vmem
Run Smoketest With Scrambled Boot ROM Vmem ${RESET_BIN}
Should Pass Software Reset Test With Scrambled Boot ROM Vmem
Run Smoketest With Scrambled Boot ROM Vmem ${SW_RESET_BIN}