nds32: ftmac100 support cache enable.
PATCH 2/3 nds32: ftmac100 support cache enable.
From: rick <[email protected]>
Enable cache and ftmac100 performance can be improved.
Signed-off-by rick <[email protected]>
--- arch/nds32/cpu/n1213/start.S | 29 ++++++++++++++++++++++++++++- arch/nds32/include/asm/io.h | 21 +++++++++++++++++++++ include/configs/adp-ae3xx.h | 3 +-- include/configs/adp-ag101p.h | 3 +-- 4 files changed, 51 insertions(+), 5 deletions(-)
arch/nds32/cpu/n1213/start.S +28 -1
@@ -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
arch/nds32/include/asm/io.h +21 -0
@@ -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) {
include/configs/adp-ae3xx.h +1 -2
@@ -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
include/configs/adp-ag101p.h +1 -2
@@ -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
Signature · 1 line
1.7.9.5