Skip to content
4 changes: 2 additions & 2 deletions sw/cheri_toolchain.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,14 @@ set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
set(LDS_DIR "${CMAKE_SOURCE_DIR}/device/lib/boot")

string(CONCAT CMAKE_CXX_FLAGS_INIT
"-std=c++20 -O0 -g"
"-std=c++20 -O1 -g"
" -ffreestanding -static"
" -fno-builtin -fno-exceptions -fno-c++-static-destructors -fno-rtti"
" -Wall -Wextra"
)

string(CONCAT CMAKE_C_FLAGS_INIT
"-std=c99 -O0 -g"
"-std=c99 -O1 -g"
" -ffreestanding -static"
" -fno-builtin"
" -Wall -Wextra"
Expand Down
3 changes: 3 additions & 0 deletions sw/device/lib/hal/autogen/clkmgr.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <stdint.h>

typedef enum [[clang::flag_enum]] clkmgr_alert_test : uint32_t {
clkmgr_alert_test_none = 0,
clkmgr_alert_test_recov_fault = (1u << 0),
clkmgr_alert_test_fatal_fault = (1u << 1),
} clkmgr_alert_test;
Expand Down Expand Up @@ -66,6 +67,7 @@ typedef struct [[gnu::aligned(4)]] {
} clkmgr_main_meas_ctrl_shadowed;

typedef enum [[clang::flag_enum]] clkmgr_recov_err_code : uint32_t {
clkmgr_recov_err_code_none = 0,
clkmgr_recov_err_code_shadow_update_err = (1u << 0),
clkmgr_recov_err_code_io_measure_err = (1u << 1),
clkmgr_recov_err_code_main_measure_err = (1u << 2),
Expand All @@ -74,6 +76,7 @@ typedef enum [[clang::flag_enum]] clkmgr_recov_err_code : uint32_t {
} clkmgr_recov_err_code;

typedef enum [[clang::flag_enum]] clkmgr_fatal_err_code : uint32_t {
clkmgr_fatal_err_code_none = 0,
clkmgr_fatal_err_code_reg_intg = (1u << 0),
clkmgr_fatal_err_code_idle_cnt = (1u << 1),
clkmgr_fatal_err_code_shadow_storage_err = (1u << 2),
Expand Down
2 changes: 2 additions & 0 deletions sw/device/lib/hal/autogen/entropy_src.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@
#include <stdint.h>

typedef enum [[clang::flag_enum]] entropy_src_intr : uint32_t {
entropy_src_intr_none = 0,
entropy_src_intr_es_entropy_valid = (1u << 0),
entropy_src_intr_es_health_test_failed = (1u << 1),
entropy_src_intr_es_observe_fifo_ready = (1u << 2),
entropy_src_intr_es_fatal_err = (1u << 3),
} entropy_src_intr;

typedef enum [[clang::flag_enum]] entropy_src_alert_test : uint32_t {
entropy_src_alert_test_none = 0,
entropy_src_alert_test_recov_alert = (1u << 0),
entropy_src_alert_test_fatal_alert = (1u << 1),
} entropy_src_alert_test;
Expand Down
6 changes: 6 additions & 0 deletions sw/device/lib/hal/autogen/i2c.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <stdint.h>

typedef enum [[clang::flag_enum]] i2c_intr : uint32_t {
i2c_intr_none = 0,
i2c_intr_fmt_threshold = (1u << 0),
i2c_intr_rx_threshold = (1u << 1),
i2c_intr_acq_threshold = (1u << 2),
Expand All @@ -32,6 +33,7 @@ typedef struct [[gnu::aligned(4)]] {
} i2c_alert_test;

typedef enum [[clang::flag_enum]] i2c_ctrl : uint32_t {
i2c_ctrl_none = 0,
i2c_ctrl_enablehost = (1u << 0),
i2c_ctrl_enabletarget = (1u << 1),
i2c_ctrl_llpbk = (1u << 2),
Expand All @@ -42,6 +44,7 @@ typedef enum [[clang::flag_enum]] i2c_ctrl : uint32_t {
} i2c_ctrl;

typedef enum [[clang::flag_enum]] i2c_status : uint32_t {
i2c_status_none = 0,
i2c_status_fmtfull = (1u << 0),
i2c_status_rxfull = (1u << 1),
i2c_status_fmtempty = (1u << 2),
Expand Down Expand Up @@ -108,6 +111,7 @@ typedef struct [[gnu::aligned(4)]] {
} i2c_target_fifo_status;

typedef enum [[clang::flag_enum]] i2c_ovrd : uint32_t {
i2c_ovrd_none = 0,
i2c_ovrd_txovrden = (1u << 0),
i2c_ovrd_sclval = (1u << 1),
i2c_ovrd_sdaval = (1u << 2),
Expand Down Expand Up @@ -210,13 +214,15 @@ typedef struct [[gnu::aligned(4)]] {
} i2c_acq_fifo_next_data;

typedef enum [[clang::flag_enum]] i2c_controller_events : uint32_t {
i2c_controller_events_none = 0,
i2c_controller_events_nack = (1u << 0),
i2c_controller_events_unhandled_nack_timeout = (1u << 1),
i2c_controller_events_bus_timeout = (1u << 2),
i2c_controller_events_arbitration_lost = (1u << 3),
} i2c_controller_events;

typedef enum [[clang::flag_enum]] i2c_target_events : uint32_t {
i2c_target_events_none = 0,
i2c_target_events_tx_pending = (1u << 0),
i2c_target_events_bus_timeout = (1u << 1),
i2c_target_events_arbitration_lost = (1u << 2),
Expand Down
2 changes: 2 additions & 0 deletions sw/device/lib/hal/autogen/kmac.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@
#include <stdint.h>

typedef enum [[clang::flag_enum]] kmac_intr : uint32_t {
kmac_intr_none = 0,
kmac_intr_kmac_done = (1u << 0),
kmac_intr_fifo_empty = (1u << 1),
kmac_intr_kmac_err = (1u << 2),
} kmac_intr;

typedef enum [[clang::flag_enum]] kmac_alert_test : uint32_t {
kmac_alert_test_none = 0,
kmac_alert_test_recov_operation_err = (1u << 0),
kmac_alert_test_fatal_fault_err = (1u << 1),
} kmac_alert_test;
Expand Down
1 change: 1 addition & 0 deletions sw/device/lib/hal/autogen/rom_ctrl.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ typedef struct [[gnu::aligned(4)]] {
} rom_ctrl_alert_test;

typedef enum [[clang::flag_enum]] rom_ctrl_fatal_alert_cause : uint32_t {
rom_ctrl_fatal_alert_cause_none = 0,
rom_ctrl_fatal_alert_cause_checker_error = (1u << 0),
rom_ctrl_fatal_alert_cause_integrity_error = (1u << 1),
} rom_ctrl_fatal_alert_cause;
Expand Down
2 changes: 2 additions & 0 deletions sw/device/lib/hal/autogen/rstmgr.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <stdint.h>

typedef enum [[clang::flag_enum]] rstmgr_alert_test : uint32_t {
rstmgr_alert_test_none = 0,
rstmgr_alert_test_fatal_fault = (1u << 0),
rstmgr_alert_test_fatal_cnsty_fault = (1u << 1),
} rstmgr_alert_test;
Expand Down Expand Up @@ -71,6 +72,7 @@ typedef struct [[gnu::aligned(4)]] {
} rstmgr_sw_rst_ctrl_n;

typedef enum [[clang::flag_enum]] rstmgr_err_code : uint32_t {
rstmgr_err_code_none = 0,
rstmgr_err_code_reg_intg_err = (1u << 0),
rstmgr_err_code_reset_consistency_err = (1u << 1),
rstmgr_err_code_fsm_err = (1u << 2),
Expand Down
4 changes: 4 additions & 0 deletions sw/device/lib/hal/autogen/spi_device.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <stdint.h>

typedef enum [[clang::flag_enum]] spi_device_intr : uint32_t {
spi_device_intr_none = 0,
spi_device_intr_upload_cmdfifo_not_empty = (1u << 0),
spi_device_intr_upload_payload_not_empty = (1u << 1),
spi_device_intr_upload_payload_overflow = (1u << 2),
Expand Down Expand Up @@ -49,6 +50,7 @@ typedef struct [[gnu::aligned(4)]] {
} spi_device_status;

typedef enum [[clang::flag_enum]] spi_device_intercept_en : uint32_t {
spi_device_intercept_en_none = 0,
spi_device_intercept_en_status = (1u << 0),
spi_device_intercept_en_jedec = (1u << 1),
spi_device_intercept_en_sfdp = (1u << 2),
Expand Down Expand Up @@ -163,6 +165,7 @@ typedef struct [[gnu::aligned(4)]] {
} spi_device_tpm_cap;

typedef enum [[clang::flag_enum]] spi_device_tpm_cfg : uint32_t {
spi_device_tpm_cfg_none = 0,
spi_device_tpm_cfg_en = (1u << 0),
spi_device_tpm_cfg_tpm_mode = (1u << 1),
spi_device_tpm_cfg_hw_reg_dis = (1u << 2),
Expand All @@ -171,6 +174,7 @@ typedef enum [[clang::flag_enum]] spi_device_tpm_cfg : uint32_t {
} spi_device_tpm_cfg;

typedef enum [[clang::flag_enum]] spi_device_tpm_status : uint32_t {
spi_device_tpm_status_none = 0,
spi_device_tpm_status_cmdaddr_notempty = (1u << 0),
spi_device_tpm_status_wrfifo_pending = (1u << 1),
spi_device_tpm_status_rdfifo_aborted = (1u << 2),
Expand Down
3 changes: 3 additions & 0 deletions sw/device/lib/hal/autogen/uart.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <stdint.h>

typedef enum [[clang::flag_enum]] uart_intr : uint32_t {
uart_intr_none = 0,
uart_intr_tx_watermark = (1u << 0),
uart_intr_rx_watermark = (1u << 1),
uart_intr_tx_done = (1u << 2),
Expand Down Expand Up @@ -40,6 +41,7 @@ typedef struct [[gnu::aligned(4)]] {
} uart_ctrl;

typedef enum [[clang::flag_enum]] uart_status : uint32_t {
uart_status_none = 0,
uart_status_txfull = (1u << 0),
uart_status_rxfull = (1u << 1),
uart_status_txempty = (1u << 2),
Expand Down Expand Up @@ -74,6 +76,7 @@ typedef struct [[gnu::aligned(4)]] {
} uart_fifo_status;

typedef enum [[clang::flag_enum]] uart_ovrd : uint32_t {
uart_ovrd_none = 0,
uart_ovrd_txen = (1u << 0),
uart_ovrd_txval = (1u << 1),
} uart_ovrd;
Expand Down
Loading