Hi, NXP Developer team,
I have some questions about enhanced fifo.
Background:
Using FlexCAN0 on the S32K312, we need to receive 73 extended ID messages and 17 J1939TP messages, and transmit 15 extended ID messages.
The S32K312 provides only 64 Mailboxes (MBs). To ensure data continuity for J1939TP, 17 dedicated MBs are allocated exclusively for them.
This leaves 47 MBs for the remaining messages, of which 41 MBs are used for receiving the 73 extended ID messages, leaving only 6 MBs available for transmission.
Under a 70% CAN bus load during testing, no frame loss was observed on the receive side, but significant frame loss occurred on some transmit messages.
To address the lack of available transmit MBs, Enhanced FIFO was introduced to extend the mailbox capacity.

Phenomenon:
When Enhanced FIFO is enabled, some Mailboxes (MBs) become unusable. I assigned 25 short-cycle messages to Enhanced FIFO for reception, and the remaining messages were assigned to MBs configured in Full or Basic receive mode. However, some receive messages experienced noticeable frame loss, and transmit frame loss was not improved either.
According to the S32K312_0P09C Errata, the MBs affected by Enhanced FIFO must still be configured because the EB tool requires consecutive numbering of MBs. Therefore, I configured those MBs in Full mode, and set the filter code to 0 and filter mask to 0x1FFFFFFF.
Additionally, I observed that after enabling Enhanced FIFO, the interrupt execution time increased from 30 µs to 40 µs, and I'm not sure if this is related to the frame loss issue.


Question 1:
When Enhanced FIFO is enabled, how can the restricted Mailboxes be disabled using EB tresos? For example, if these MBs are used for receiving or transmitting, how should they be disabled or excluded from use?
Question 2:
If Enhanced FIFO is not enabled, approximately how many messages can each Mailbox receive?