fix caching problem

git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1380 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Greg Watson 2004-03-07 17:28:59 +00:00
parent dd9651017a
commit ac00a0a7e2
2 changed files with 25 additions and 1 deletions

View File

@ -17,6 +17,7 @@ default DCACHE_RAM_SIZE=0x8000
initinclude "FAMILY_INIT" cpu/ppc/mpc74xx/mpc74xx.inc initinclude "FAMILY_INIT" cpu/ppc/mpc74xx/mpc74xx.inc
object clock.o object clock.o
object cache.S
initobject clock.o initobject clock.o
initobject cache.o initobject cache.S

View File

@ -0,0 +1,23 @@
#define ASM
#include "ppcreg.h"
#include <ppc_asm.tmpl>
#define NUM_CACHE_LINES 128*8
#define L1_CACHE_LINE_SIZE 32
#define cache_flush_buffer 0x1000
/*
* Flush data cache
* Do this by just reading lots of stuff into the cache.
*/
.globl flush_dcache
flush_dcache:
lis r3,cache_flush_buffer@h
ori r3,r3,cache_flush_buffer@l
li r4,NUM_CACHE_LINES
mtctr r4
0: lwz r4,0(r3)
addi r3,r3,L1_CACHE_LINE_SIZE
bdnz 0b
blr