DM: fix any/allnonexistent going low when hasel is set. The hart array mask is in addition to the hart selected by hartsel.

This commit is contained in:
Luke Wren 2022-07-30 19:55:22 +01:00
parent 9787c604ad
commit 797bff81ab
1 changed files with 15 additions and 14 deletions

View File

@ -752,20 +752,21 @@ always @ (*) begin
dmactive dmactive
}; };
ADDR_DMSTATUS: dmi_prdata = { ADDR_DMSTATUS: dmi_prdata = {
9'h0, // reserved 9'h0, // reserved
1'b1, // impebreak = 1 1'b1, // impebreak = 1
2'h0, // reserved 2'h0, // reserved
status_all_any(dmstatus_havereset), // allhavereset, anyhavereset status_all_any(dmstatus_havereset), // allhavereset, anyhavereset
status_all_any(dmstatus_resumeack), // allresumeack, anyresumeack status_all_any(dmstatus_resumeack), // allresumeack, anyresumeack
{2{!hasel && hartsel >= N_HARTS}}, // allnonexistent, anynonexistent hartsel >= N_HARTS && !(hasel && |hart_array_mask), // allnonexistent
status_all_any(~hart_available), // allunavail, anyunavail hartsel >= N_HARTS, // anynonexistent
status_all_any(hart_running & hart_available), // allrunning, anyrunning status_all_any(~hart_available), // allunavail, anyunavail
status_all_any(hart_halted & hart_available), // allhalted, anyhalted status_all_any(hart_running & hart_available), // allrunning, anyrunning
1'b1, // authenticated status_all_any(hart_halted & hart_available), // allhalted, anyhalted
1'b0, // authbusy 1'b1, // authenticated
1'b1, // hasresethaltreq = 1 (we do support it) 1'b0, // authbusy
1'b0, // confstrptrvalid 1'b1, // hasresethaltreq = 1 (we do support it)
4'd2 // version = 2: RISC-V debug spec 0.13.2 1'b0, // confstrptrvalid
4'd2 // version = 2: RISC-V debug spec 0.13.2
}; };
ADDR_HARTINFO: dmi_prdata = { ADDR_HARTINFO: dmi_prdata = {
8'h0, // reserved 8'h0, // reserved