Skip to content

Removed POINTER_FETCH state from controller_fsm

Created by: silabs-oysteink

POINTER_FETCH fsm state replaced by a separate state flop. Controller stays in FUNCTIONAL while handling CLIC SHV interrupts.

Mret which restarts CLIC pointer fetch due to mcause.minhv and mcause.mpp will now get its 'last_op' bit set to 0 in the ID stage, and the following CLIC pointer will complete the sequence. CSR updates only happen when the pointer reaches WB.

NOT SEC clean

  • Master has bugs (possible deadlock while single stepping mret with CLIC pointers, wrong pipeline stage used for excluding CLIC pointers from incrementing minstret).
  • Minstret will now only update for mret when the CLIC pointer is done (or when the mret reaches WB if no CLIC pointer fetch is restarted)

Merge request reports

Loading