X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-redboot.git;a=blobdiff_plain;f=packages%2Fhal%2Farm%2Fmx37%2Fkaro%2Fv1_0%2Finclude%2Fplf_mmap.h;h=73b24a7d2637a52328aabe677e068f2bd23e30fd;hp=087612b03940ff28826386194cd0d00b22f3a025;hb=6bb42bcdf232113f4d0c7967594780be176a03cd;hpb=b0e0bcf4e6263fe2617b8593c136502622c6f6ce diff --git a/packages/hal/arm/mx37/karo/v1_0/include/plf_mmap.h b/packages/hal/arm/mx37/karo/v1_0/include/plf_mmap.h index 087612b0..73b24a7d 100644 --- a/packages/hal/arm/mx37/karo/v1_0/include/plf_mmap.h +++ b/packages/hal/arm/mx37/karo/v1_0/include/plf_mmap.h @@ -47,19 +47,47 @@ // This does not depend on the vaddr. #define HAL_MM_PAGESIZE(vaddr, pagesize) CYG_MACRO_START \ - (pagesize) = SZ_1M; \ + (pagesize) = SZ_1M; \ CYG_MACRO_END // Get the physical address from a virtual address: #define HAL_VIRT_TO_PHYS_ADDRESS( vaddr, paddr ) CYG_MACRO_START \ - cyg_uint32 _v_ = (cyg_uint32)(vaddr); \ - if ( _v_ < 128 * SZ_1M ) /* SDRAM */ \ - _v_ += SDRAM_BASE_ADDR; \ - else /* Rest of it */ \ - /* no change */ ; \ - (paddr) = _v_; \ + cyg_uint32 _v_ = (cyg_uint32)(vaddr); \ + if ( _v_ < 128 * SZ_1M ) /* SDRAM */ \ + _v_ += SDRAM_BASE_ADDR; \ + else /* Rest of it */ \ + /* no change */ ; \ + (paddr) = _v_; \ CYG_MACRO_END +/* + * translate the virtual address of ram space to physical address + * It is dependent on the implementation of hal_mmu_init + */ +static unsigned long __inline__ hal_virt_to_phy(unsigned long virt) +{ + if (virt < 0x08000000) { + return virt | 0x40000000; + } + if ((virt & 0xF0000000) == 0x40000000) { + return virt & ~0x08000000; + } + return virt; +} + +/* + * remap the physical address of ram space to uncacheable virtual address space + * It is dependent on the implementation of hal_mmu_init + */ +static unsigned long __inline__ hal_ioremap_nocache(unsigned long phy) +{ + /* 0x48000000~0x48FFFFFF is uncacheable meory space which is mapped to SDRAM*/ + if ((phy & 0xF0000000) == 0x40000000) { + phy |= 0x08000000; + } + return phy; +} + //--------------------------------------------------------------------------- #endif // CYGONCE_HAL_BOARD_PLATFORM_PLF_MMAP_H