Move debug CSR addresses
- Move from 0x31000 -> 0x30800.
Change-Id: I90e8955b79d065beb72505ef5e7d409a07bd0c65
diff --git a/hdl/chisel/src/kelvin/CoreAxiCSR.scala b/hdl/chisel/src/kelvin/CoreAxiCSR.scala
index 9639090..939e1cd 100644
--- a/hdl/chisel/src/kelvin/CoreAxiCSR.scala
+++ b/hdl/chisel/src/kelvin/CoreAxiCSR.scala
@@ -20,12 +20,12 @@
import bus.AxiMasterIO
object CoreCsrAddrs {
- val DbgReqAddr = 0x1000.U
- val DbgReqData = 0x1004.U
- val DbgReqOp = 0x1008.U
- val DbgRspData = 0x100c.U
- val DbgRspOp = 0x1010.U
- val DbgStatus = 0x1014.U
+ val DbgReqAddr = 0x800.U
+ val DbgReqData = 0x804.U
+ val DbgReqOp = 0x808.U
+ val DbgRspData = 0x80c.U
+ val DbgRspOp = 0x810.U
+ val DbgStatus = 0x814.U
}
class CoreCSR(p: Parameters) extends Module {
diff --git a/kelvin_test_utils/core_mini_axi_interface.py b/kelvin_test_utils/core_mini_axi_interface.py
index 2c9ebdc..4586f0e 100644
--- a/kelvin_test_utils/core_mini_axi_interface.py
+++ b/kelvin_test_utils/core_mini_axi_interface.py
@@ -68,6 +68,15 @@
COMMAND = 0x17
+class DebugCsrAddr:
+ REQ_ADDR = 0x800
+ REQ_DATA = 0x804
+ REQ_OP = 0x808
+ RSP_DATA = 0x80C
+ RSP_OP = 0x810
+ STATUS = 0x814
+
+
def format_line_from_word(word, addr):
shift = addr % 16
line = np.zeros([4], dtype=np.uint32)
@@ -407,7 +416,7 @@
async def _poll_dm_status(self, bit, value):
while True:
- status = await self.read_csr(0x1014)
+ status = await self.read_csr(DebugCsrAddr.STATUS)
if (status[0] & (1 << bit)) == value:
break
await ClockCycles(self.dut.io_aclk, 10)
@@ -415,16 +424,16 @@
async def dm_read(self, addr):
await self._poll_dm_status(0, 1)
- await self.write_csr(0x1000, addr)
- await self.write_csr(0x1004, 0)
- await self.write_csr(0x1008, DmReqOp.READ)
+ await self.write_csr(DebugCsrAddr.REQ_ADDR, addr)
+ await self.write_csr(DebugCsrAddr.REQ_DATA, 0)
+ await self.write_csr(DebugCsrAddr.REQ_OP, DmReqOp.READ)
await self._poll_dm_status(1, 2)
rsp = dict()
- rsp["data"] = int((await self.read_csr(0x100c)).view(np.uint32)[0])
- rsp["op"] = (await self.read_csr(0x1010)).view(np.uint32)[0]
- await self.write_csr(0x1014, 0) # Acknowledge response.
+ rsp["data"] = int((await self.read_csr(DebugCsrAddr.RSP_DATA)).view(np.uint32)[0])
+ rsp["op"] = (await self.read_csr(DebugCsrAddr.RSP_OP)).view(np.uint32)[0]
+ await self.write_csr(DebugCsrAddr.STATUS, 0) # Acknowledge response.
assert rsp["op"] == DmRspOp.SUCCESS
return rsp["data"]
@@ -432,16 +441,16 @@
async def dm_write(self, addr, data):
await self._poll_dm_status(0, 1)
- await self.write_csr(0x1000, addr)
- await self.write_csr(0x1004, data)
- await self.write_csr(0x1008, DmReqOp.WRITE)
+ await self.write_csr(DebugCsrAddr.REQ_ADDR, addr)
+ await self.write_csr(DebugCsrAddr.REQ_DATA, data)
+ await self.write_csr(DebugCsrAddr.REQ_OP, DmReqOp.WRITE)
await self._poll_dm_status(1, 2)
rsp = dict()
- rsp["data"] = int((await self.read_csr(0x100c)).view(np.uint32)[0])
- rsp["op"] = (await self.read_csr(0x1010)).view(np.uint32)[0]
- await self.write_csr(0x1014, 0) # Acknowledge response.
+ rsp["data"] = int((await self.read_csr(DebugCsrAddr.RSP_DATA)).view(np.uint32)[0])
+ rsp["op"] = (await self.read_csr(DebugCsrAddr.RSP_OP)).view(np.uint32)[0]
+ await self.write_csr(DebugCsrAddr.STATUS, 0) # Acknowledge response.
return rsp
async def dm_read_reg(self, addr, expected_op=DmRspOp.SUCCESS):