commit
9c6aedac7f
|
@ -8900,6 +8900,84 @@ Display all registers in @emph{group}.
|
||||||
"timer" or any new group created with addreg command.
|
"timer" or any new group created with addreg command.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
|
@section RISC-V Architecture
|
||||||
|
|
||||||
|
@uref{http://riscv.org/, RISC-V} is a free and open ISA. OpenOCD supports JTAG
|
||||||
|
debug of targets that implement version 0.11 and 0.13 of the RISC-V Debug
|
||||||
|
Specification.
|
||||||
|
|
||||||
|
@subsection RISC-V Terminology
|
||||||
|
|
||||||
|
A @emph{hart} is a hardware thread. A hart may share resources (eg. FPU) with
|
||||||
|
another hart, or may be a separate core. RISC-V treats those the same, and
|
||||||
|
OpenOCD exposes each hart as a separate core.
|
||||||
|
|
||||||
|
@subsection RISC-V Debug Configuration Commands
|
||||||
|
|
||||||
|
@deffn Command {riscv expose_csrs} n0[-m0][,n1[-m1]]...
|
||||||
|
Configure a list of inclusive ranges for CSRs to expose in addition to the
|
||||||
|
standard ones. This must be executed before `init`.
|
||||||
|
|
||||||
|
By default OpenOCD attempts to expose only CSRs that are mentioned in a spec,
|
||||||
|
and then only if the corresponding extension appears to be implemented. This
|
||||||
|
command can be used if OpenOCD gets this wrong, or a target implements custom
|
||||||
|
CSRs.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
@deffn Command {riscv set_command_timeout_sec} [seconds]
|
||||||
|
Set the wall-clock timeout (in seconds) for individual commands. The default
|
||||||
|
should work fine for all but the slowest targets (eg. simulators).
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
@deffn Command {riscv set_reset_timeout_sec} [seconds]
|
||||||
|
Set the maximum time to wait for a hart to come out of reset after reset is
|
||||||
|
deasserted.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
@deffn Command {riscv set_scratch_ram} none|[address]
|
||||||
|
Set the address of 16 bytes of scratch RAM the debugger can use, or 'none'.
|
||||||
|
This is used to access 64-bit floating point registers on 32-bit targets.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
@deffn Command {riscv set_prefer_sba} on|off
|
||||||
|
When on, prefer to use System Bus Access to access memory. When off, prefer to
|
||||||
|
use the Program Buffer to access memory.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
@subsection RISC-V Authentication Commands
|
||||||
|
|
||||||
|
The following commands can be used to authenticate to a RISC-V system. Eg. a
|
||||||
|
trivial challenge-response protocol could be implemented as follows in a
|
||||||
|
configuration file, immediately following @command{init}:
|
||||||
|
@example
|
||||||
|
set challenge [ocd_riscv authdata_read]
|
||||||
|
riscv authdata_write [expr $challenge + 1]
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@deffn Command {riscv authdata_read}
|
||||||
|
Return the 32-bit value read from authdata. Note that to get read value back in
|
||||||
|
a TCL script, it needs to be invoked as @command{ocd_riscv authdata_read}.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
@deffn Command {riscv authdata_write} value
|
||||||
|
Write the 32-bit value to authdata.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
@subsection RISC-V DMI Commands
|
||||||
|
|
||||||
|
The following commands allow direct access to the Debug Module Interface, which
|
||||||
|
can be used to interact with custom debug features.
|
||||||
|
|
||||||
|
@deffn Command {riscv dmi_read}
|
||||||
|
Perform a 32-bit DMI read at address, returning the value. Note that to get
|
||||||
|
read value back in a TCL script, it needs to be invoked as @command{ocd_riscv
|
||||||
|
dmi_read}.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
@deffn Command {riscv dmi_write} address value
|
||||||
|
Perform a 32-bit DMI write of value at address.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
@anchor{softwaredebugmessagesandtracing}
|
@anchor{softwaredebugmessagesandtracing}
|
||||||
@section Software Debug Messages and Tracing
|
@section Software Debug Messages and Tracing
|
||||||
@cindex Linux-ARM DCC support
|
@cindex Linux-ARM DCC support
|
||||||
|
|
Loading…
Reference in New Issue