blob: 732ab1f4f773d794c79dbc26f45601f4997f5cc3 [file] [log] [blame]
.. _debug-support:
Debug Support
=============
Ibex offers support for execution-based debug according to the RISC-V Debug Specification, version 0.13.
Interface
---------
+-----------------+-----------+-----------------------------+
| Signal | Direction | Description |
+=================+===========+=============================+
| ``debug_req_i`` | input | Request to enter Debug Mode |
+-----------------+-----------+-----------------------------+
``debug_req_i`` is the "debug interrupt", issued by the debug module when the core should enter Debug Mode.
Parameters
----------
+---------------------+-----------------------------------------------------------------+
| Parameter | Description |
+=====================+=================================================================+
| ``DmHaltAddr`` | Address to jump to when entering Debug Mode |
+---------------------+-----------------------------------------------------------------+
| ``DmExceptionAddr`` | Address to jump to when an exception occurs while in Debug Mode |
+---------------------+-----------------------------------------------------------------+
Core Debug Registers
--------------------
Ibex implements four core debug registers, namely :ref:`csr-dcsr`, :ref:`csr-dpc`, and two debug scratch registers.
All those registers are accessible from Debug Mode only.
If software tries to access them without the core being in Debug Mode, an illegal instruction exception is triggered.