Hi Andreas,
I would recommend you to utilize MQX code:
You need to reuse files with cache.c, cache_a5.c etc. (old versions attached)
and you need to define MMU TLBs for example like this:
// turn on MMU - create table, fill 4k items, change necessery ones items
void cache_setting_a5(void) {
#ifdef MMU_TLB
// available cahce setting:
// PSP_PAGE_TYPE_CACHE_WTNWA,
// PSP_PAGE_TYPE_CACHE_WBNWA,
// PSP_PAGE_TYPE_CACHE_NON,
/* Enable MMU and L1 cache */
/* alloc L1 mmu table */
//L1PageTable = _mem_alloc_align(MMU_TRANSLATION_TABLE_SIZE, MMU_TRANSLATION_TABLE_ALIGN);
/* None cacheable is comon with strongly ordered. MMU doesnt work with another init configuration */
_mmu_vinit(PSP_PAGE_TABLE_SECTION_SIZE(PSP_PAGE_TABLE_SECTION_SIZE_1MB) | PSP_PAGE_DESCR(PSP_PAGE_DESCR_ACCESS_RW_ALL) | PSP_PAGE_TYPE(PSP_PAGE_TYPE_STRONG_ORDER), (pointer)L1PageTable);
/* add region in sram area */
_mmu_add_vregion((pointer)__INTERNAL_SRAM_BASE, (pointer)__INTERNAL_SRAM_BASE, (_mem_size) 0x00100000, PSP_PAGE_TABLE_SECTION_SIZE(PSP_PAGE_TABLE_SECTION_SIZE_1MB) | PSP_PAGE_TYPE(PSP_PAGE_TYPE_CACHE_WBNWA) | PSP_PAGE_DESCR(PSP_PAGE_DESCR_ACCESS_RW_ALL));
/* add cached region in ddr area */
// !!!!! SDRAM not working when GRAM + QSPIO + GSPI1 TLB enabled !!!!!
// !!!!! SDRAM not working when GRAM + QSPIO + GSPI1 TLB enabled !!!!!
// !!!!! SDRAM not working when GRAM + QSPIO + GSPI1 TLB enabled !!!!!
// !!!!! SDRAM not working when GRAM + QSPIO + GSPI1 TLB enabled !!!!!
_mmu_add_vregion((pointer)__EXTERNAL_DDRAM_BASE, (pointer)__EXTERNAL_DDRAM_BASE, __EXTERNAL_DDRAM_SIZE, PSP_PAGE_TABLE_SECTION_SIZE(PSP_PAGE_TABLE_SECTION_SIZE_1MB) | PSP_PAGE_TYPE(PSP_PAGE_TYPE_CACHE_WBNWA) | PSP_PAGE_DESCR(PSP_PAGE_DESCR_ACCESS_RW_ALL));
/* add cached region in gram area */
//_mmu_add_vregion((pointer)__INTERNAL_GRAM_BASE, (pointer)__INTERNAL_GRAM_BASE, __INTERNAL_GRAM_SIZE, PSP_PAGE_TABLE_SECTION_SIZE(PSP_PAGE_TABLE_SECTION_SIZE_1MB) | PSP_PAGE_TYPE(PSP_PAGE_TYPE_CACHE_WBNWA) | PSP_PAGE_DESCR(PSP_PAGE_DESCR_ACCESS_RW_ALL));
/* add cached region in QSPI0 area */
//_mmu_add_vregion((pointer)__EXTERNAL_QSPI0_BASE, (pointer)__EXTERNAL_QSPI0_BASE, __EXTERNAL_QSPI0_SIZE, PSP_PAGE_TABLE_SECTION_SIZE(PSP_PAGE_TABLE_SECTION_SIZE_1MB) | PSP_PAGE_TYPE(PSP_PAGE_TYPE_CACHE_WBNWA) | PSP_PAGE_DESCR(PSP_PAGE_DESCR_ACCESS_RW_ALL));
/* add cached region in QSPI1 area */
//_mmu_add_vregion((pointer)__EXTERNAL_QSPI1_BASE, (pointer)__EXTERNAL_QSPI1_BASE, __EXTERNAL_QSPI1_SIZE, PSP_PAGE_TABLE_SECTION_SIZE(PSP_PAGE_TABLE_SECTION_SIZE_1MB) | PSP_PAGE_TYPE(PSP_PAGE_TYPE_CACHE_WBNWA) | PSP_PAGE_DESCR(PSP_PAGE_DESCR_ACCESS_RW_ALL));
_mmu_venable();
#endif
_dcache_enable();
_icache_enable();
}
/Jiri