jtag/drivers: dmem: Add Emulated AP mode

This emulation mode supports software translation of an AP request
into an address mapped transaction that does not rely on physical AP
hardware. This is necessary in some hardware such as K3 SoCs since the
hardware architecture anticipates a potential race condition between
AP doing direct memory access generating transactions back to system
bus and firewalls that data path out.

This emulation mode allows direct memory driver to emulate CoreSight
Access Port (AP) and reuse the SoC configuration meant for JTAG
debuggers.

Since the address ranges are flat in nature, the requisite memory base
and size will need to be provided a-priori to the driver for mapping.
The other design alternative would be to map requested memory map for
every register operation, but, that would defeat our intent of getting
max debug performance.

Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Jason Peck <jpeck@ti.com>
Change-Id: I2d3c5f7833f1973e90b4f6b247827f62fc2905d0
Reviewed-on: https://review.openocd.org/c/openocd/+/7089
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
Jason Peck
2022-07-18 13:45:05 -05:00
committed by Antonio Borneo
parent 29a57545f6
commit 42872d18bf
2 changed files with 298 additions and 5 deletions
+13
View File
@@ -3626,6 +3626,19 @@ Set the address offset between Access Ports (APs).
Set the maximum number of valid access ports on the SoC.
@end deffn
@deffn {Config Command} {dmem emu_ap_list} n
Set the list of Access Ports (APs) that need to be emulated. This
emulation mode supports software translation of an AP request into an
address mapped transaction that does not rely on physical AP hardware.
This maybe needed if the AP is either denied access via memory map or
protected using other SoC mechanisms.
@end deffn
@deffn {Config Command} {dmem emu_base_address_range} base_address address_window_size
Set the emulated address and address window size. Both of these
parameters must be aligned to page size.
@end deffn
@end deffn
@section Transport Configuration