@@ -1225,8 +1225,12 @@ status_t handle_otbn_fi_char_unrolled_reg_op_loop(ujson_t *uj) {
12251225}
12261226
12271227status_t handle_otbn_fi_init (ujson_t * uj ) {
1228- penetrationtest_cpuctrl_t uj_data ;
1229- TRY (ujson_deserialize_penetrationtest_cpuctrl_t (uj , & uj_data ));
1228+ penetrationtest_cpuctrl_t uj_cpuctrl_data ;
1229+ TRY (ujson_deserialize_penetrationtest_cpuctrl_t (uj , & uj_cpuctrl_data ));
1230+ penetrationtest_sensor_config_t uj_sensor_data ;
1231+ TRY (ujson_deserialize_penetrationtest_sensor_config_t (uj , & uj_sensor_data ));
1232+ penetrationtest_alert_config_t uj_alert_data ;
1233+ TRY (ujson_deserialize_penetrationtest_alert_config_t (uj , & uj_alert_data ));
12301234
12311235 // Configure the entropy complex for OTBN. Set the reseed interval to max
12321236 // to avoid a non-constant trigger window.
@@ -1237,7 +1241,9 @@ status_t handle_otbn_fi_init(ujson_t *uj) {
12371241 kPentestPeripheralIoDiv4 | kPentestPeripheralEdn |
12381242 kPentestPeripheralCsrng | kPentestPeripheralEntropy |
12391243 kPentestPeripheralAes | kPentestPeripheralHmac |
1240- kPentestPeripheralKmac | kPentestPeripheralOtbn );
1244+ kPentestPeripheralKmac | kPentestPeripheralOtbn ,
1245+ uj_sensor_data .sensor_ctrl_enable ,
1246+ uj_sensor_data .sensor_ctrl_en_fatal );
12411247
12421248 // Configure Ibex to allow reading ERR_STATUS register.
12431249 TRY (dif_rv_core_ibex_init (
@@ -1249,14 +1255,19 @@ status_t handle_otbn_fi_init(ujson_t *uj) {
12491255
12501256 // Configure the alert handler. Alerts triggered by IP blocks are captured
12511257 // and reported to the test.
1252- pentest_configure_alert_handler ();
1258+ pentest_configure_alert_handler (
1259+ uj_alert_data .alert_classes , uj_alert_data .enable_alerts ,
1260+ uj_alert_data .enable_classes , uj_alert_data .accumulation_thresholds ,
1261+ uj_alert_data .signals , uj_alert_data .duration_cycles ,
1262+ uj_alert_data .ping_timeout );
12531263
12541264 // Configure the CPU for the pentest.
12551265 penetrationtest_device_info_t uj_output ;
12561266 TRY (pentest_configure_cpu (
1257- uj_data .enable_icache , & uj_output .icache_en , uj_data .enable_dummy_instr ,
1258- & uj_output .dummy_instr_en , uj_data .enable_jittery_clock ,
1259- uj_data .enable_sram_readback , & uj_output .clock_jitter_locked ,
1267+ uj_cpuctrl_data .enable_icache , & uj_output .icache_en ,
1268+ uj_cpuctrl_data .enable_dummy_instr , & uj_output .dummy_instr_en ,
1269+ uj_cpuctrl_data .dummy_instr_count , uj_cpuctrl_data .enable_jittery_clock ,
1270+ uj_cpuctrl_data .enable_sram_readback , & uj_output .clock_jitter_locked ,
12601271 & uj_output .clock_jitter_en , & uj_output .sram_main_readback_locked ,
12611272 & uj_output .sram_ret_readback_locked , & uj_output .sram_main_readback_en ,
12621273 & uj_output .sram_ret_readback_en ));
@@ -1272,6 +1283,12 @@ status_t handle_otbn_fi_init(ujson_t *uj) {
12721283 TRY (pentest_read_device_id (uj_output .device_id ));
12731284 RESP_OK (ujson_serialize_penetrationtest_device_info_t , uj , & uj_output );
12741285
1286+ // Read the sensor config.
1287+ TRY (pentest_send_sensor_config (uj ));
1288+
1289+ // Read the alert config.
1290+ TRY (pentest_send_alert_config (uj ));
1291+
12751292 // Read different SKU config fields and return to host.
12761293 TRY (pentest_send_sku_config (uj ));
12771294
0 commit comments