[U-Boot-Users] How does the stack works in the DCache?

Frank Young young726 at hotmail.com
Mon May 17 05:38:10 CEST 2004


Hello all,

I am using PPC 405 Walnut with 16M sdram. I got a question regarding the 
DCache setting in u-boot cpu/ppc4xx/start.S. I wrote the pseudo-code of 
start.S as below:

(In File cpu/ppc4xx/start.S)
.globl _start
_start:
_start:
	clear and set up registers
	invalidate I and D caches
	Enable 128M cachable regions
	set up temporary stack in DCACHE
	sdram_init() (cpu/ppc4xx/sdram.c)

..........

I understand the code is trying to set up a stack in DCache. But I didn't 
get how the code makes it. Before calling sdram_init(), the stack pointer is 
CFG_INIT_RAM_ADDR = 0x40000000. I suppose this address is not a physical 
address and it refers to the address in the DCache. Is that right? But the 
CFG_INIT_RAM_ADDR is located in the address space of sdram. So is there any 
address translator in between DCache and CFG_INIT_RAM_ADDR? Or did I miss 
anything? I just couldn't figure out how the stack works in DCache... Can 
someone give me any clue? Thanks!

Frank

_________________________________________________________________
Is your PC infected? Get a FREE online computer virus scan from McAfee® 
Security. http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963





More information about the U-Boot mailing list