| Renode changelog |
| ================ |
| |
| This document describes notable changes to the Renode framework. |
| |
| 1.15.0 - 2024.03.18 |
| ------------------- |
| |
| Added architecture support: |
| |
| * initial support for ARMv7-R and Cortex-R8, verified with ThreadX and Zephyr |
| * initial support for Cortex-A55 |
| * initial support for Cortex-M23 and Cortex-M85 |
| * support for RISC-V Bit Manipulation extensions - Zba, Zbb, Zbc and Zbs |
| * support for RISC-V Half-precision Floating Point (Zfh) extension, including vector operations |
| * support for RISC-V Andes AndeStar V5 ISA extension |
| |
| Added and improved platform descriptions: |
| |
| * generic Cortex-R8 platform |
| * Renesas EK-RA2E1 board with R7FA2E1A9 SoC |
| * Arduino Uno R4 Minima platform with Renesas F7FA4M1A SoC |
| * Renesas CK-RA6M5 board with R7FA6M5B SoC, with initial radio support |
| * Renesas EK-RA8M1 board with R7FA8M1A SoC |
| * Renesas R7FA2L1A SoC |
| * Renesas DA14592 SoC |
| * Renesas RZ/T2M-RSK board with RZ/T2M SoC |
| * Gaisler GR712RC SoC with UART, timer, GPIO, FTMC and Ethernet |
| * Gaisler GR716 SoC with UART, timer and GPIO |
| * Gaisler UT32M0R500 SoC with UART, timer and GPIO |
| * NXP S32K388 with UART, timers, watchdog, SIUL2, SPI, Mode entry module and others |
| * NXP LPC2294 SoC with UART, CAN, timer and interrupts support |
| * Xilinx Zynq UltraScale+ MPSoC platform support with single core Cortex-A53, UART, GPIO and I2C |
| * singlecore Cortex-R5 part of Zynq UltraScale+ MPSoC platform with UART, TTC, Ethernet and GPIO |
| * Nuvoton NPCX9 platform support with UART, various timers, SPI, flash and other peripherals |
| * ST Nucleo H753ZI with STM32H753 SoC with a range of ST peripherals |
| * updates to Armv8-A platforms |
| * updates to Ambiq Apollo4 |
| * updates to Xilinx Zynq 7000 |
| * various updates in STM32 platform files |
| |
| Added peripheral models: |
| |
| * ABRTCMC, I2C-based RTC |
| * Altera JTAG UART |
| * Ambiq Apollo4 Watchdog |
| * Arm Global Timer |
| * Arm Private Timer |
| * Arm SP804 Timer |
| * ArmSnoopControlUnit |
| * BCM2711 AUX UART |
| * BME280 sensor |
| * Betrusted EC I2C |
| * Betrusted SoC I2C |
| * Bosch M_CAN |
| * CAN to UART converter |
| * Cadence Watchdog Timer |
| * Gaisler APBUART |
| * Gaisler GPIO |
| * GigaDevice GD32 UART |
| * HS3001 sensor |
| * ICM20948 sensor |
| * ICP10101 sensor |
| * Infineon SCB UART |
| * LINFlexD UART |
| * MB85RC1MT Ferroelectric Random Access Memory |
| * MXIC MX66UM1G45G flash |
| * NPCX FIU |
| * NPCX Flash |
| * NPCX HFCG |
| * NPCX ITIM32 |
| * NPCX LFCG |
| * NPCX MDMA |
| * NPCX Monotonic Counter |
| * NPCX SPIP |
| * NPCX Timer and Watchdog |
| * NPCX UART |
| * NXP LPC CAN |
| * NXP LPC CTimer |
| * NXP LPC USART |
| * OB1203A sensor |
| * PL190 vectored interrupt controller |
| * PL330_DMA (CoreLink DMA-330) Controller |
| * Renesas DA14 DMA peripheral |
| * Renesas DA14 GPIO |
| * Renesas DA14 General Purpose Timer |
| * Renesas DA14 UART |
| * Renesas DA14 I2C |
| * Renesas DA16200 Wi-Fi module |
| * Renesas RA series AGT |
| * Renesas RA series GPIO |
| * Renesas RA series GPT |
| * Renesas RA series ICU |
| * Renesas RA series SCI |
| * Renesas RZ/T2M GPIO |
| * Renesas RZ/T2M SCI |
| * S32K3XX Miscellaneous System Control Module |
| * S32K3XX Periodic Interrupt Timer |
| * S32K3XX Real Time Clock |
| * S32K3XX Software Watchdog Timer |
| * S32K3XX System Integration Unit Lite 2 |
| * S32K3XX System Timer Module |
| * S32K3XX FlexIO stub |
| * S32K3XX Mode Entry Module |
| * SHT45 temperature/humidity sensor |
| * SPI NAND flash |
| * STM32WBA PWR |
| * Samsung K9 NAND Flash |
| * Smartbond UART |
| * Universal Flash Storage (JESD220F) |
| * Universal Flash Storage Host Controller (JESD223E) |
| * XMC4XXX UART |
| * ZMOD4xxx sensor |
| * Zynq 7000 System Level Control Registers |
| |
| |
| 1.14.0 - 2023.08.08 |
| ------------------- |
| |
| Added architecture support: |
| |
| * initial support for ARMv8-A, verified with a range of software, from Coreboot and U-Boot to Linux |
| * initial support for ARMv8-R, verified with U-Boot and Zephyr |
| |
| Added and improved platform descriptions: |
| |
| * generic Cortex-A53 platform, in flavors with GICv3 and GICv2 |
| * generic Cortex-A78 platform |
| * generic Cortex-R52 platform |
| * HiFive Unmatched platform support, with UART, PWM, I2C, GPIO, Ethernet, QSPI and other peripherals |
| * Nucleo WBA52CG with STM32WBA52 |
| * updated OpenTitan and EarlGrey platform to a newer version |
| * various updates in STM32 platform files |
| * translation support for Espressif ESP32 chips |
| |
| Added peripheral models: |
| |
| * ARM GIC, compatible with various specification versions |
| * ARM generic timer |
| * CMSDK APB UART |
| * Cypress S25H Flash |
| * EFR32xG2 I2C |
| * EFR32xG2 RTCC |
| * EFR32xG2 UART |
| * Marvell Armada Timer |
| * MXC UART |
| * OMAP Timer |
| * OpenTitan Entropy Distribution Network |
| * Quectel BC66 |
| * Quectel BG96 |
| * SI7210 Temperature sensor |
| * SPI multiplexer |
| * STM32F4 CRC |
| * STM32F4 Flash |
| * STM32H7 Flash |
| * STM32WBA Flash |
| * STM32H7 Hardware Semaphore |
| * STM32H7 SPI |
| * STM32WBA SPI |
| * STM32WBA ADC |
| * Synopsys DWC Ethernet QoS model, along with Linux-based tests |
| * TMP108 Temperature sensor |
| |
| Added demos and tests: |
| |
| * Cortex-A53 and Cortex-A78 running Coreboot, ATF and Linux |
| * Zephyr running echo_client demo on STM32F7-disco with Quectel BG96 |
| * basic Cortex-A53 Zephyr ``hello-world`` test and sample |
| * additional Zephyr tests for Cortex-A53: ``synchronization``, ``philosophers``, kernel FPU sharing |
| * seL4 Adder Sample test for Cortex-A53 |
| * range of Zephyr tests for Cortex-R52, along with custom-made, synthetic tests |
| * precise pausing tests for LED and terminal tester |
| |
| Added features: |
| |
| * renode-test allows to run tests with a specified tag via the ``--include`` switch |
| * DPI interface for external HDL simulators, supporting AXI4 interface |
| * portable package creation on dotnet |
| * option to have Robot test pause execution deterministically after a match in various testers: UART, LED, log |
| * duty cycle detection in LED tester |
| * option to load files (e.g. raw binaries, hex files) to different localizations, like memories |
| * support for relative paths in REPL file ``using`` directive |
| * MPU support for Cortex-M |
| * ``FAULTMASK`` register in Cortex-M |
| * support for Trace Based Model performance simulator by Google |
| * read and write hooks for peripherals |
| * DPI interface support for co-simulating with RTL, with initial support for AXI4 bus |
| * build.sh ``--profile-build`` switch to enable easier profiling of translation libraries |
| * mechanism for progressing virtual time without executing instructions |
| * support for subregions in Cortex-M MPU |
| * support for FPU exceptions for Cortex-M |
| * quad word (64-bit) peripherals API |
| * ``CSV2RESD`` tool, for easy generation of RESD files |
| * automatic selection of port used to communicate between Renode and Robot |
| * option to pause emulation of Robot keywords |
| * support for NMI interrupts in RISC-V |
| * option to save Renode logs for all tests |
| * ``Execute Python`` keyword in Robot tests |
| |
| Changed: |
| |
| * GDB interacts with Renode much faster |
| * Renode now uses Robot Framework 6.0.2 for testing (with an option to use other versions at your own risk) |
| * RESD format now accepts negative ``sampleOffsetTime`` |
| * HEX files loader now supports extended segment address and start segment address sections |
| * GDB ``autostart`` parameter now starts the simulation as soon as the debugger is connected |
| * VerilatorIntegrationLibrary is now part of Renode packages |
| * improved performance of the virtual time handling loop |
| * improved parsing of RESD files |
| * improved memory allocation mechanism to allocate memory regions larger than 2GiB |
| * support for mapping memories on very high offsets |
| * improved GDB connection robustness |
| * exposed Monitor as a variable in Python hooks |
| * improved the GDB compare helper script |
| * improved handling of input files in TFTP server module |
| |
| Fixed: |
| |
| * cursor blinking in terminal on Windows |
| * crash when NetworkServer tried to log an invalid packet |
| * race condition when trying to pause during the machine startup |
| * platform serialization when CPU profiler is enabled |
| * limit buffer behavior in verilated peripherals when they are reset |
| * registration is no longer taken into account when looking for dependency cycles in REPL files |
| * exception when issuing a DMA transaction during register access |
| * reported PC on exception when executing vector instructions in RISC-V |
| * several RISC-V vector instructions handling, e.g. ``vfredosum``, ``vsetivli`` and ``vector_fpu`` |
| * invalid instruction block exiting on RISC-V |
| * handling of ``c.ebreak`` instruction in RISC-V, allowing for software breakpoints |
| * building fixes on dotnet |
| * removing of IO access flag from memory pages |
| * invalidation of dirty translation blocks |
| * handling of MMU faults on address translations |
| * serialization of RESD files |
| * automatic creation of TAP interface on Linux |
| * ARM LDA/STL instructions decoding |
| * handling of platforms containing both 32- and 64-bit CPUs |
| * file permissions in .NET portable packages |
| * handling of non-resettable register fields |
| * several RISC-V vector instructions |
| * handling of the context menu in the Monitor window |
| * support for Cortex-M4F in LLVMDisassembler |
| * packets matching method in NetworkInterfaceTester |
| * address calculations in DMA engine |
| * custom build properties handling in Renode build script |
| * handling of time reporting and empty test cases in renode-test |
| |
| Improvements in peripherals: |
| |
| * AmbiqApollo4 Timer |
| * ArrayMemory |
| * AS6221 Temperature sensor |
| * AT Command Modem |
| * AT91 Timer |
| * Cadence UART |
| * Cortex-M Systick |
| * EF32MG12 LDMA |
| * Ibex |
| * LIS2DW12 Accelerometer |
| * LiteX I2C |
| * LSM6DSO |
| * MAX30208 Temperature sensor |
| * MAX32650 GPIO |
| * MAX32650 I2C |
| * MAX32650 RTC |
| * MAX32650 SPI |
| * MAX32650 Timer |
| * MAX32650 TPU |
| * MAX32650 WDT |
| * MAX86171 AFE |
| * nRF52840 SPI |
| * nRF52840 I2C |
| * nRF52840 GPIO |
| * OpenTitan HMAC |
| * OpenTitan PLIC |
| * OpenTitan ROM |
| * OpenTitan OTP |
| * OpenTitan Key Manager |
| * OpenTitan Flash |
| * OpenTitan Reset Manager |
| * OpenTitan KMAC |
| * OpenTitan CSRNG |
| * OpenTitan Alert Handler |
| * OpenTitan Timer |
| * OpenTitan OTBN |
| * PL011 UART |
| * Quectel BC660K |
| * SAMD5 UART |
| * SiFive GPIO |
| * Silencer |
| * STM32 DMA |
| * STM32G0 DMA |
| * STM32 EXTI, with specific implementations for STM32F4, STM32H7 and STM32WBA |
| * STM32 GPIO |
| * STM32F7 I2C |
| * STM32L0 LPTimer |
| * STM32L0 RCC |
| * STM32H7 RCC |
| * STM32F4 RTC |
| * STM32 SPI |
| * STM32 Timer |
| * STM32F7 USART |
| |
| 1.13.3 - 2023.02.22 |
| ------------------- |
| |
| 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 |
| |
| 1.13.2 - 2022.10.03 |
| ------------------- |
| |
| Added platforms: |
| |
| * Ambiq Apollo4 with ADC, GPIO, IO Master, System Timer, RTC, UART and other peripherals |
| * STM32L07x with ADC, GPIO, I2C ,RTC, SPI, Timer, USART, IWDG, DMA and other peripherals (RCC) |
| * verilated Ibex core with the rest of the platform natively in Renode |
| |
| Added models: |
| |
| * MAX32650 TPU with CRC32 support |
| * basic support for MAX32650 ADC |
| * MAX32650 SPI |
| * MAX32650 Watchdog |
| * LSM6DSO IMU |
| * EFR32xG12DeviceInformation |
| * External CPU stub as a base for integration of other CPU simulators |
| * OpenTitan SPI host |
| * OpenTitan I2C host |
| * OpenTitan Alert Handler, along with updates to other OpenTitan peripherals with alert functionality |
| * new algorithms and cores in AthenaX5200 |
| * EFR32MG1 BitAccess |
| * i.MX RT GPTimer |
| |
| Added demos and tests: |
| |
| * STM32L072 Zephyr shell_module demo and test |
| * Ambiq Apollo4 Hello World example from Ambiq Suite and various peripheral tests |
| * MAX32652 EVKIT Hello World example from MAX32652 SDK |
| * FPGA ISP co-simulation demo and test |
| |
| Added features: |
| |
| * experimental support for .NET 6 framework |
| * guest-application profiling for ARM |
| * Interrupt hooks for ARM |
| * BLE sniffer support for Wireshark |
| * Perfetto profiler format support in guest-application profiling, along with process detection on RISC-V |
| * binary output format of execution tracer, along with a Python helper script to decode data |
| * new Run Until Breakpoint keyword for Robot tests |
| * verbose mode in Robot tester |
| * region of interest support in FrameBufferTester |
| * framework for providing timestamped sensor data |
| * WishboneInitiator bus in Verilator support |
| * nightly “sources” package with the whole content required for building Renode offline |
| |
| Organizational improvements: |
| |
| * added GitHub issue and PR templates, along with an `issue reproduction repository <https://github.com/renode/renode-issue-reproduction-template>`_ |
| updated contributing instructions |
| |
| Changed: |
| |
| * added mapping for l2ZeroDevice in PolarFire SoC |
| * added caching of canvas bounds in TermSharp for improved performance |
| * restructured height map storage in TermSharp |
| * updated descriptions of SLTB004A and EFR32MG12 targets |
| * restructured CPU-related class hierarchy |
| * disabled TCG optimizations and liveness analysis for improved performance |
| * updated OpenTitan supported version, changing a range of OpenTitan peripherals |
| * major refactor of VerilatorIntegrationLibrary, with new interfaces and code restructuration |
| * updated symbol exclusion rules not to include $x symbol names in SymbolLookup |
| * disabled TLB flushing in RISC-V on mode change for improved performance |
| * allowed more than one page permission at a time in RISC-V, reducing the number of address translations |
| * improved output of Robot tests with timestamps and explicit test results after each suite |
| * SD card controller now supports more card types |
| |
| Fixed: |
| |
| * PMP implementation for RISC-V |
| * several RISC-V vector instructions including floating-point vector instructions |
| * 'Take Screenshot' button in VideoAnalyzer |
| * non-blocking CPU stepping |
| * crash when loading file without sufficient permissions |
| * external MMU not respecting the `no_page_fault` flag |
| * issues with concurrent creation of config file |
| * indeterminism of sel4_extensions test |
| * GDB Stub not issuing an error when trying to add zero-sized watchpoint |
| * handling of watchpoints on big-endian platforms |
| * portability of MSBuild calls across different host systems |
| * PolarFire SoC Watchdog test |
| * serialization of FrameBufferTester |
| * translation cache flushing after reset |
| |
| Improvements in peripherals: |
| |
| * Cortex-M NVIC |
| * HPSHostController |
| * NRF52840 Watchdog |
| * BMC050 accelerometer |
| * MAX32650 RTC |
| * MAX32650 GCR |
| * STM32F7 I2C |
| * STM32G0 DMA |
| * Micron MT25Q |
| * i.MX RT GPIO |
| |
| |
| 1.13.1 - 2022.07.23 |
| ------------------- |
| |
| Added platforms: |
| |
| * MAX32652 with UART, GPIO, Timer, PWRSEQ, GCR and RTC |
| * Thunderboard Sense 2 (SLTB004A) based on EFR32MG12 |
| |
| Added models: |
| |
| * STM32G0 DMA controller |
| * OpenTitan CSRNG |
| * OpenTitan OTP controller |
| * OpenTitan Life Cycle controller |
| * USBserialport_S3B model for Qomu |
| * SAMD5 UART |
| * SAMD20 UART |
| * AES and Message Authentication cores for AthenaX5200 |
| * LiteX MMCM controller in the 32-bit CSR width configuration |
| * LiteX Framebuffer in the 32-bit CSR width configuration |
| |
| Added demos: |
| |
| * Qomu running Zephyr shell |
| * SLTB004A running Gecko SDK baremetal CLI sample |
| |
| Added features: |
| |
| * guest-application profiling support |
| * TAP integration on Windows |
| * interrupt end hooks for RV64 |
| * option for gathering execution metrics when running tests |
| * tests for logging from a sub-object |
| * PolarFireSoC Watchdog tests |
| * the disassembly output format to the Execution Tracer module |
| * option for filtering messages by log level in the log tester |
| |
| Changed: |
| |
| * improved support for ARMv8-M registers |
| * added option to compare raw values of selected registers in the gdb_compare script |
| * implemented generation of guest-host PC mappings info on block translation |
| * added `Frequency` property to ComparingTimer |
| * monitor-tests: Use virtual time in the pause test |
| * added static flushing to the logger |
| * included missing tools (like gdb_compare, sel4_extensions) in all packages |
| * added precompilation of Python scripts before running (to detect errors early) |
| * added user-specified file paths handling |
| * added filtering of ANSI escape codes from Robot tests keyword results |
| * added option to enable profiler globally in EmulationManager |
| * added command to disable automatic symbol switching in seL4 GDB extensions |
| * improved RISC-V kernel breakpoints support in seL4 GDB extensions |
| * code generator is now compiled with more aggressive optimizations |
| * changed the CPU class structure, allowing for core implementations not based on translation libraries |
| * updated the Nexys Video platform description and demo binaries |
| |
| Fixed: |
| |
| * 'Should Output Voice Data' test for QuickFeather |
| * various RISC-V vector instructions |
| * register values accessing in RISC-V |
| * help button behavior in AdvancedLoggerViewer |
| * concurrent access to Pixel Manipulation Tools |
| * clock residuum handling, e.g. improving the behavior of the BLE demo |
| * serialization of externals and GDB stub |
| * stacktrace reporting when exception is rethrown on the native-managed boundary |
| * packaging of license files from dependency projects |
| * exception handling on EnsureTypeIsLoaded |
| * various fixes in file handling layer |
| * improved handling of variables assigned to variables in the Monitor |
| * handling of multiple CPUs with different configurations in GDB |
| * STM32F413 RCC address |
| * DDR mapping in PolarFire SoC |
| * TCM memory size in miv_rv32 |
| |
| Improvements in peripherals: |
| |
| * NVIC |
| * STM32F4_RCC |
| * STM32_ADC |
| * STM32_GPIOPort |
| * MiV_CoreGPIO |
| * GigaDevice_GD25LQ |
| * MC3635 |
| * SynopsysEthernetMAC |
| * LiteSDCard_CSR32 |
| * ResetPin |
| * HPSHostController |
| |
| 1.13.0 - 2022.04.29 |
| ------------------- |
| |
| Added platforms: |
| |
| * Xtensa sample controller stub |
| * MIMXRT1064-EVK |
| * STM32L552 |
| * ARVSOM |
| * BeagleV StarLight |
| * Sparc GR716 |
| * RISC-V virt |
| * S32K118 with LPIT, LPTMR, GPIO, Clock generator mock |
| * STM32G0 |
| * STM32F412 |
| * STM32H743 |
| * MIV_RV32 |
| |
| Added models: |
| |
| * new models for i.MX RT 1064: PWM, timer, ADC, LPSPI, Flex SPI, TRNG |
| * new models for nRF52840: RNG, Radio, Watchdog, ECB, PPI infrastructure |
| * new models for STM32: ADC, slave CAN, PWR, watchdog |
| * new models for OpenTitan: flash controller, timer, PLIC, HMAC, AES, KMAC, ROM controller, Key manager, Reset manager |
| * new models for Polarfire SoC: system services, user crypto features (RNG and RSA), Mustein GPU and various fixes to platform description |
| * new model for Zynq 7000: XADC |
| * new generic models: |
| |
| * generic SPISensor |
| * HostCamera device |
| * TrivialUart |
| * HPSHostController - fake I2C host master device for communicating with simulated devices |
| * GigaDevice_GD25LQ - initial model |
| * VirtIO block device model |
| |
| Added demos: |
| |
| * Murax SoC with verilated UART with simple echo demo |
| * LiteX with verilated CFU running CFU Playground demo |
| * Zynq with verilated FastVDMA running Linux |
| * NRF52840 BLE demo running Zephyr ``central_hr`` and ``peripheral_hr`` samples |
| * Leon3 running Zephyr shell |
| * GR716 running Zephyr shell |
| * Xtensa sample controller running Zephyr "Hello World" sample |
| |
| Added core features: |
| |
| * RISC-V: vector extension 1.0 support |
| * Xtensa architecture support |
| * RISC-V: access to proper set of registers + custom registers from GDB |
| * RISC-V: support for Custom Function Unit extensions |
| * WFE support on ARM cores |
| * uninterruptible debugging option to all architectures |
| * floating point support to Cortex-M platforms |
| * basic support for ARM 64-bit registers |
| * Cortex-M33 stub |
| * Sparc: added CSR register and exposed FSR register |
| |
| Added features: |
| |
| * primary selection copy support in TermSharp |
| * support for asciinema UART dumps |
| * support for native library communication in verilated peripherals |
| * APB3 bus implementation for VerilatorIntegrationLibrary |
| * support for loading HEX files |
| * video capture mechanism with host camera integration |
| * startup parameter for specifying the config file |
| * register access keywords for Robot Framework integration |
| * keyboard input in VideoAnalyzer on Windows |
| * option to stop on first error when running tests |
| * option to save failed test logs |
| * opcodes counting mechanism, along with RISC-V opcodes files parser |
| * execution tracing mechanism |
| * Wireshark support on Windows |
| * seL4-aware GDB debug support |
| * BLE wireless medium including Wireshark support |
| * gdb_compare script allowing to compare execution of two GDB instances, for example one connected to Renode and one to hardware |
| * support for vector registers in GDB |
| * CPU Id parameter in ARM cores |
| * option to control timestamp format and visibility in LoggingUartAnalyzer |
| * option to skip library fetch during build |
| * option to flush terminal history when connecting via socket |
| * support for external, bus-connected MMU |
| |
| Changed: |
| |
| * bumped Robot Framework version to ``4.0.1`` |
| * RobotFramework: log entries keywords now accept regex patterns |
| * STM: renamed some UART ports to USART |
| * ZynqEthernet: removed and replaced with CadenceGEM |
| * Zedboard: updated demo to Linux 5.10 |
| * reworked CPU halting |
| * added CRC to packets sent by NetworkServer |
| * RISC-V: added logs on unhandled CSR accesses |
| * improved build time by changes to TermSharp project organization |
| * various updates to STM32F746 CPU definition |
| * added limit to displayed command history in AntShell |
| * moved output of Robot tests to current directory when running on Windows |
| * XWT events are now queued in GTK engine |
| * added option to reconnect to SocketServerProvider |
| * explicitly used XZ compression with pacman |
| * added option to limit function names logging to unique entries, vastly improving performance |
| * removed dependency to realpath from build and run scripts |
| * removed dependency to ZeroMQ |
| * renamed EOSS3_SPIMaster to DesignWare_SPI |
| * dropped Fedora version indicator from packages |
| * optimized RISC-V PMP handling |
| * reworked PlatformLevelInterruptController to operate on contexts instead of targets |
| * added O/H/W write commands to ArduinoLoader |
| * enabled TLS 1.1 and TLS 1.2 in CachingFileFetcher |
| * improved multicore debugging support in GDB |
| * allowed to reuse testers in Robot tests |
| * added option to safely include the same C# file multiple times during one Renode run |
| * added ``tests.yaml``, containing all Robot tests, to all packages |
| * add debug mode for all architectures disabling interrupts when stepping over guest code |
| * simplified fixture selection when running tests |
| * allowed unaligned memory access by default in IbexRiscV32 |
| * added GDB support for VS bits in MSTATUS register |
| * added interrupts support in verilated peripherals |
| * added support for CPU registers wider than 64-bits in Renode (C# part, not tlibs) |
| * improved and unified the --plain mode handling |
| * refactored the disassembly handling subsystem |
| * improved GDB packets handling performance |
| * added option to control serialization mode in the configuration file |
| * added optional compiled files cache |
| * improved handling of exceptions at the C/C# boundary |
| * flattened the TimeFramework structure to increase performance |
| * improved performance of handling of truncated translation blocks |
| * improved performance of TermSharp height map calculations and row handling |
| * added several tlib performance optimizations |
| * added the synchronized timers emulation mode |
| * added support for the flow control in UART |
| * added support for bright colors to TermSharp |
| * added basic VSCode launch configurations for Renode on Mono |
| * unified ``renode`` and ``renode-test`` scripts names across all packages |
| * added support for per-core peripheral registration |
| * added option to the build script to export the build directory |
| * improved performance of ELF reloading |
| * updated Conda build scripts to better work with the latest Renode, improved Windows support |
| * added option to configure step for clock entries |
| * improved startup performance by skipping analysis of uninteresting assemblies in TypeManager |
| * tied the AutoRepaintingVideo refresh frequency to the virtual time flow |
| * enabled passing the -e parameter to Renode even when providing a script file parameter |
| * added option to preserve temporary files from Robot tests |
| * added a source of a log message to the log tester |
| * Provides and Requires keywords now use state snapshots |
| |
| Fixed: |
| |
| * CPU endianness handling in GDB register accesses |
| * SPARC WRASR and CASA instructions |
| * SPARC registers handling in GDB |
| * memory invalidation on writes in MappedMemory |
| * ARM instructions: ASX, SAX, SUB16 and UQSUB |
| * symbol name mangling on MacOS |
| * updating PC before raising MMU exception on RISC-V |
| * unaligned ld_phys handling, resolves problems of possible memory corruption |
| * possible race conditions in TerminalTester |
| * IO access path selection in tlib |
| * support for big-endian peripherals |
| * running tests in sequential mode |
| * HiFive Unleashed platform description including PHY advertisement and RAM size |
| * Ethernet PHY advertisement on the Zedboard platform |
| * cross-endian bus accesses |
| * endian conversion wrappers for untranslated accesses |
| * registers mapping of fflags/frm/fcsr, resolving GDB registers XML generation |
| * running tests when the build phase failed |
| * it-status unit test |
| * added LibLLVM to all packages |
| * whitespace handling in resc scripts on Windows |
| * occasional assertion fail when loading ELF files |
| * setting breakpoints on virtual addresses |
| * MicroPython tests |
| * installation on Linux with a separate /opt mount point |
| * demangling symbols from the anonymous namespace |
| * SoftFloat's type conversion functions |
| * illegal instruction exception on wrong CSR access on RISC-V |
| * support for quad words access on the system bus |
| * possible memory leak in tlib |
| * improved precision of calculations in BasicClockSource and ComparingTimer Fixed |
| * support for various versions of standard libraries on Linux hosts (libdl, libutil, etc) |
| * libc dependencies for the Renode portable package |
| * invalidation of translation blocks on writes |
| * handling big offsets in MappedMemory |
| * ARM-M PRIMASK and xPSR handling |
| * PowerPC registers listing in GDB |
| * improved tlib debugging by not omitting the frame pointer on debug build |
| * fixed sfence.vma instruction implementation for RISC-V |
| * potential math errors (underflows/overflows) when handling the virtual time |
| * handling input redirected from file in the console mode |
| * prevented GdbStub from sending telnet config bytes on new connections |
| * serialization of paused state |
| * ad-hoc compiler support in the portable package |
| * flushing of log tester |
| * UartPtyTerminal serialization |
| * reporting the exit code in renode-test |
| * RISC-V custom CSRs handling |
| * resetting of a machine from the context of another machine |
| * thread-safety of interrupt handling mechanism |
| * occasional dependency fail on static constructors |
| |
| Improvements in peripherals: |
| |
| * CoreLevelInterruptor |
| * PlatformLevelInterruptController |
| * NVIC |
| * CortexAPrivateTimer |
| * BMA180 |
| * CC1200 |
| * Micron_MT25Q |
| * SynopsysEthernetMAC |
| * K6xF_Ethernet |
| * CadenceGEM |
| * OV2640 |
| * GaislerMIC |
| * PL011 |
| * EFR32_USART |
| * LowPower_UART |
| * OpenTitan_UART |
| * OpenTitan_GPIO |
| * IMXRT_ADC |
| * IMXRT_LPSPI |
| * LPUART |
| * STM32F7_I2C |
| * STM32_UART |
| * STM32 RTC |
| * STM32_TIMER |
| * STM32DMA |
| * STMCAN |
| * EXTI |
| * NRF52840_CLOCK |
| * NRF52840_Timer |
| * NRF52840 GPIO |
| * LiteX_I2S |
| * Litex_GPIO |
| * MPFS_PDMA |
| * MPFS_DDRMock |
| * Gaisler_GPTimer |
| |
| 1.12.0 - 2021.04.02 |
| ------------------- |
| |
| Added: |
| |
| * STM32F072 platform, with the STM32F072b Discovery board |
| * i.MX RT1064 platform |
| * NRF52840 platform, with Arduino Nano 33 BLE Sense board |
| * OpenTitan EarlGrey RISC-V platform with a range of OpenTitan peripherals |
| * CV32E40P-based RISC-V platform with many PULP peripherals |
| * LiteX with RISC-V Ibex CPU platform support |
| * CrossLink-NX evaluation board |
| * ice40up5k-mdp-evn board |
| * Zephyr-based test suite for QuickLogic QuickFeather with EOS S3 |
| * Tock demo on LiteX/VexRiscv and STM32F4 |
| * Mbed demo on STM32F7 |
| * integration with Arduino IDE and Arduino CLI |
| * Python Standard Library, to be used with Python hooks and scripts in Renode |
| * support for images in the Monitor, along with possibility to take framebuffer screenshots. This also works with certain terminal emulators, like iTerm2, when in headless mode |
| |
| * option to connect UART to the running console, improving headless capabilities |
| |
| * option to run Renode Monitor directly in console, overlapped with logs, using the ``--console`` command line switch |
| |
| * support for virtual addressing in GDB |
| * option to combine multiple interrupt or GPIO signals into one, using logical OR, directly in REPL files |
| * multi-bus support and AXI4 support (both as an initiator and a receiver) in co-simulation with Verilator |
| * ability to send synthetic network frames in Robot tests |
| * various sensor models: MC3635, LSM330, LSM303DLHC, LSM9DS1, LIS2DS12, BMP180 |
| * seven-segment display model |
| * support for camera interfaces for nRF52840 and other platforms, along with a basic HM01B camera model |
| * support for sound data via PDM and I2S interfaces in nRF52840 and EOS S3 |
| * 32-bit CSR versions of various LiteX peripherals |
| * ``window-height`` and ``window-width`` Renode config file options |
| |
| Changed: |
| |
| * ad hoc C# compilation now uses the same, bundled compiler on all OSes, also allowing for compilation in the portable Linux package |
| * bumped the officially supported Ubuntu version to 20.04 |
| * added execution metrics analyzer to all Renode packages |
| * verilated peripherals can now also be used on Windows and on macOS |
| * verilated UART peripherals have updated protocol message numbers, requiring them to be recompiled to work with the latest Renode version |
| * moved to use openlibm instead of libm on Linux, improving portability |
| * GDB can now access memory across pages in a single access |
| * switched the unit testing framework from NUnit2 to NUnit3 |
| * reduced the number of transitions between the C and C# code, improving performance |
| * improved performance of peripheral writes |
| * tests print the run summary at the end of the output, making it easier to spot errors |
| * revamped handling of the vectored interrupt mode for RISC-V cores |
| * RISC-V CPUs can now optionally allow for unaligned memory accesses |
| * updated the default privileged architecture version for VexRiscv CPU |
| * VexRiscv can now use standard RISC-V interrupt model |
| * changed the flow of NVIC interrupt handling, significantly improving performance |
| * STM32F7 DMA2D and LTDC now support more pixel blending modes |
| * reimplemented and modernized several STM32 peripherals |
| * improved the model of K6xF Ethernet controller |
| * LiteSDCard model now supports DMA interface |
| * EXTI controller now has a configurable number of output lines |
| * improved handling of dummy bytes in MPFS QSPI |
| |
| Fixed: |
| |
| * tests running from installed Renode packages creating output files in forbidden locations |
| * serialization of NetworkInterfaceTester and UARTBackend |
| * possible non-deterministic behavior of UART backend in tests |
| * occasional file sharing violation in PosixFileLocker |
| * Renode printing out colors when in plain mode |
| * non-determinism in the button model |
| * time drift caused by unreported virtual ticks and improper instruction counting |
| * crash in TermsharpProvider when running on Windows |
| * invalid default frequency for STM32L1 |
| |
| 1.11.0 - 2020.10.22 |
| ------------------- |
| |
| Added: |
| |
| * support for generating execution metrics, covering information like executed instructions count, memory and peripheral accesses, and interrupt handling |
| * infrastructure for reporting supported CPU features to GDB |
| * tests for Icicle Kit with PolarFire SoC |
| * ``--debug-on-error`` option for ``renode-test`` allowing interactive debugging of failed Robot tests |
| * ``lastLog`` Monitor command displaying ``n`` last log messages |
| * ``currentTime`` monitor command with information about elapsed host and virtual time |
| * ``WriteLine`` UART helper method to feed strings from the Monitor or scripts |
| * support for non-base RISC-V instruction sets disassembly |
| * support for custom Robot test results listeners |
| * support for Python-based implementation of (stateful) custom CSRs and custom instructions in RISC-V |
| * option to control RISC-V CSR access validation level interactively |
| * dummy support for data cache flush instruction in VexRiscv |
| * 64-bit decrementer support in PowerPC |
| * nRF52840 RTC model |
| * STM32F4 RTC model |
| * STM32F4 RCC stub model |
| * unified timer model for STM32F4 and STM32L1 platforms |
| * support for ATAPI CD-ROM |
| * burst read support in OpenCores I2C |
| |
| Changed: |
| |
| * time flow settings in Icicle Kit script now ensure full determinism |
| * all testers (for UART, LED, network, sysbus accesses and log messages) now rely on virtual time instead of host time and accept floating point timeouts |
| * portable package now includes requirements.txt file |
| * skipped tests do not generate save files anymore |
| * ``Clear`` Monitor command does not remove current working directory from searched paths |
| * WFI handling in RISC-V is simplified, improving performance on sleepy systems |
| * translation block fetch logger messages are now logged with Info instead of Debug level |
| * Cortex-M CPUs now reports their registers to GDB |
| * several infrastructural changes in the PCI subsystem |
| * STM32L1 oscillators are now all reported as ready |
| |
| Fixed: |
| |
| * Renode logo appearing in UART analyzer windows when running without Monitor |
| * logs not being fully written out when terminating Renode |
| * keyboard event detection in framebuffer window when no pointer device is attached |
| * crash when the logger console reports width equal to 0 |
| * crash of ad-hoc compilation on Renode portable. Note that this still requires a C# compiler to be available on the host system |
| * crash when connecting GDB with the first core not being connected |
| * occasional crash when providing incorrect CLI arguments |
| * invalid disassembly of 64-bit RISC-V instructions |
| * crash on machine reset when using custom CSRs in RISC-V |
| * handling of multi-byte reads in LiteX I2C model |
| * handling of images with unaligned size in USB pen drive |
| * invalid LED connections in STM32F4 |
| |
| 1.10.1 - 2020.07.30 |
| ------------------- |
| |
| This is a hotfix release overriding 1.10.0. |
| |
| Fixed: |
| |
| * crash on Windows when accessing high memory addresses |
| * installation instructions in README |
| |
| 1.10.0 - 2020.07.28 |
| ------------------- |
| |
| Added: |
| |
| * support for the PolarFire SoC-based Icicle Kit platform, with a demo running Linux |
| * experimental support for OpenPOWER ISA |
| * support for NXP K64F with UART, Ethernet and RNG |
| * basic support for Nordic nRF52840 |
| * Microwatt platform, with Potato UART, running MicroPython or Zephyr |
| * LiteX platform with a 4-core VexRiscv in SMP |
| * LiteX demo running Microwatt as a CPU |
| * LiteX demo with VexRiscv booting Linux from the SD card |
| * LiteX demo with VexRiscv showing how to handle input and output via I2S |
| * LiteX MMCM model, I2S model and SD card controller model |
| * several peripheral models for QuickLogic EOS S3: ADC, SPI DMA, Packet FIFO, FFE etc |
| * ADXL345 accelerometer model |
| * PAC1934 power monitor model |
| * PCM encoder/decoder infrastructure for providing audio data to I2S devices |
| * modular network server allowing to easily add server components to the emulation without a host-to-guest connection |
| * built-in TFTP server module |
| * file backend for UARTs, allowing to send output directly to a file (``uart CreateFileBackend``) |
| * ``alias`` Monitor command |
| * ``console_log`` Monitor command to simply print to the log window without level filtering |
| * ``--no-gui`` build option to build without graphical dependencies |
| * option to define an average cycles count per instruction, to be used by CPU counters |
| * code formatting rules for translation libraries, to be used with Uncrustify |
| |
| Changed: |
| |
| * Renode is now able to be compiled with ``mcs``. This means that you can use your distribution's Mono package instead of the one provided by mono-project.com, as long as it satisfies the minimum version requirement (currently Mono 5.2) |
| * the default log level is now set to ``INFO`` instead of ``DEBUG`` |
| * all PolarFire SoC peripherals are now renamed from PSE_* to MPFS_*, to follow Microchip's naming pattern |
| * major rework of the SD card model, along with the added SPI interface |
| * RI5CY core can now be created with or without FPU support |
| * STM32 and SAM E70 platforms now have verified ``priorityMask`` in NVIC |
| * Cortex-M based platforms can now be reset by writing to NVIC |
| * easy way to update timer values between synchronization phases, significantly improving the performance of polling on timers |
| * tests are now able to run in parallel, using the ``-j`` switch in the testing script execution |
| * the pattern for download links in scripts for binaries hosted by Antmicro has been changed |
| * portable package now includes testing infrastructure and sample tests |
| * the LLVM-based disassembly library is now rebuilt, using less space and being able to support more architectures on all host OSes |
| * the C++ symbol demangling now relies on a `CxxDemangler <https://github.com/southpolenator/CxxDemangler>`_ library, instead of libstdc++ |
| * failed Robot tests will now produce snapshots allowing users to debug more easily |
| * SVD-based log messages on reads and writes are now more verbose |
| * Terminal Tester API has changed slightly, allowing for easier prompt detection, timeout control etc. |
| |
| Fixed: |
| |
| * crash when running tests with empty ``tests.yaml`` file |
| * crash when Renode is unable to find the root directory |
| * crash when loading broken or incompatible state snapshot with ``Load`` |
| * several issues in the PPC architecture |
| * ``mstatus`` CSR behaviour when accessing FP registers in RISC-V |
| * PMP napot decoding in RISC-V |
| * evaluation of the IT-state related status codes in ARM CPUs |
| * invalid setting of CPUID fields in x86 guests |
| * PolarFire SoC platform description and various models: CAN, SPI, SD controller, etc. |
| * ``ODR`` register behavior in STM32F1 GPIO port |
| * ``State changed`` event handling in LED model |
| * invalid disposal of the SD card model, possibly leading to filesystem sharing violations |
| * some cursor manipulation commands in TermSharp |
| * performance issues when hitting breakpoints with GDB |
| * on the fly compilation of "*.cs" files in the portable Renode package |
| * Mono Framework version detection |
| * upgrading Renode version on Windows when installed using the ``msi`` package |
| * error message when quitting Renode on Windows |
| * running tests from binary packages |
| * support for testing in Conda Renode package |
| * other various fixes in Conda package building |
| |
| 1.9.0 - 2020.03.10 |
| ------------------ |
| |
| Breaking changes: |
| |
| * the Renode configuration directory was moved to another location. |
| |
| The directory is moved from ``~/.renode`` on Unix-like systems and ``Documents`` on Windows to |
| ``~/.config/renode`` and ``AppData\Roaming\renode`` respectively. To use your previous settings |
| and Monitor history, please start Renode 1.9 and copy your old config folder over the new one. |
| |
| Added: |
| |
| * support for RISC-V Privileged Architecture 1.11 |
| * EOS S3 platform, with QuickFeather and Qomu boards support |
| * EFR32MG13 platform support |
| * Zolertia Firefly dual radio (CC2538/CC1200) platform support |
| * Kendryte K210 platform support |
| * NeTV2 with LiteX and VexRiscv platform support |
| * EFR32 timer and gpcrc models |
| * CC2538 GPIO controller and SSI models |
| * CC1200 radio model |
| * MAX3421E USB controller model |
| * LiteX SoC controller model |
| * support for Wishbone bus in verilated peripherals, exemplified with the ``riscv_verilated_liteuart.resc`` sample |
| * one-shot mode in AutoRepaintingVideo allowing display models to control when they are refreshed |
| * ``GetItState`` for ARM Cortex-M cores allowing to verify the current status of the IT block |
| * scripts to create Conda packages for Linux, Windows and macOS |
| * requirements.txt with Python dependencies to simplify the compilation process |
| * configuration option to collapse repeated lines in the log - turn it to false if you observe strange behavior of the log output |
| |
| Changed: |
| |
| * VexRiscv now supports Supervisor level interrupts, following latest changes to this core |
| * PolarFire SoC script now has a sample binary, running FreeRTOS with LwIP stack |
| * the output of Robot test is now upgraded to clearly indicate time of execution |
| * NetworkInterfaceKeywords now support wireless communication |
| * exposed several RISC-V registers to the Monitor |
| * VerilatedUART now supports interrupts |
| * tests file format was changed to yaml, thus changing tests.txt to tests.yaml |
| * test.sh can now run NUnit tests in parallel |
| * ``./build.sh -p`` will no longer build the portable Linux package as it requires a very specific Mono version |
| * path to ``ar`` can now be specified in the properties file before building |
| * MinGW libraries are now compiled in statically, significantly reducing the Windows package size |
| |
| Fixed: |
| |
| * crash when trying to set the underlying model for verilated peripheral in REPL |
| * crash when copying data from the terminal to clipboard on Windows |
| * crash on loading missing FDT file |
| * crash when starting the GDB server before loading the platform |
| * handling of very long commands via GDB |
| * improper window positioning when running on Windows with a display scaling enabled |
| * exception reporting from running CPUs |
| * flushing of closing LoggingUartAnalyzer |
| * icon installation on Fedora |
| * rebuilding translation libraries when only a header is changed |
| * macOS run scripts bundled in packages |
| * priority level handling in NVIC |
| * COUNTFLAG handling in NVIC |
| * several improvements in Cadence GEM frame handling |
| * FastRead operations in Micron MT25Q flash |
| * PolarFire SoC Watchdog forbidden range handling |
| * offset calculation on byte accesses in NS16550 model |
| * interrupt handling in PolarFire SoC QSPI model |
| * connected pins state readout in PolarFire SoC GPIO model |
| * several fixes in HiFive SPI model |
| * page latch alignment in PolarFire SoC |
| |
| 1.8.2 - 2019.11.12 |
| ------------------ |
| |
| Added: |
| |
| * a sample running HiFive Unleashed with Fomu running Foboot, connected via USB |
| * a sample running MicroPython on LiteX with VexRiscv |
| * vectored interrupts support in RISC-V |
| * ``pythonEngine`` variable is now availalbe in Python scripting |
| |
| Changed: |
| |
| * Renode now requires Mono 5.20 on Linux and macOS |
| * USB setup packets are now handled asynchronously, allowing more advanced processing on the USB device side |
| * additional flash sizes for Micron MT25Q |
| * LiteX_Ethernet has a constant size now |
| |
| Fixed: |
| |
| * problem with halting cores in GDB support layer when hitting a breakpoint - GDB works in a proper all-stop mode now |
| |
| 1.8.1 - 2019.10.09 |
| ------------------ |
| |
| Added: |
| |
| * LiteX with VexRiscv configuration running Zephyr |
| * USB/IP Server for attaching Renode peripherals as a USB device to host |
| * optional NMI support in RISC-V |
| * flash controller for EFR32 |
| * I2C controller for LiteX |
| * SPI controller for PicoRV |
| * framebuffer controller for LiteX |
| * USB keyboard model |
| |
| Changed: |
| |
| * ``-e`` parameter for commands executed at startup can be provided multiple times |
| * ``polarfire`` platform is now renamed to ``polarfire-soc`` |
| * style of Robot Framework result files |
| * MT25Q flash backend has changed from file to memory, allowing software to execute directly from it |
| * improved LiteX on Fomu platform |
| * terminals based on sockets now accept reconnections from clients |
| |
| Fixed: |
| |
| * ``Bad IL`` exceptions when running on Mono 6.4 |
| |
| 1.8.0 - 2019.09.02 |
| ------------------ |
| |
| Added: |
| |
| * support for RI5CY core and the VEGA board |
| * UART and timer models for RI5CY |
| * support for Minerva, a 32-bit RISC-V soft CPU |
| * LiteX with Minerva platform |
| * LiteX with VexRiscv on Arty platform |
| * SPI, Control and Status, SPI Flash and GPIO port peripheral models for LiteX |
| * PSE_PDMA peripheral model for the PolarFire SoC platform |
| * basic slave mode support in PSE_I2C |
| * EtherBone bridge model to connect Renode with FPGA via EtherBone |
| * EtherBone bridge demo on Fomu |
| * RTCC and GPCRC peripheral models for EFR32 |
| * support for deep sleep on Cortex-M cores |
| * option of bundling Renode as an ELF executable on Linux |
| |
| Changed: |
| |
| * GDB server is now started from the ``machine`` level instead of ``cpu`` and is able to handle multiple cores at once |
| * renamed ``SetLossRangeWirelessFunction`` to ``SetRangeLossWirelessFunction`` |
| * LiteX Ethernet now supports the MDIO interface |
| * updated memory map for several EFR32 platforms |
| * changed the interrupt handling of EFR32_USART |
| * several changes in Ethernet PHY |
| * switch is now started immediately after creation |
| * the Monitor (and other mechanisms) now uses caching, increasing its performance |
| * Robot tests are now part of packages |
| * Robot tests no longer cause the Monitor telnet server to start automatically |
| * REPL files now accept multiline strings delimited with triple apostrophe |
| * UART analyzers are writing to the Renode log when running from Robot |
| * simplified command line switches for running Robot tests |
| * some Robot keywords (e.g. ``LogToFile``) are not saved between related tests |
| |
| Fixed: |
| |
| * compilation of verilated peripheral classes in Windows (backported to 1.7.1 package) |
| * determinism of SAM E70 tests |
| * crash when using ``logLevel`` command with ``--hide-log`` switch |
| * ad-hoc compiler behavior in Windows |
| * crash on too short Ethernet packets |
| * byte read behavior in NS16550 |
| * auto update behavior of PSE_Timer |
| * connection mode when running the Monitor via telnet |
| * deserialization of ``SerializableStreamView`` |
| * crash when completing interrupts in PLIC when no interrupt is pending |
| * Renode startup position on Windows with desktop scaling enabled |
| * fence.* operation decoding in RISC-V |
| * invalid size reported by SD card |
| * crash when trying to set the same log file twice |
| * compilation issues on GCC 9 |
| |
| |
| 1.7.1 - 2019.05.15 |
| ------------------ |
| |
| Added: |
| |
| * integration layer for Verilator |
| * base infrastructure for verilated peripherals |
| * base class for verilated UARTs, with analyzer support |
| * Linux on LiteX with VexRiscv demo |
| |
| Changed: |
| |
| * RISC-V CPUs now don't need CLINT in their constructor, but will accept any abstract time provider |
| * updated LiteX with PicoRV32 and LiteX with VexRiscv platform |
| |
| Fixed: |
| |
| * sharing violation when trying to run downloaded files |
| |
| 1.7.0 - 2019.05.02 |
| ------------------ |
| |
| Added: |
| |
| * PicoRV32 CPU |
| * LiteX platform with PicoRV32 |
| * LiteX timer and ethernet (LiteEth) model |
| * Murax SoC with UART, timer and GPIO controller models |
| * Fomu target support with LiteX and VexRiscv |
| * SAM E70 Xplained platform with USART, TRNG and ethernet controller models |
| * STM32F4 Random Number Generator model |
| * PSE watchdog model |
| * PTP support in Cadence GEM ethernet model, along with several fixes |
| * option to execute CPUs in serial instead of parallel |
| * support for custom instructions in RISC-V |
| * ``empty`` keyword in REPL |
| * graphical display analyzer support on Windows |
| * multi-target GPIO support, along with the new REPL syntax |
| * local interrupts in PolarFire SoC platform |
| * option to pass variables to Robot tests via test.sh |
| * some SiFive FU540 tests |
| * network interface tester for Robot tests |
| * tests for PTP implementation in Zephyr |
| |
| Changed: |
| |
| * Micron MT25Q is now able to use file as a backend and does not need to have a separate memory provided in REPL |
| * Micron MT25Q now has selectable endianess |
| * ``logFile`` command will now create a copy of the previous log before overwriting it |
| * ``sysbus LogPeripheralAccess`` will now add the active CPU name and current PC to log messages |
| * single-stepping of a CPU is now easier, it requires only a single call to ``cpu Step`` on a paused CPU |
| * NVIC reload value is now 24-bit |
| * reimplemented the STM32_UART model |
| * updated the PolarFire SoC memory map |
| * updated the SiFive FU540 memory map |
| * ``GetClockSourceInfo`` will now display the name of the timer |
| * Termsharp will no longer print the NULL character |
| * RISC-V cores will now abort when trying to run a disabled F/D instruction |
| |
| Fixed: |
| |
| * handling of divider in ComparingTimer |
| * reporting of download progress on some Mono versions |
| * running Robot tests on Windows |
| * generation of TAP helper on newest Mono releases |
| * Renode crashing after opening a socket on the same port twice |
| * serialization of data storage structures |
| * architecture name reported on GDB connection for Cortex-M CPUs |
| * highlighting of wrapped lines in the terminal on Windows |
| * TAB completion in the Monitor on Windows |
| * RNG determinism and serialization for multicore/multi-node systems |
| * SiFive FE310 interrupt connection |
| * instruction counting in RISC-V on MMU faults |
| * time progress in multicore systems |
| * fixes in MiV GPIO controller model |
| * several fixes and improvements in file backend storage layer |
| * several fixes in testing scripts |
| * several fixes in various LiteX peripherals |
| * several fixes in PSE QSPI and Micron MT25Q model |
| |
| 1.6.2 - 2019.01.10 |
| ------------------ |
| |
| Added: |
| |
| * instructions on running in Docker |
| * --pid-file option to save Renode's process ID to a file |
| |
| Changed: |
| |
| * RISC-V X0 register is now protected from being written from the Monitor |
| * Renode will now close when it receives a signal from the environment (e.g. Ctrl+C from the console window) |
| * invalid instructions in RISC-V will no longer lead to CPU abort - an exception will be issued instead, to be handled by the guest software |
| * Robot tests will now log more |
| |
| Fixed: |
| |
| * formatting of symbol logging |
| * error reporting in Robot tests using the ``Requires`` keyword |
| * Microsemi's Mi-V CPU description |
| |
| 1.6.1 - 2019.01.02 |
| ------------------ |
| |
| Added: |
| |
| * CC2538 Flash Controller |
| * ECB mode for CC2538 Cryptoprocessor |
| |
| Changed: |
| |
| * unhandled read/write logs are now decorated with the CPU name instead of the number |
| * message acknowledge logic on PolarFire CAN controller |
| |
| Fixed: |
| |
| * race condition in PromptTerminal used by the Robot Framework |
| * Monitor socket not opening in certain situations |
| * unaligned accesses in RISC-V not setting the proper badaddr value |
| * handling of data exceeding the maximum packet size of USB endpoint |
| * memory map and CPU definition for SiFive FE310 |
| * out of bounds access when using Ctrl+R with wrapped lines in the Monitor |
| |
| 1.6.0 - 2018.11.21 |
| ------------------ |
| |
| Added: |
| |
| * new USB infrastructure |
| * new PCI infrastructure |
| * PolarFire SoC platform support |
| * atomic instructions on RISC-V |
| * basic PicoSoC support - the picorv32 CPU and UART |
| * block-finished event infrastructure - verified on RISC-V and ARM cores |
| * more PSE peripherals: RTC, PCIe controller, USB controller, QSPI, CAN, etc |
| * Micron MT25Q flash model |
| * ``watch`` command to run Monitor commands periodically |
| * a message on the Monitor when quitting Renode |
| * qXfer support for GDB, allowing the client to autodetect the architecture |
| * log tester for Robot Framework |
| |
| Changed: |
| |
| * added error handling for uninitialized IRQ objects in REPL loading |
| * RISC-V CSR registers are now accessible in relevant privilege architecture version only |
| * RISC-V CPUs no longer require CLINT provided as a constructor parameter |
| * added second timer interrupt to PSE_Timer |
| * machine.GetClockSourceInfo now prints the current value for each clock entry |
| * REPL loading tests are now in Robot |
| * value provider callbacks on write-only fields will generate exceptions |
| * watchpoint handling infrastructure |
| * reworked single stepping |
| * Monitor errors are forwarded to the GDB client when issuing qRcmd |
| * LoadELF command initializes PC on all cores by default |
| * reduced the default synchronization quantum |
| * CPU abort now halts the emulation |
| * --disable-xwt no longer requires opening a port |
| * RISC-V atomic instructions now fail if the A instruction set is not enabled |
| |
| Fixed: |
| |
| * pausing and halting the CPU from hooks |
| * error when trying to TAB-complete nonexisting paths |
| * packaging script on Windows |
| * crash on extremely narrow Terminal on Windows |
| * inconsistent cursor position when erasing in Termsharp |
| * selection of multibyte UTF characters on Linux |
| * scrollbar behavior on Windows |
| * error reporting from executed commands in Robot |
| * RISC-V cores reset |
| * several fixes in time framework |
| * output pin handling and interrupt clearing in PSE_GPIO |
| * minor fixes in PSE_SPI |
| * throwing invalid instruction exception on wrong CSR access in RISC-V |
| * CPU abort will now stop the failing CPU |
| |
| |
| 1.5.0 - 2018.10.03 |
| ------------------ |
| |
| Added: |
| |
| * custom CSR registers in RISC-V |
| * VexRiscv CPU |
| * basic LiteX platform with VexRiscv |
| * LiteX VexRiscv demo with Zephyr |
| * single and multinode CC2538 demos with Contiki-NG |
| * PSE peripherals |
| * several tests for demos and internal mechanisms |
| * base classes for bus peripherals, allowing for easier definition of registers |
| |
| Changed: |
| |
| * installation instructions in README |
| * the target .NET version changed to 4.5 reducing the number of dependencies |
| * forced mono64 on macOS |
| * renamed the multinode demos directory |
| * RISC-V CPUs now generate an exception on unaligned memory reads and writes |
| * CLINT is now optional for RISC-V CPUs |
| * reimplemented FileStreamLimitWrapper |
| |
| Fixed: |
| |
| * first line blinking in terminal on Windows |
| * performance fixes in function logging |
| * handling of broken CSI codes in Termsharp |
| * completely removed the GTK dependency on Windows |
| * handling of CheckIfUartIsIdle Robot keyword |
| * resetting of RISC-V-based platforms |
| * prevented a rare crash on disposing multicore platforms when using hooks |
| * handling of unsupported characters in Robot protocol |
| * Windows installer correctly finds the previous Renode installation (may require manual deinstallation of the previous version) |
| * compilation of translation libraries on Windows is no longer forced on every Renode recompilation |
| |
| |
| 1.4.2 - 2018.07.27 |
| ------------------ |
| |
| Added: |
| |
| * debug mode in RISC-V, masking interrupts and ignoring WFI when connected via GDB |
| * installer file for Windows |
| * GPIO controller for STM32F103, with other improvements to the platform file |
| * PWM, I2C and SPI peripherals for HiFive Unleashed |
| * tests for HiFive Unleashed |
| * configuration option to always add machine name in logs |
| * test scripts when installing Renode from a package on Linux |
| |
| Changed: |
| |
| * changed gksu dependency to pkexec, as Ubuntu does not provide gksu anymore |
| * virtual time of machines created after some time is synchronized with other machines |
| * improved Vector Table Offset guessing when loading ELF files on ARM Cortex-M CPUs |
| * extended capabilities of some Robot keywords |
| * changed the way peripheral names are resolved in logs, so that they don't disappear when removing the emulation |
| |
| Fixed: |
| |
| * support for writing 64-bit registers from GDB |
| * crash when trying to connect to a nonexisting interrupt |
| * GDB access to Cortex-M registers |
| * some fixes in EFR32_USART |
| |
| |
| 1.4.1 - 2018.06.28 |
| ------------------ |
| |
| Added: |
| |
| * AXI UART Lite model |
| |
| Changed: |
| |
| * event dispatching on WPF on Windows |
| |
| Fixed: |
| |
| * an error in handling of generated code on Windows, causing the emulated application to misbehave |
| * font loading and default font size on Windows |
| |
| 1.4.0 - 2018.06.22 |
| ------------------ |
| |
| Added: |
| |
| * support for RISC-V Privileged Architecture 1.10 |
| * 64-bit RISC-V target emulation |
| * support for HiFive Unleashed platform |
| * support for SiFive Freedom E310 platform |
| * new way of handling time progression and synchronization in the whole framework |
| * support for 64-bit registers |
| * basic support for a range of SiLabs EFM32, EFR32 and EZR32 MCUs |
| * several new Robot keywords |
| * Wireshark support for macOS |
| |
| Changed: |
| |
| * Windows runs a 64-bit version of Renode |
| * 32-bit host OSes are no longer supported |
| * Robot tests can now be marked as OS-specific or ignored |
| * improvements in CC2538 radio model |
| * enum values in REPL files can now be provided as integers |
| * updated interrupt model in RISC-V |
| * MaximumBlockSize is no longer forced to 1 when starting GDB server |
| |
| Fixed: |
| |
| * several fixes in REPL grammar |
| * fixes in Robot test handling |
| * fixes in GDB watchpoints and breakpoints |
| * few other fixes in GDB integration layer |
| * floating point operations in RISC-V |
| * atomic operations in RISC-V |
| * high CPU usage when loading many nodes at the same time |
| * deserialization of the UART windows |
| * symbol names caching when loading new symbol files |
| * several minor fixes in different platform files |
| |
| 1.3.0 - 2018.01.26 |
| ------------------ |
| |
| Added: |
| |
| * EmulationEnvironment - a mechanism to handle sensor data in a centralized way |
| * test for loading REPL files |
| * several registers and commands in CC2538RF |
| * SCSS device for QuarkC1000 platform |
| * sample scripts with two nodes running a Zephyr demo |
| |
| Changed: |
| |
| * ComparingTimer and LimitTimer are now more similar in terms of API |
| * macOS runs a 64-bit version of Renode |
| * changed Arduino 101 with CC2520 board to Quark C1000 devkit |
| * improvements in RISC-V interrupt handling |
| * current working directory is now always a part of Monitor's default path |
| |
| Fixed: |
| |
| * crash when closing Renode with Wireshark enabled but not yet started |
| * handling of timer events for a specific timer configuration |
| * implementation of LED tester |
| * starting Robot on Windows without administrative privileges |
| * terminal state after running Robot tests |
| * improper timer initialization in RISC-V's CoreLevelInterruptor |
| * text highlighting in wrapped lines in terminal windows |
| |
| 1.2.0 - 2017.11.15 |
| ------------------ |
| |
| Added: |
| |
| * support for RISC-V architecture |
| * support for Microsemi Mi-V platform |
| * thin OpenOCD layer in GDB remote protocol support |
| |
| Changed: |
| |
| * timers can now hold values up to 64 bits |
| * ``Button`` peripheral can now have inverted logic |
| * GDB server can be configured to autostart after the first "monitor halt" received |
| |
| Fixed: |
| |
| * translation cache invalidation on manual writes to memory |
| * reset of ``LimitTimer`` peripheral, which is the base for most of the supported timers |
| |
| 1.1.0 - 2017.11.14 |
| ------------------ |
| |
| Added: |
| |
| * sample scripts for different platforms |
| * support for running Renode on Windows |
| * EFR32MG cpu support. For the list of peripherals, see efr32mg.repl |
| * more robust support for SVD files |
| * support for '\n -> \r\n' patching in Termsharp console windows |
| * support for font configuration in Termsharp |
| * support for CRC in Ethernet |
| * packaging scripts |
| |
| Changed: |
| |
| * API for UART-related keywords in Robot Framework integration layer |
| * the project infrastructure now supports C# 7.0 |
| * directory organization |
| |
| Fixed: |
| |
| * several minor fixes in platform description format (.repl) |
| * bug where Renode hanged after issuing the "help" command in the Monitor |
| |
| 1.0.0 - 2017.06.13 |
| ------------------ |
| |
| This is the initial release of Renode. |
| Renode is a virtual development and testing tool for multinode embedded networks. |
| For more information please visit `<https://www.renode.io>`_. |
| |