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:
parent
9787c604ad
commit
797bff81ab
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue