soc/sdram: add L2_SIZE constant and avoid declaring an empty flush_l2_cache function when L2_SIZE is not defined

This commit is contained in:
Florent Kermarrec 2015-06-19 08:39:37 +02:00
parent 7c2d0fa641
commit f44956bfca
3 changed files with 7 additions and 8 deletions

View File

@ -53,6 +53,8 @@ class SDRAMSoC(SoC):
# XXX: Limit main_ram_size to 256MB, we should modify mem_map to allow larger memories. # XXX: Limit main_ram_size to 256MB, we should modify mem_map to allow larger memories.
main_ram_size = min(main_ram_size, 256*1024*1024) main_ram_size = min(main_ram_size, 256*1024*1024)
l2_size = self.sdram_controller_settings.l2_size l2_size = self.sdram_controller_settings.l2_size
if l2_size:
self.add_constant("L2_SIZE", l2_size)
# add a Wishbone interface to the DRAM # add a Wishbone interface to the DRAM
wb_sdram = wishbone.Interface() wb_sdram = wishbone.Interface()

View File

@ -355,7 +355,10 @@ static void do_command(char *c)
else if(strcmp(token, "mw") == 0) mw(get_token(&c), get_token(&c), get_token(&c)); else if(strcmp(token, "mw") == 0) mw(get_token(&c), get_token(&c), get_token(&c));
else if(strcmp(token, "mc") == 0) mc(get_token(&c), get_token(&c), get_token(&c)); else if(strcmp(token, "mc") == 0) mc(get_token(&c), get_token(&c), get_token(&c));
else if(strcmp(token, "crc") == 0) crc(get_token(&c), get_token(&c)); else if(strcmp(token, "crc") == 0) crc(get_token(&c), get_token(&c));
#ifdef L2_SIZE
else if(strcmp(token, "flushl2") == 0) flush_l2_cache(); else if(strcmp(token, "flushl2") == 0) flush_l2_cache();
#endif
#ifdef FLASH_BOOT_ADDRESS #ifdef FLASH_BOOT_ADDRESS
else if(strcmp(token, "flashboot") == 0) flashboot(); else if(strcmp(token, "flashboot") == 0) flashboot();

View File

@ -67,16 +67,14 @@ void flush_cpu_dcache(void)
#endif #endif
} }
#ifdef CSR_L2_CACHE_BASE #ifdef L2_SIZE
void flush_l2_cache(void) void flush_l2_cache(void)
{ {
unsigned int l2_nwords;
unsigned int i; unsigned int i;
register unsigned int addr; register unsigned int addr;
register unsigned int dummy; register unsigned int dummy;
l2_nwords = 1 << l2_cache_size_read(); for(i=0;i<2*L2_SIZE;i++) {
for(i=0;i<2*l2_nwords;i++) {
addr = MAIN_RAM_BASE + i*4; addr = MAIN_RAM_BASE + i*4;
#if defined (__lm32__) #if defined (__lm32__)
__asm__ volatile("lw %0, (%1+0)\n":"=r"(dummy):"r"(addr)); __asm__ volatile("lw %0, (%1+0)\n":"=r"(dummy):"r"(addr));
@ -87,8 +85,4 @@ void flush_l2_cache(void)
#endif #endif
} }
} }
#else
void flush_l2_cache(void)
{
}
#endif #endif