Tool/software:
Hi all,
one of our customers has been adding to the DM core firmware, while retaining existing functionality the firmware builder includes into this firmware.
The TRM shows that MCU_MCAN registers are accessible to the DM core "VIA RAT", we need clarification how the RAT needs to be setup in order to access the MCU_MCAN registers at 0x04E00000 and 0x04E10000.
![]()

Current syscfg RAT setup for 0x04E00000 size 128KB

Code summary
//Global struct defined
#define CONFIG_ADDR_TRANSLATE_RAT_BASE_ADDR (0x02FFE0000u)
#define CONFIG_ADDR_TRANSLATE_REGIONS (1u)
AddrTranslateP_RegionConfig gAddrTranslateRegionConfig[CONFIG_ADDR_TRANSLATE_REGIONS] =
{
{
.localAddr = 0x4E00000u,
.systemAddr = 0x4E00000u,
.size = AddrTranslateP_RegionSize_128K,
},
};
//Executed Code
AddrTranslateP_Params addrTranslateParams;
AddrTranslateP_Params_init(&addrTranslateParams);
addrTranslateParams.numRegions = CONFIG_ADDR_TRANSLATE_REGIONS;
addrTranslateParams.ratBaseAddr = CONFIG_ADDR_TRANSLATE_RAT_BASE_ADDR;
addrTranslateParams.regionConfig = &gAddrTranslateRegionConfig[0];
AddrTranslateP_init(&addrTranslateParams);
uint32_t mcu_can0_base_addr = (uint32_t)AddrTranslateP_getLocalAddr( (uint64_t)CSL_MCU_MCAN0_MSGMEM_RAM_BASE);
uint32_t mcu_can1_base_addr = (uint32_t)AddrTranslateP_getLocalAddr( (uint64_t)CSL_MCU_MCAN1_MSGMEM_RAM_BASE);
MCAN_isMemInitDone(mcu_can0_base_addr); <----DM core hangs here, in this MCAN driver API call, which reads a register based on above base addr
MCAN_isMemInitDone(mcu_can1_base_addr);
But the code does not seem to access the MCU_MCAN registers correctly and the MCAN_isMemInitDone() API hangs as it it not able to access the STAT register
Is there something else required to map the MCU_MCAN register space into the DM core?
Thanks!
--Gunter
