Renode 1.13.3
PiotrZierhoffer
released this
20 Feb 11:03
·
1195 commits
to master
since this release
For installation instructions, see the README.
Added and improved platform descriptions:
- basic Adafruit ItsyBitsy M4 Express platform with UART and memories
- various STM32 platforms with improved EXTI connections, IWDG configuration, and new CRC, Flash, PWR, RCC, and LPTimer models added to selected platforms
- MAX32650 with a new I2C model
- Zynq 7000 with new I2C, SPI, UART and TTC models
- Apollo 4 with a new Timer model and a
program_main2
bootrom function mock - OpenTitan Earlgrey with new OTBN accelerator, AON Timer, System Reset controller, Entropy source, and SRAM controller models
- nRF52840 with a new EGU model
- EFR32MG1x with a new LDMA model and improved USART interrupt connections
Added peripheral models:
- Apollo4 IOMaster I2C mode
- Apollo4 Timer
- AS6221 skin temperature sensor
- Cadence I2C controller
- Cadence SPI controller
- Cadence TTC
- Cadence UART
- Cadence xSPI controller
- EFR32MG12 LDMA controller
- LIS2DW12 accelerometer sensor
- LC709205F Fuel Gauge
- Macronix MX25R flash
- MAX30208 temperature sensor
- MAX32650 I2C controller
- MAX77818 Fuel Gauge
- MAX86171 Optical AFE
- NRF52840 EGU
- OpenTitan AON Timer
- OpenTitan Big Number Accelerator (OTBN) full model
- OpenTitan ClockManager stub
- OpenTitan Entropy Source controller
- OpenTitan SRAM controller
- OpenTitan SystemReset controller
- Quectel BC660K radio
- RV8803 RTC
- STM32F0 CRC
- STM32H7 RCC
- STM32L0 Flash controller
- STM32L0 Low Power Timer
- STM32L0 PWR
- TMP103 temperature sensor
Added demos and tests:
- RTC mode unit test
- Adafruit ItsyBitsy M4 Express Zephyr shell_module test
- STM32L072 tests for: DMA, PVD interrupt, SPI flash, IWDG, LPUART, EEPROM, and CRC
- STM32F4 tests for RTC and running an STM32CubeMX app
- Zynq tests for I2C, TTC, SPI flash, xSPI, and UART based on Linux
Added features:
- support for RESD - Renode Sensor Data format, allowing users to provide multiple sensors with time-coordinated data specific for a given sensor; currently supported in MAX86171, MAX30208, AS6221, and LSM6DSO
- reorganized CPU classes and interfaces, allowing for easier integration of external CPU simulators
- IOMMU, with example usage in WindowIOMMU, WindowMMUBusController, and SimpleDMA
- new key bindings in the Monitor: Ctrl+D for closing the window and Ctrl+U for clearing the current input
- new key bindings in all terminal windows: Shift+Up/Down arrow for line scrolling and Shift+Home/End for jumping to the beginning and the end of the buffer
- option to configure UART window location offsets via the config file
- support for 64-bit bus accesses and 64-bit peripherals
- support non-resettable peripheral registers and register fields
- option to register hooks to be called whenever a RISC-V register is accessed - this can be used to emulate non-standard implementation of these registers
- option to set CPU exceptions from the outside of the CPU
- Robot keyword to verify that GPIO has a specified state for a given period of time
- verbose mode in Robot tests
Changed:
- Robot tests do not need a header with settings and keywords anymore
- changed the conditional syntax in Robot tests to use IF/ELSE for compatibility with newer Robot Framework versions
- cleaned up tests-related file organization in the repository
- simplified flags for renode-test under dotnet
- added skip_mono and skip_dotnet tags to Robot tests
- removed internal signal mappings from STM32 EXTI, making the interrupt routing more explicit in REPL files
- console mode will be started instead of telnet when the UI fails to start
- reset can now be executed on a not started machine
- expanded the Execution Tracer with
TrackMemoryAccesses
andTrackVectorConfiguration
options, along with disassembler-generated info - OnMemoryAccess hooks now receive the current PC as a parameter
- changed the CRCEngine API and improved implementation
- ELF symbol lookup will now skip several types of unimportant symbols
- tags can now have zero width to ease the creation of variable width registers
- added option to invert reset logic in AXI4Lite
- added handling of the
WSTRB
signal in AXI4Lite - added support for various address lines connections in Wishbone
- added various access lengths support for verilated peripherals
- timeout value for Verilator connections can now be defined in compile time
- all architectures now sync their PC on memory accesses
- UARTBase is now a container for IUART devices
- added option to clear all event subscribers in LimitTimer
- added ITimer interface for handling basic timer properties
- extended the excluded assembly list in TypeManager to speed up startup on dotnet
Fixed:
- flushing of the log when using the
lastLog
command - deadlock when using the
--console
mode on dotnet with collapsed log entries enabled - Wireshark handling on macOS
- TAP support on macOS
- Asciinema usage in multi-machine setups
- closing of Renode in several problematic scenarios
- handling of end of file detection in HEX parsing
- robustness of BLESniffer
- timestamps discrepancies in file logs and console logs
- compilation under Visual Studio on Windows
- compilation on Windows when the PLATFORM environment variable is set
- graph titles for metrics visualizer
- handling of peripheral regions in Profiles
- file sharing and access type settings for open files
- floating point registers access on RV32
- several RISC-V Vector instructions
- crash when the CPU is created with an invalid type
- RISC-V PMP config reading and writing and NAPOT decoding
- translation cache invalidation in multicore RISC-V scenarios
- SEV generation on Cortex-M
- handling of multi-instructions blocks in Xtensa
- execution of too many instructions in a single block
- button sample tests for STM32F072q
- fastvdma co-simulation test
- qCRC packet handling in GDB
- decoding of GDB packets, selecting the command handler based on the longest match for a packet
- address translation in GDB
- UARTToSpiConverter logic and user experience
- handling of Step parameter in ClockEntry
- changing of frequency for divider calculation in ComparingTimer
- cleanup of old clock entries
Improvements in peripherals:
- AmbiqApollo4 IOMaster
- AmbiqApollo4 RTC
- AthenaX5200
- Cadence TTC
- Dummy I2C Slave
- EFR32 CMU
- EFR32 USART
- EFR32 RTCC
- Generic SPI Flash
- HiMax HM01B0
- I2C dummy device
- LSM6DSO IMU
- Mapped Memory
- Micron MT25Q
- MPFS PDMA
- NRF52840 SPI
- NRF52840 I2C
- NRF52840 RTC
- NVIC interrupt controller
- OpenCores I2C
- OpenTitan I2C
- OpenTitan Flash controller
- OpenTitan LifeCycle controller
- OpenTitan ROM controller
- SAMD5 UART
- SI70xx temperature sensor
- SiFive GPIO
- STM32 GPIO
- STM32 SPI
- STM32 Timer
- STM32F4 IndependentWatchdog
- STM32F4 RTC
- STM32F7 I2C
- STM32F7 USART
- STM32L0 RCC
- STM32G0 DMA