Files
simulation_core/tests/platforms/egis_et171.robot

43 lines
1.8 KiB
Plaintext

*** Variables ***
${PROGRAM_COUNTER} 0x80000000
${RESET_VECTOR_VALUE} 0x80001000
${AOSMU_BASE} 0xF0100000
${RESET_VECTOR_OFFSET} 0x10
${SECURE_CON_OFFSET} 0xC
${CLK_SRC_OFFSET} 0x4
*** Keywords ***
Create Machine
Execute Command include @platforms/cpus/egis_et171.repl
Execute Command cpu0 PC ${PROGRAM_COUNTER}
Execute Command cpu0 AssembleBlock ${RESET_VECTOR_VALUE} "loop: j loop"
Create Log Tester 0
*** Test Cases ***
Soft Reset Should Enter At Reset Vector
Create Machine
${PROG}= Catenate SEPARATOR=\n
... li a0, ${AOSMU_BASE}
... li t0, ${RESET_VECTOR_VALUE}
... sw t0, ${RESET_VECTOR_OFFSET}(a0)
... li t0, 0x4 # Warm reset bit
... sw t0, ${SECURE_CON_OFFSET}(a0)
... loop: j loop
Execute Command cpu0 AssembleBlock `cpu0 PC` """${PROG}"""
Execute Command emulation RunFor "0.0001"
PC Should Be Equal ${RESET_VECTOR_VALUE}
MTimer Should Respect APB Clock Frequency
Create Machine
# Halt the cpu as we don't need it to test the mtimer
Execute Command cpu0 IsHalted True
# Root clock divider /4, APB clock divider /8, clock source 205MHz, resulting frequency is 3203125 Hz
${clock_config}= Evaluate ((0x3 << 4) | (0x5 << 1) | 0x1)
Execute Command syscon WriteDoubleWord ${CLK_SRC_OFFSET} ${clock_config}
Execute Command mtimer WriteQuadWord 0 0
Execute Command emulation RunFor "1s"
${after}= Execute Command mtimer ReadQuadWord 0
Should Be Equal As Numbers ${after} 3203125