| *** Variables *** |
| ${UART} sysbus.uart |
| ${URI} @https://dl.antmicro.com/projects/renode |
| |
| *** Keywords *** |
| Create Machine |
| [Arguments] ${elf} |
| |
| Execute Command mach create |
| Execute Command machine LoadPlatformDescription @platforms/cpus/sifive-fe310.repl |
| Execute Command sysbus LoadELF ${URI}/${elf} |
| |
| Pause At |
| [Arguments] ${address} ${continues}=0 |
| |
| Execute Command cpu AddHook ${address} "cpu.Pause()" |
| Start Emulation |
| |
| FOR ${i} IN RANGE 0 ${continues} |
| Wait For Pause 5 |
| Execute Command cpu Step 1 |
| Execute Command cpu ExecutionMode Continuous |
| END |
| |
| Wait For Pause 5 |
| |
| *** Test Cases *** |
| Translate Address Should Fail |
| # Address values are binary dependant |
| Create Machine hifive1_revb--zephyr-shared_mem.elf-s_873884-6c6aac93b93d8faf8d747eeaaa6fa1744a1dc1bb |
| |
| Execute Command using sysbus |
| |
| # This pauses at calling entry in z_thread_entry @ lib/os/thread_entry.c for enc thread |
| Pause At 0x20011be4 continues=2 |
| |
| ${pa}= Execute Command cpu TranslateAddress 0x80000364 InstructionFetch # would cause page fault |
| Should Contain ${pa} 0xFFFFFFFFFFFFFFFF |
| |
| Provides unmapped_address |
| |
| Translate Address Should Be Able To Map Address |
| Requires unmapped_address |
| |
| ${pa}= Execute Command cpu TranslateAddress 0x800100000 InstructionFetch # would not cause page fault |
| Should Contain ${pa} 0x0000000000100000 |
| |