From d452a0043d51f07bc5509b72f8443acd2b4bd0ec Mon Sep 17 00:00:00 2001 From: Henrik Brix Andersen Date: Sun, 21 May 2023 21:24:44 +0200 Subject: [PATCH] drivers: can: mcan: add build asserts for message RAM configuration Add build asserts to ensure the Message RAM configuration meets the IP core restrictions. Signed-off-by: Henrik Brix Andersen --- drivers/can/can_mcan.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/can/can_mcan.h b/drivers/can/can_mcan.h index 4c661ce0f68..a9364580080 100644 --- a/drivers/can/can_mcan.h +++ b/drivers/can/can_mcan.h @@ -558,6 +558,15 @@ enum can_mcan_mram_cfg { #define NUM_TX_EVENT_FIFO_ELEMENTS CAN_MCAN_DT_MRAM_TX_EVENT_FIFO_ELEM(MCAN_DT_PATH) #define NUM_TX_BUF_ELEMENTS CAN_MCAN_DT_MRAM_TX_BUFFER_ELEM(MCAN_DT_PATH) +/* Assert that the Message RAM configuration meets the M_CAN IP core restrictions */ +BUILD_ASSERT(NUM_STD_FILTER_ELEMENTS <= 128, "Maximum Standard filter elements exceeded"); +BUILD_ASSERT(NUM_EXT_FILTER_ELEMENTS <= 64, "Maximum Extended filter elements exceeded"); +BUILD_ASSERT(NUM_RX_FIFO0_ELEMENTS <= 64, "Maximum Rx FIFO 0 elements exceeded"); +BUILD_ASSERT(NUM_RX_FIFO1_ELEMENTS <= 64, "Maximum Rx FIFO 1 elements exceeded"); +BUILD_ASSERT(NUM_RX_BUF_ELEMENTS <= 64, "Maximum Rx Buffer elements exceeded"); +BUILD_ASSERT(NUM_TX_EVENT_FIFO_ELEMENTS <= 32, "Maximum Tx Buffer elements exceeded"); +BUILD_ASSERT(NUM_TX_BUF_ELEMENTS <= 32, "Maximum Tx Buffer elements exceeded"); + #ifdef CONFIG_CAN_STM32FD #define NUM_STD_FILTER_DATA CONFIG_CAN_MAX_STD_ID_FILTER #define NUM_EXT_FILTER_DATA CONFIG_CAN_MAX_EXT_ID_FILTER