hi @PetrS ,
Whether any change need to be made with respect to RXMGMASK. Also when I make MCR[IMRQ] set the control stopped in default ISR.

To set that MCR[IMRQ] using this line
CAN0->MCR = 0x1 << 0xF;
Without setting this I changed the individual mask CAN0->RXIMR[4] as you have mentioned above. It accepts all message id.
For your reference below I have attached CAN initialization code,
void FLEXCAN0_init(uint32_t RxID,uint32_t bps)
{
#define MSG_BUF_SIZE 4 /* Msg Buffer Size. (CAN 2.0AB: 2 hdr + 2 data= 4 words) */
uint32_t i = 0;
PCC->PCCn[PCC_FlexCAN0_INDEX] |= PCC_PCCn_CGC_MASK; /* CGC=1: enable clock to FlexCAN0 */
CAN0->MCR |= CAN_MCR_MDIS_MASK; /* MDIS=1: Disable module before selecting clock */
CAN0->CTRL1 &= ~CAN_CTRL1_CLKSRC_MASK; /* CLKsrc=0: Clock Source = oscillator (8 MHz) */
CAN0->MCR &= ~CAN_MCR_MDIS_MASK; /* MDIS=0; Enable module config. (Sets FRZ, HALT)*/
while (!((CAN0->MCR & CAN_MCR_FRZACK_MASK) >> CAN_MCR_FRZACK_SHIFT)) {
}
uint32_t PRESDIV = 8000000 / (16*bps) -1;
/* Good practice: wait for FRZACK=1 on freeze mode entry/exit */
CAN0->CTRL1 = 0x00DB0006 | (PRESDIV<<24);
for (i = 0; i < 128; i++) { /* CAN[port]: clear 32 msg bufs x 4 words/msg buf = 128 words*/
CAN0->RAMn[i] = 0; /* Clear msg buf word */
}
//CAN0->MCR = 0x1 << 0xF;
for (i = 0; i < 16; i++) { /* In FRZ mode, init CAN[port] 16 msg buf filters */
CAN0->RXIMR[i] = 0xFFFFFFFF; //0xFFFFFFFF; /* Check all ID bits for incoming messages */
}
CAN0->RXIMR[4] = 0x3F0<<18;
//CAN0->RXIMR[4] = 0x3F0<<18;
CAN0->RXMGMASK =0x00000000;//x3F0<<18 ; /* Global acceptance mask: check all ID bits */
CAN0->RAMn[4 * MSG_BUF_SIZE + 0] = 0x4<<24;
CAN0->RAMn[4 * MSG_BUF_SIZE + 1] = 0x201<<18;//RxID; /* Msg Buf 4, word 1: Standard ID =*/
CAN0->MCR = 0x0000001F; /* Negate FlexCAN 1 halt state for 32 MBs */
while ((CAN0->MCR && CAN_MCR_FRZACK_MASK) >> CAN_MCR_FRZACK_SHIFT) {
}
while ((CAN0->MCR && CAN_MCR_NOTRDY_MASK) >> CAN_MCR_NOTRDY_SHIFT) {
}
}
Also this is my reciever code,
int FLEXCAN0_receive_msg( uint32_t RxID,uint32_t Rx_LENGTH, uint32_t Rx_DATA, uint32_t ACK )
/* Recieved message number of data bytes */
{ /* Receive msg from ID 0x501 using msg buffer 4 */
//CAN0-> IFLAG1 = 0x00000001;
int j;
/* If CAN 0 MB 4 flag is set (received msg), read MB4 */
RxCODE = (CAN0->RAMn[4 * MSG_BUF_SIZE + 0] & 0x07000000) >> 24; /* Read CODE field */
RxLENGTH = (CAN0->RAMn[4 * MSG_BUF_SIZE + 0] & CAN_WMBn_CS_DLC_MASK)>> CAN_WMBn_CS_DLC_SHIFT;
RxID = (CAN0->RAMn[4 * MSG_BUF_SIZE + 1] & CAN_WMBn_ID_ID_MASK)>> CAN_WMBn_ID_ID_SHIFT ;
for (j=0; j<2; j++) { /* Read two words of data (8 bytes) */
RxDATA[j] = CAN0->RAMn[ 4*MSG_BUF_SIZE + 2 + j];
}
RxTIMESTAMP = (CAN0->RAMn[0 * MSG_BUF_SIZE + 0] & 0x000FFFF);
CAN0->IFLAG1 = 0x00000010; /* Clear CAN 0 MB 4 flag without clearing others*/
return RxID;
}
If I pass msg id 101 also it accepts

Could please tell what step i missing in CAN configuration