add support for dap v6
add basic AXI-AP support
Add ability to switch between SWD and JTAG DPs from application
dut.arm_debug.set_dp(:jtag) dut.arm_debug.set_dp(:swd) dut.arm_debug.reset_dp
Cleanup of the register flags when reading or capturing a register.
Fix auto address increment boundary check
Add support for apacc_wait_states to SWD.
IR shift size and register select values are now configurable through instantiation options
Overhauled API to match ARM Debug Interface v5 Spec
Internal registers switched to use Origen register models
arm_debug.sw_dp.idcode.read!(0x2BA01477) arm_debug.sw_dp.ctrlstat.write!(0x5000_0000) # Power-up arm_debug.sw_dp.ctrlstat.read!(0xF0000000) # Verify arm_debug.ahb_ap.idr.read!(0x24770011) arm_debug.sw_dp.select.write!(0) # Select AHB-AP, bank 0 # Set the SIZE field of CSW to 0x2 (32-bit transfers) + AddrInc=1 arm_debug.ahb_ap.csw.write!(0x23000052)
Added ‘latency’ parameter to the the top-level driver that can be used to apply an application specific delay (in cycles).
# To specify a post-read/write delay, pass it into the sub_block call as an option called ":latency". # sub_block :arm_debug, class_name: 'OrigenARMDebug::Driver', aps: { mem_ap: 0x00000000, mdm_ap: 0x01000000 }, latency: 2
Fix register bit definition for swj_dp.apacc and swj_dp.abort (bug #5).
Patched SWD reads (compares were inadvertently removed in 0.9.0 release).
Update write_register/read_register to follow standard of requiring ‘data’ argument for non-register based transactions.
For example:
arm_debug.write_register(0x20000000, 0x55555555) # OLD STYLE arm_debug.read_register(0x20000000, edata: 0x55555555) # OLD STYLE arm_debug.write_register(0x55555555, address: 0x20000000) # NEW STYLE arm_debug.read_register(0x55555555, address: 0x20000000) # NEW STYLE
Switch ARMDebug module to be Origen::Model to be used as a sub_block by the top-level.
class DUT include Origen::TopLevel include OrigenARMDebug # Also include the required physical driver, JTAG in this example include OrigenJTAG def initialize reg :myreg, 0x0012, size: 16 do |reg| reg.bits 15..8, :upper_byte reg.bits 7..0, :lower_byte end sub_block :arm_debug, class_name: "OrigenARMDebug::Driver", aps: { mem_ap: 0x00000000, mdmap: 0x01000000 } end end
Increase code coverage.
Switch to internal register dpacc instead of relying on top-level dap register
Fix mem_ap.write_read bug
Patch RDBUFF comparing functionality.
Fixes a bug in the AP-ACCESS routine.
Add register model handling to read and write methods.
Added register model handling to read and write methods.
Added coverage and documentation.
Additional code coverage and documentation.
Removed some extra files.
Initial release