Skip to content

Renode 1.13.3

Compare
Choose a tag to compare
@PiotrZierhoffer 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 and TrackVectorConfiguration 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