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