diff --git a/src/i3c.sv b/src/i3c.sv index 45b836e..09f2c4e 100644 --- a/src/i3c.sv +++ b/src/i3c.sv @@ -174,7 +174,11 @@ module i3c // DCT memory export interface input dct_mem_src_t dct_mem_src_i, - output dct_mem_sink_t dct_mem_sink_o + output dct_mem_sink_t dct_mem_sink_o, + + // Recovery interface signals + output logic recovery_payload_available_o, + output logic recovery_image_activated_o // TODO: Add interrupts ); @@ -962,6 +966,10 @@ module i3c .irq_o(), // TODO: Connect me + // Recovery status signals + .payload_available_o (recovery_payload_available_o), + .image_activated_o (recovery_image_activated_o), + // I2C/I3C bus condition detection .ctl_bus_start_i(bus_start | bus_rstart), // S/Sr are both used to reset PEC .ctl_bus_stop_i (bus_stop), diff --git a/src/i3c_wrapper.sv b/src/i3c_wrapper.sv index a9af4b2..25848cf 100644 --- a/src/i3c_wrapper.sv +++ b/src/i3c_wrapper.sv @@ -99,13 +99,17 @@ module i3c_wrapper #( input logic sda_i, output logic scl_o, output logic sda_o, - output logic sel_od_pp_o + output logic sel_od_pp_o, `else // I3C bus IO inout wire i3c_scl_io, - inout wire i3c_sda_io + inout wire i3c_sda_io, `endif + // Recovery interface signals + output logic recovery_payload_available_o, + output logic recovery_image_activated_o + // TODO: Add interrupts ); @@ -259,7 +263,10 @@ module i3c_wrapper #( .dat_mem_sink_o(dat_mem_sink), .dct_mem_src_i (dct_mem_src), - .dct_mem_sink_o(dct_mem_sink) + .dct_mem_sink_o(dct_mem_sink), + + .recovery_payload_available_o (recovery_payload_available_o), + .recovery_image_activated_o (recovery_image_activated_o) ); prim_ram_1p_adv #( diff --git a/src/recovery/recovery_handler.sv b/src/recovery/recovery_handler.sv index 098c5a3..810a714 100644 --- a/src/recovery/recovery_handler.sv +++ b/src/recovery/recovery_handler.sv @@ -156,7 +156,11 @@ module recovery_handler // .................................................... // Interrupt - output logic irq_o + output logic irq_o, + + // Recovery status + output logic payload_available_o, + output logic image_activated_o ); // ....................................................