commit
9c6aedac7f
|
@ -8900,6 +8900,84 @@ Display all registers in @emph{group}.
|
|||
"timer" or any new group created with addreg command.
|
||||
@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}
|
||||
@section Software Debug Messages and Tracing
|
||||
@cindex Linux-ARM DCC support
|
||||
|
|
Loading…
Reference in New Issue