[topgen] Remove alert_module and interrupt_module from top_*.hjson These lists actually had code to populate them in topgen/merge.py's amend_alert function, but this didn't ever run because it already has a value. That value means that you need to remember to update it whenever you add a new instance of an IP block. The original motivation behind listing these explicitly was that the top-level might not want to wire up all the alerts / interrupts from the modules that it instantiates. We're not doing that at the moment and, if we start doing that again, it's probably cleaner to explicitly disable things rather than to have to add everything twice. With this patch, we fix the code in amend_interrupt and amend_alert to add everything. Now the only difference between that and the manual list is the exact ordering of the bits in the signal. Since we access these bits through auto-generated named constants anyway, we can dispense with the manual step entirely. Signed-off-by: Rupert Swarbrick <rswarbrick@lowrisc.org>
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv index 72611d1..bb11bb9 100644 --- a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv +++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
@@ -234,7 +234,7 @@ // otbn - logic [170:0] intr_vector; + logic [175:0] intr_vector; // Interrupt source list logic intr_uart0_tx_watermark; logic intr_uart0_rx_watermark; @@ -2112,106 +2112,111 @@ // interrupt assignments assign intr_vector = { + intr_otbn_done, // ID 144 + intr_edn1_edn_fatal_err, // ID 143 + intr_edn1_edn_cmd_req_done, // ID 142 + intr_edn0_edn_fatal_err, // ID 141 + intr_edn0_edn_cmd_req_done, // ID 140 intr_entropy_src_es_fatal_err, // ID 139 intr_entropy_src_es_health_test_failed, // ID 138 intr_entropy_src_es_entropy_valid, // ID 137 - intr_aon_timer_aon_wdog_timer_bark, // ID 136 - intr_aon_timer_aon_wkup_timer_expired, // ID 135 - intr_edn1_edn_fatal_err, // ID 134 - intr_edn1_edn_cmd_req_done, // ID 133 - intr_edn0_edn_fatal_err, // ID 132 - intr_edn0_edn_cmd_req_done, // ID 131 - intr_csrng_cs_fatal_err, // ID 130 - intr_csrng_cs_hw_inst_exc, // ID 129 - intr_csrng_cs_entropy_req, // ID 128 - intr_csrng_cs_cmd_req_done, // ID 127 - intr_otp_ctrl_otp_error, // ID 126 - intr_otp_ctrl_otp_operation_done, // ID 125 - intr_kmac_kmac_err, // ID 124 - intr_kmac_fifo_empty, // ID 123 - intr_kmac_kmac_done, // ID 122 - intr_keymgr_op_done, // ID 121 - intr_otbn_done, // ID 120 - intr_pwrmgr_aon_wakeup, // ID 119 - intr_usbdev_link_out_err, // ID 118 - intr_usbdev_connected, // ID 117 - intr_usbdev_frame, // ID 116 - intr_usbdev_rx_bitstuff_err, // ID 115 - intr_usbdev_rx_pid_err, // ID 114 - intr_usbdev_rx_crc_err, // ID 113 - intr_usbdev_link_in_err, // ID 112 - intr_usbdev_av_overflow, // ID 111 - intr_usbdev_rx_full, // ID 110 - intr_usbdev_av_empty, // ID 109 - intr_usbdev_link_resume, // ID 108 - intr_usbdev_link_suspend, // ID 107 - intr_usbdev_link_reset, // ID 106 - intr_usbdev_host_lost, // ID 105 - intr_usbdev_disconnected, // ID 104 - intr_usbdev_pkt_sent, // ID 103 - intr_usbdev_pkt_received, // ID 102 - intr_alert_handler_classd, // ID 101 - intr_alert_handler_classc, // ID 100 - intr_alert_handler_classb, // ID 99 - intr_alert_handler_classa, // ID 98 - intr_hmac_hmac_err, // ID 97 - intr_hmac_fifo_empty, // ID 96 - intr_hmac_hmac_done, // ID 95 - intr_flash_ctrl_op_done, // ID 94 - intr_flash_ctrl_rd_lvl, // ID 93 - intr_flash_ctrl_rd_full, // ID 92 - intr_flash_ctrl_prog_lvl, // ID 91 - intr_flash_ctrl_prog_empty, // ID 90 - intr_pattgen_done_ch1, // ID 89 - intr_pattgen_done_ch0, // ID 88 - intr_i2c2_host_timeout, // ID 87 - intr_i2c2_ack_stop, // ID 86 - intr_i2c2_acq_overflow, // ID 85 - intr_i2c2_tx_overflow, // ID 84 - intr_i2c2_tx_nonempty, // ID 83 - intr_i2c2_tx_empty, // ID 82 - intr_i2c2_trans_complete, // ID 81 - intr_i2c2_sda_unstable, // ID 80 - intr_i2c2_stretch_timeout, // ID 79 - intr_i2c2_sda_interference, // ID 78 - intr_i2c2_scl_interference, // ID 77 - intr_i2c2_nak, // ID 76 - intr_i2c2_rx_overflow, // ID 75 - intr_i2c2_fmt_overflow, // ID 74 - intr_i2c2_rx_watermark, // ID 73 - intr_i2c2_fmt_watermark, // ID 72 - intr_i2c1_host_timeout, // ID 71 - intr_i2c1_ack_stop, // ID 70 - intr_i2c1_acq_overflow, // ID 69 - intr_i2c1_tx_overflow, // ID 68 - intr_i2c1_tx_nonempty, // ID 67 - intr_i2c1_tx_empty, // ID 66 - intr_i2c1_trans_complete, // ID 65 - intr_i2c1_sda_unstable, // ID 64 - intr_i2c1_stretch_timeout, // ID 63 - intr_i2c1_sda_interference, // ID 62 - intr_i2c1_scl_interference, // ID 61 - intr_i2c1_nak, // ID 60 - intr_i2c1_rx_overflow, // ID 59 - intr_i2c1_fmt_overflow, // ID 58 - intr_i2c1_rx_watermark, // ID 57 - intr_i2c1_fmt_watermark, // ID 56 - intr_i2c0_host_timeout, // ID 55 - intr_i2c0_ack_stop, // ID 54 - intr_i2c0_acq_overflow, // ID 53 - intr_i2c0_tx_overflow, // ID 52 - intr_i2c0_tx_nonempty, // ID 51 - intr_i2c0_tx_empty, // ID 50 - intr_i2c0_trans_complete, // ID 49 - intr_i2c0_sda_unstable, // ID 48 - intr_i2c0_stretch_timeout, // ID 47 - intr_i2c0_sda_interference, // ID 46 - intr_i2c0_scl_interference, // ID 45 - intr_i2c0_nak, // ID 44 - intr_i2c0_rx_overflow, // ID 43 - intr_i2c0_fmt_overflow, // ID 42 - intr_i2c0_rx_watermark, // ID 41 - intr_i2c0_fmt_watermark, // ID 40 + intr_csrng_cs_fatal_err, // ID 136 + intr_csrng_cs_hw_inst_exc, // ID 135 + intr_csrng_cs_entropy_req, // ID 134 + intr_csrng_cs_cmd_req_done, // ID 133 + intr_keymgr_op_done, // ID 132 + intr_kmac_kmac_err, // ID 131 + intr_kmac_fifo_empty, // ID 130 + intr_kmac_kmac_done, // ID 129 + intr_hmac_hmac_err, // ID 128 + intr_hmac_fifo_empty, // ID 127 + intr_hmac_hmac_done, // ID 126 + intr_flash_ctrl_op_done, // ID 125 + intr_flash_ctrl_rd_lvl, // ID 124 + intr_flash_ctrl_rd_full, // ID 123 + intr_flash_ctrl_prog_lvl, // ID 122 + intr_flash_ctrl_prog_empty, // ID 121 + intr_aon_timer_aon_wdog_timer_bark, // ID 120 + intr_aon_timer_aon_wkup_timer_expired, // ID 119 + intr_pwrmgr_aon_wakeup, // ID 118 + intr_alert_handler_classd, // ID 117 + intr_alert_handler_classc, // ID 116 + intr_alert_handler_classb, // ID 115 + intr_alert_handler_classa, // ID 114 + intr_otp_ctrl_otp_error, // ID 113 + intr_otp_ctrl_otp_operation_done, // ID 112 + intr_usbdev_link_out_err, // ID 111 + intr_usbdev_connected, // ID 110 + intr_usbdev_frame, // ID 109 + intr_usbdev_rx_bitstuff_err, // ID 108 + intr_usbdev_rx_pid_err, // ID 107 + intr_usbdev_rx_crc_err, // ID 106 + intr_usbdev_link_in_err, // ID 105 + intr_usbdev_av_overflow, // ID 104 + intr_usbdev_rx_full, // ID 103 + intr_usbdev_av_empty, // ID 102 + intr_usbdev_link_resume, // ID 101 + intr_usbdev_link_suspend, // ID 100 + intr_usbdev_link_reset, // ID 99 + intr_usbdev_host_lost, // ID 98 + intr_usbdev_disconnected, // ID 97 + intr_usbdev_pkt_sent, // ID 96 + intr_usbdev_pkt_received, // ID 95 + intr_rv_timer_timer_expired_0_0, // ID 94 + intr_pattgen_done_ch1, // ID 93 + intr_pattgen_done_ch0, // ID 92 + intr_i2c2_host_timeout, // ID 91 + intr_i2c2_ack_stop, // ID 90 + intr_i2c2_acq_overflow, // ID 89 + intr_i2c2_tx_overflow, // ID 88 + intr_i2c2_tx_nonempty, // ID 87 + intr_i2c2_tx_empty, // ID 86 + intr_i2c2_trans_complete, // ID 85 + intr_i2c2_sda_unstable, // ID 84 + intr_i2c2_stretch_timeout, // ID 83 + intr_i2c2_sda_interference, // ID 82 + intr_i2c2_scl_interference, // ID 81 + intr_i2c2_nak, // ID 80 + intr_i2c2_rx_overflow, // ID 79 + intr_i2c2_fmt_overflow, // ID 78 + intr_i2c2_rx_watermark, // ID 77 + intr_i2c2_fmt_watermark, // ID 76 + intr_i2c1_host_timeout, // ID 75 + intr_i2c1_ack_stop, // ID 74 + intr_i2c1_acq_overflow, // ID 73 + intr_i2c1_tx_overflow, // ID 72 + intr_i2c1_tx_nonempty, // ID 71 + intr_i2c1_tx_empty, // ID 70 + intr_i2c1_trans_complete, // ID 69 + intr_i2c1_sda_unstable, // ID 68 + intr_i2c1_stretch_timeout, // ID 67 + intr_i2c1_sda_interference, // ID 66 + intr_i2c1_scl_interference, // ID 65 + intr_i2c1_nak, // ID 64 + intr_i2c1_rx_overflow, // ID 63 + intr_i2c1_fmt_overflow, // ID 62 + intr_i2c1_rx_watermark, // ID 61 + intr_i2c1_fmt_watermark, // ID 60 + intr_i2c0_host_timeout, // ID 59 + intr_i2c0_ack_stop, // ID 58 + intr_i2c0_acq_overflow, // ID 57 + intr_i2c0_tx_overflow, // ID 56 + intr_i2c0_tx_nonempty, // ID 55 + intr_i2c0_tx_empty, // ID 54 + intr_i2c0_trans_complete, // ID 53 + intr_i2c0_sda_unstable, // ID 52 + intr_i2c0_stretch_timeout, // ID 51 + intr_i2c0_sda_interference, // ID 50 + intr_i2c0_scl_interference, // ID 49 + intr_i2c0_nak, // ID 48 + intr_i2c0_rx_overflow, // ID 47 + intr_i2c0_fmt_overflow, // ID 46 + intr_i2c0_rx_watermark, // ID 45 + intr_i2c0_fmt_watermark, // ID 44 + intr_spi_host1_spi_event, // ID 43 + intr_spi_host1_error, // ID 42 + intr_spi_host0_spi_event, // ID 41 + intr_spi_host0_error, // ID 40 intr_spi_device_txunderflow, // ID 39 intr_spi_device_rxoverflow, // ID 38 intr_spi_device_rxerr, // ID 37