*** Variables *** ${UART} sysbus.uart0 ${MPFS_ICYCLE_TICKLESS_KERNEL_ELF} @https://dl.antmicro.com/projects/renode/zephyr-icicle-test_tickless_concept.elf-s_667256-3e789809fe48247fa36514fd7876468a76646c42 *** Keywords *** Create Machine Execute Command $elf=@https://dl.antmicro.com/projects/renode/zephyr-custom_k_busy_wait.elf-s_383952-e634ad4735a09c71058c885c75df67b8be827ce9 Execute Command mach create Execute Command machine LoadPlatformDescription @platforms/cpus/sifive-fu740.repl Execute Command sysbus LoadELF $elf *** Test Cases *** Should Pass 10 Second Wait [Documentation] Tests enabling Zephyr mode, this test should execute in about 10-15 seconds real-time. Create Machine Create Terminal Tester ${UART} Execute Command sysbus.s7 EnableZephyrMode Start Emulation Wait For Line On Uart Waiting for 10 seconds... # k_busy_wait isn't accurate enough to reliably wait for exactly 10 seconds Wait For Line On Uart Wait for 10 seconds completed timeout=10.1 # This test depends on correct time flow counting in Zephyr. It will fail if EnableZephyrMode with `disableIfSymbolsPresent` logic does not work. Should Pass Zephyr "tickless_kernel" test suite on mpfs_icicle_polarfire with ZephyrMode enabled and symbols excluded Execute Command using sysbus Execute Command include @platforms/boards/mpfs-icicle-kit.repl Execute Command sysbus LoadELF ${MPFS_ICYCLE_TICKLESS_KERNEL_ELF} Create Terminal Tester sysbus.mmuart0 Create Log Tester 1 Execute Command e51 PerformanceInMips 80 Execute Command u54_1 IsHalted true Execute Command u54_2 IsHalted true Execute Command u54_3 IsHalted true Execute Command u54_4 IsHalted true Execute Command e51 EnableZephyrMode "CONFIG_TICKLESS_KERNEL" Wait For Log Entry ZephyrMode is disabled because the symbol 'CONFIG_TICKLESS_KERNEL' Wait For Line On Uart PROJECT EXECUTION SUCCESSFUL