Software APIs
pentest_lib_commands.h
1 // Copyright lowRISC contributors (OpenTitan project).
2 // Licensed under the Apache License, Version 2.0, see LICENSE for details.
3 // SPDX-License-Identifier: Apache-2.0
4 
5 #ifndef OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_PENTEST_LIB_COMMANDS_H_
6 #define OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_PENTEST_LIB_COMMANDS_H_
7 #include "sw/device/lib/testing/alert_handler_testutils.h"
8 #include "sw/device/lib/ujson/ujson_derive.h"
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 // clang-format off
14 
15 #define PENETRATIONTEST_DEVICE_INFO(field, string) \
16  field(device_id, uint32_t, 8) \
17  field(clock_jitter_locked, bool) \
18  field(clock_jitter_en, bool) \
19  field(sram_main_readback_locked, bool) \
20  field(sram_main_readback_en, bool) \
21  field(sram_ret_readback_locked, bool) \
22  field(sram_ret_readback_en, bool)
23 UJSON_SERDE_STRUCT(PenetrationtestDeviceInfo, penetrationtest_device_info_t, PENETRATIONTEST_DEVICE_INFO);
24 
25 #define PENETRATIONTEST_CPUCTRL(field, string) \
26  field(icache_disable, bool) \
27  field(dummy_instr_disable, bool) \
28  field(enable_jittery_clock, bool) \
29  field(enable_sram_readback, bool)
30 UJSON_SERDE_STRUCT(PenetrationtesCpuctrl, penetrationtest_cpuctrl_t, PENETRATIONTEST_CPUCTRL);
31 
32 #define PENETRATIONTEST_ALERTDUMP(field, string) \
33  field(rst_reason, uint32_t) \
34  field(alert_cause, bool, ALERT_HANDLER_PARAM_N_ALERTS) \
35  field(loc_alert_cause, uint8_t) \
36  field(class_accum_cnt, uint16_t, ALERT_HANDLER_PARAM_N_CLASSES) \
37  field(class_esc_cnt, uint32_t, ALERT_HANDLER_PARAM_N_CLASSES) \
38  field(class_esc_state, uint32_t, ALERT_HANDLER_PARAM_N_CLASSES)
39 UJSON_SERDE_STRUCT(PenetrationtesAlertDump, penetrationtest_alert_dump_t, PENETRATIONTEST_ALERTDUMP);
40 
41 // clang-format on
42 
43 #ifdef __cplusplus
44 }
45 #endif
46 #endif // OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_PENTEST_LIB_COMMANDS_H_