nds32: ftmac100 support cache enable.
Enable cache and ftmac100 performance can be improved. Signed-off-by: rick <rick@andestech.com>
This commit is contained in:
parent
ce4e2370f7
commit
e336b73d8a
4 changed files with 51 additions and 5 deletions
|
@ -119,19 +119,46 @@ set_ivb:
|
|||
/* set IVIC, vector size: 4 bytes, base: 0x0 */
|
||||
mtsr $r0, $ivb
|
||||
/*
|
||||
* MMU_CTL NTC0 Cacheable/Write-Back
|
||||
* MMU_CTL NTC0 Non-cacheable
|
||||
*/
|
||||
li $r0, ~0x6
|
||||
mfsr $r1, $mr0
|
||||
and $r1, $r1, $r0
|
||||
mtsr $r1, $mr0
|
||||
|
||||
li $r0, ~0x3
|
||||
mfsr $r1, $mr8
|
||||
and $r1, $r1, $r0
|
||||
mtsr $r1, $mr8
|
||||
#if (!defined(CONFIG_SYS_ICACHE_OFF) || !defined(CONFIG_SYS_DCACHE_OFF))
|
||||
/*
|
||||
* MMU_CTL NTC0 Cacheable/Write-Back
|
||||
*/
|
||||
li $r0, 0x4
|
||||
mfsr $r1, $mr0
|
||||
or $r1, $r1, $r0
|
||||
mtsr $r1, $mr0
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SYS_DCACHE_OFF
|
||||
#ifdef CONFIG_ARCH_MAP_SYSMEM
|
||||
/*
|
||||
* MMU_CTL NTC1 Non-cacheable
|
||||
*/
|
||||
li $r0, ~0x18
|
||||
mfsr $r1, $mr0
|
||||
and $r1, $r1, $r0
|
||||
mtsr $r1, $mr0
|
||||
/*
|
||||
* MMU_CTL NTM1 mapping for partition 0
|
||||
*/
|
||||
li $r0, ~0x6000
|
||||
mfsr $r1, $mr0
|
||||
and $r1, $r1, $r0
|
||||
mtsr $r1, $mr0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIG_SYS_ICACHE_OFF)
|
||||
li $r0, 0x1
|
||||
mfsr $r1, $mr8
|
||||
|
|
|
@ -48,6 +48,27 @@ static inline void sync(void)
|
|||
#define MAP_WRBACK (0)
|
||||
#define MAP_WRTHROUGH (0)
|
||||
|
||||
#ifdef CONFIG_ARCH_MAP_SYSMEM
|
||||
static inline void *map_sysmem(phys_addr_t paddr, unsigned long len)
|
||||
{
|
||||
if(paddr <PHYS_SDRAM_0_SIZE + PHYS_SDRAM_1_SIZE)
|
||||
paddr = paddr | 0x40000000;
|
||||
return (void *)(uintptr_t)paddr;
|
||||
}
|
||||
|
||||
static inline void *unmap_sysmem(const void *vaddr)
|
||||
{
|
||||
phys_addr_t paddr = (phys_addr_t)vaddr;
|
||||
paddr = paddr & ~0x40000000;
|
||||
return (void *)(uintptr_t)paddr;
|
||||
}
|
||||
|
||||
static inline phys_addr_t map_to_sysmem(const void *ptr)
|
||||
{
|
||||
return (phys_addr_t)(uintptr_t)ptr;
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline void *
|
||||
map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags)
|
||||
{
|
||||
|
|
|
@ -23,8 +23,7 @@
|
|||
#define CONFIG_CMDLINE_EDITING
|
||||
#define CONFIG_PANIC_HANG
|
||||
|
||||
#define CONFIG_SYS_ICACHE_OFF
|
||||
#define CONFIG_SYS_DCACHE_OFF
|
||||
#define CONFIG_ARCH_MAP_SYSMEM
|
||||
|
||||
#define CONFIG_BOOTP_SEND_HOSTNAME
|
||||
#define CONFIG_BOOTP_SERVERIP
|
||||
|
|
|
@ -22,8 +22,7 @@
|
|||
|
||||
#define CONFIG_CMDLINE_EDITING
|
||||
|
||||
#define CONFIG_SYS_ICACHE_OFF
|
||||
#define CONFIG_SYS_DCACHE_OFF
|
||||
#define CONFIG_ARCH_MAP_SYSMEM
|
||||
|
||||
#define CONFIG_BOOTP_SEND_HOSTNAME
|
||||
#define CONFIG_BOOTP_SERVERIP
|
||||
|
|
Loading…
Reference in a new issue