fix caching problem
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1380 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
dd9651017a
commit
ac00a0a7e2
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue