July 26, 2022
TEMU 2.3.5
This post contains all release notes For TEMU 2.3.x and 2.2.x.
Version 2.3.5
Release Date: 2022-07-26
Bug Fixes:
- #121 LEON2 timers not using the documented underflow value on COLE and CREOLE configurations.
- #122 SPARC processors sometimes delaying interrupts due to incorrect PIL check.
Version 2.3.4
Release Date: 2022-06-09
Bug Fixes:
- #114 Fix issues with handling of pending and mask registers in LEON2 interrupt controller.
Version 2.3.3
Release Date: 2022-06-03
Bug Fixes:
- #113 Add missing support for transmitting mode code commands in BC mode
Version 2.3.2
Release Date: 2022-05-20
Enhancements:
- #101 Adding RT mode to B1553BRM device
Version 2.3.1
Release Date: 2022-05-03
Bug Fixes:
- #106 Missing plug-and-play info for B1553BRM device
- #107 Missing examples in GR712RC sysconfig file for instantiating the B1553BRM
Version 2.3.0
Release Date: 2022-05-02
Models:
- #86 B1553BRM bus controller. Adding Model of the B1553BRM BC used in the GR712RC.
Features:
- Support for inhibit bus channel flags in milbus API. It is possible to flag which bus channels a transaction is not sent on (for simulating retries and bus failures) and which bus channels are being disabled in the bus model.
Version 2.2.17
Release Date: 2022-03-29
Bug Fixes:
- !115 SPARC GPR snapshots.Restoring the GPRs could potentially override adjacent data in virtual CPU.
- #96 Erroneous window count in LEON3 / LEON4 %asr17 register. Adjusting field to reflect reality instead of processor documentation.
Version 2.2.16
Release Date: 2021-12-17
Bug Fixes:
- #85 Crash when restoring snapshot containing a `GenericCache` model.
Version 2.2.15
Release Date: 2021-11-26
Bug Fixes:
- #82 AHBSTAT failing address register not updated on access to absent memory.
NOTE: In order to enable the support for the FAILAR fixes in your customized processor scripts, connect the memory space `absentHandlers` property to the AbsentMemoryIface interface in AHBSTAT. This can be done by adding a line as follows to the config script: `connect a=mem0.absentHandlers b=ahbstat0:AbsentMemoryIface`.
Version 2.2.14
Release Date: 2021-10-14
Bug Fixes:
- #79 CAN_OC self-test mode not supported.
Version 2.2.13
Release Date: 2021-09-22
Bug Fixes:
- #76 References to entries in interface arrays cannot be snapshotted/checkpointed.
Version 2.2.12
Release Date: 2021-09-14
Bug Fixes:
- #75 LEON2 interrupt controller should support configurable level / edge triggering.
Version 2.2.11
Release Date: 2021-07-07
Bug Fixes:
- #66 ApbUart infinite speed mode sets status bits it should not.
- #67 GpTimer warnings over scaler limits generating false positives.
- #70 LEON2 external / GPIO interrupts not correctly modelled.
- #72 ATC not cleared on CPU resets.
Version 2.2.10
Release Date: 2021-04-30
Bug Fixes:
- #60 Memory space passes wrong object when decaying block reads to memory transactions.
- #61 IRQMP force interrupts should clear the ext int ack register in certain cases.
- #62 Do-not-exit-at-halt mode does not advance time correctly
Version 2.2.9
Release Date: 2021-04-19
Bug Fixes:
- #58: IRQMP extended interrupts not taken if master interrupt masked.
Version 2.2.8
Release Date: 2021-04-07
Bug Fixes:
- #56: Address issues with IRQMP extended interrupts.
Version 2.2.7
Release Date: 2021-03-18
Bug Fixes:
- #50: Expose GRGPIO pin mask (to adjust the number of GPIO pins) as configuration property.
Version 2.2.6
Release Date: 2021-03-15
Bug Fixes:
- #24: Missing CLKDIV register in GRSPW2 model
Enhancements:
- #45: Accept TEMU3 licenses in TEMU2
Version 2.2.5
Release Date: 2021-01-06
Bug Fixes:
- Regression for #23: Excessive GR1553 logging
Version 2.2.4
Release Date: 2020-11-20
Bug Fixes:
- #29: Incorrect null-check in memory space
Version 2.2.3
Release Date: 2020-11-09
Bug Fixes:
- #29: Possible crash when fetching instructions from an MMIO device without fetch handlers.
Version 2.2.2
Release Date: 2020-10-13
Bug Fixes:
- #26 LEON2 timer problem near overflow
- #27 Expose stickyBits flag in CPU for resume on halt support
Version 2.2.1
Release Date: 2020-06-22
Bug Fixes:
- #23 Excessive GR1553 logging
Version 2.2.0
Release Date: 2020-06-18
New Models:
- PowerPC architecture support
- Added PPC750 CPU core model
- ARMv7-R architecture support
- ARMv7-R CPU core model.
- Cortex-R4 based memory controller.
- Sysconfig file for TMS570LC43.
- TMS570 VIM, SCI-LIN and RTI device models
- MIL-STD-1553 support is starting to stabilise, it is still however marked as experimental until it has been properly tested by more third parties implementing bus controller and remote terminal models.
- SpaceWire models added (GRSPW, GRSPW2, GRSPWROUTER)
- CAN models added (SimpleCANBus, CAN_OC, GRCAN)
- Ethernet models added (GRETH, GRETH_GBIT)
New Features:
- Command API added. In T-EMU 2.1 and earlier, there was no user exposed API for adding custom commands the only way to do this was an internal C++-API which was/is not exposed to the user. We now provide a C and Python API to create user commands.
- Additional functions added to `temu-c/Support/CommandLine.h`
- Added Python API for creating commands using kwarg syntax. theraw API can be accessed with `import temubuiltins` (at the moment).
- ELF Symtab API added. The API supports loading and querying thesymbol tables in an ELF file. The symtabs are useful as fallback if DWARF info is not available.
- DWARF support extended and source level debugging commands added.
Changes:
- Rebased to LLVM 6.0 (internal changes)
- A lot of activity has been on internal cleanup.
- The emulator generator support tool has been rewritten and is a lot simpler now. This paves the way for more advanced interpretation methods and binary translation further on in time. CPUs should otherwise remain identical to their function. This is an internal change and does not have an impact on the end user.
- GDB {cpp} API is removed, replaced with plain C-API.
- Python API is reorganised. Please update your Python scriptswith the new module paths (temu.c.xxx) insead of temu.xxx.
- `temu.c.xxx` will keep the raw wrappers over the C-api.
- `temu.xxx` (not including temu.c) will provide a more native andnatural Python API when implemented.
- Replacing GDB Server C++ API with C99 API, old headers have been deleted.
- POTENTIALLY BREAKING API CHANGE: Event API is rewritten, the old one is there and is compatible with the new one, except for the event registration function (which should be replaced with `temu_publishOldStyleEvent`) which now takes a source object pointer.The event publication is with the new API mandatory before postingan event (previously, it was technically only needed for checkpointing support). Users should move to the new style events as soon as possible. These events are preallocated when models are allocated and a lot faster than the old style events. The old style event API is marked as deprecated and it will be removed in a later release. Although, while the old style event API is still there, it has been renamed `LegacyEventIface` in the code. Thus, when you rebuild your models you must make a decision on either sticking with the deprecated legacy API or moving to the new API. New API is based on a function interface, and it is no longer needed to handle the writing of a queue property in a special way to register events. To post an event use the `temu_eventPostXXX()` functions (where XXX at present is Cycles, Nanos and Seconds).
Deprecations:
- Old / legacy event API is deprecated, will be removed in TEMU 3.0