diff --git a/src/hci/tti.sv b/src/hci/tti.sv index 64fd62a6..b79baa0f 100644 --- a/src/hci/tti.sv +++ b/src/hci/tti.sv @@ -195,14 +195,12 @@ module tti hwif_tti_o.INTERRUPT_STATUS.PENDING_INTERRUPT.we = '0; hwif_tti_o.INTERRUPT_STATUS.PENDING_INTERRUPT.next = '0; -// hwif_tti_o.INTERRUPT_STATUS.RX_DESC_STAT.next = '0; hwif_tti_o.INTERRUPT_STATUS.TX_DESC_STAT.next = '0; hwif_tti_o.INTERRUPT_STATUS.RX_DESC_TIMEOUT.next = '0; hwif_tti_o.INTERRUPT_STATUS.TX_DESC_TIMEOUT.next = '0; hwif_tti_o.INTERRUPT_STATUS.TX_DATA_THLD_STAT.next = '0; hwif_tti_o.INTERRUPT_STATUS.TX_DESC_THLD_STAT.next = '0; hwif_tti_o.INTERRUPT_STATUS.IBI_THLD_STAT.next = '0; -// hwif_tti_o.INTERRUPT_STATUS.IBI_DONE.next = '0; hwif_tti_o.INTERRUPT_STATUS.TRANSFER_ABORT_STAT.next = '0; hwif_tti_o.INTERRUPT_STATUS.TRANSFER_ERR_STAT.next = '0; diff --git a/src/i3c.sv b/src/i3c.sv index 68ff8122..8933fda7 100644 --- a/src/i3c.sv +++ b/src/i3c.sv @@ -470,7 +470,9 @@ module i3c logic [31:0] stby_cr_device_pid_lo_reg; // Interrupts + logic ctl_irq; logic tti_irq; + logic recovery_irq; logic bus_start; logic bus_rstart; @@ -657,14 +659,12 @@ module i3c .dct_wdata_hw_o(dct_wdata_hw), .dct_rdata_hw_i(dct_rdata_hw), - // TODO: TTI interface - //TODO: Rename .i3c_fsm_en_i (i3c_fsm_en_i), .i3c_fsm_idle_o(i3c_fsm_idle_o), .err(), // TODO: Handle errors - .irq(), // TODO: Handle interrupts + .irq(ctl_irq), .hwif_out_i(hwif_out), .hwif_rec_i(hwif_rec_out), @@ -696,9 +696,6 @@ module i3c .virtual_device_tx_done_i(virtual_device_tx_done) ); - - - // HCI hci #( .CsrAddrWidth(CsrAddrWidth), @@ -1087,7 +1084,7 @@ module i3c .ctl_tti_ibi_queue_ready_thld_o(tti_ibi_ready_thld), .ctl_tti_ibi_queue_ready_thld_trig_o(tti_ibi_ready_thld_trig), - .irq_o(), // TODO: Connect me + .irq_o(recovery_irq), // Recovery status signals .payload_available_o(recovery_payload_available_o), @@ -1122,6 +1119,6 @@ module i3c ); // Aggregate interrupts - assign irq_o = tti_irq; + assign irq_o = ctl_irq | tti_irq | recovery_irq; endmodule diff --git a/src/recovery/recovery_handler.sv b/src/recovery/recovery_handler.sv index 452865a9..6ad7bce4 100644 --- a/src/recovery/recovery_handler.sv +++ b/src/recovery/recovery_handler.sv @@ -178,6 +178,8 @@ module recovery_handler input logic virtual_device_tx_i, output logic virtual_device_tx_done_o ); + + // The recovery mode does not support interrupts assign irq_o = '0; // ....................................................