All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot-Users] Memory layout on PXA
@ 2003-02-12 18:40 Geir Thomassen
  2003-02-12 19:07 ` Robert Schwebel
  0 siblings, 1 reply; 5+ messages in thread
From: Geir Thomassen @ 2003-02-12 18:40 UTC (permalink / raw)
  To: u-boot

I am porting u-boot to a custom PXA255 board.

Just a quick check, to see if I understand the code correctly:

1) u-boot is copied from flash into memory at TEXT_BASE
(typ. 0xA3000000 on PXA).

2) The stack is below the u-boot code. From cpu/xscale/start.S,
it looks like the stack is at TEXT_BASE - CFG_MALLOC_LEN - 12. I
think the stack grows toward lower addresses on arm, is this
correct ?

3) Memory for malloc() is supposed to be after the u-boot
code (including initialized and initialized data) at address
armboot_real_end. If I understand the code correct, it points
0xbadc0de. Some time, it has been set to armboot_end +
CONFIG_STACKSIZE in cpu/xscale/cpu.c, but the code for doing
so have been commented out (both in 0.2.0 and in CVS). There
is room for putting the heap between the stack and the u-boot
code ...

Sooo, if I understand this correct, this is a mess. How
should it be done ? Are there any good reasons for a particular
memory layout on PXA ?

BTW: Does u-boot run "out of the box" on any PXA hardware, I
don't understand how it could unless the hardware have RAM at
0xBADC0DE ..

-- 
Geir

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot-Users] Memory layout on PXA
  2003-02-12 18:40 [U-Boot-Users] Memory layout on PXA Geir Thomassen
@ 2003-02-12 19:07 ` Robert Schwebel
  2003-02-12 20:08   ` Wolfgang Denk
  0 siblings, 1 reply; 5+ messages in thread
From: Robert Schwebel @ 2003-02-12 19:07 UTC (permalink / raw)
  To: u-boot

Hi Geir, 

On Wed, Feb 12, 2003 at 07:40:27PM +0100, Geir Thomassen wrote:
> I am porting u-boot to a custom PXA255 board.

I've recently sent several patches to Wolfgang for the PXA architecture;
unfortunately he didn't have time to integrate them yet. If I don't
forget it I can send you my patches against current CVS tomorrow. 

> 1) u-boot is copied from flash into memory at TEXT_BASE
> (typ. 0xA3000000 on PXA).

Ack. 

> 2) The stack is below the u-boot code. From cpu/xscale/start.S,
> it looks like the stack is at TEXT_BASE - CFG_MALLOC_LEN - 12. I
> think the stack grows toward lower addresses on arm, is this
> correct ?

In ARMboot the stack was above the relocated uboot code - I tried to
change this for my PXA250 implementation. I know that there are code
fragments left which assume that the stack is above - this is partly
fixed in the patches I sent to Wolfgang. 

> 3) Memory for malloc() is supposed to be after the u-boot
> code (including initialized and initialized data) at address
> armboot_real_end.

Not in my ports (CSB226, Innokom). I tried to follow the way which is
outlined in the README document. 

> BTW: Does u-boot run "out of the box" on any PXA hardware, I
> don't understand how it could unless the hardware have RAM at
> 0xBADC0DE ..

At the moment I have it running on the plattforms mentioned above. If
you don't get my patch tomorrow in the morning please ask back... 

Robert

-- 
 Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
 Pengutronix - Linux Solutions for Science and Industry
   Braunschweiger Str. 79,  31134 Hildesheim, Germany
   Handelsregister:  Amtsgericht Hildesheim, HRA 2686
    Phone: +49-5121-28619-0 |  Fax: +49-5121-28619-4

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot-Users] Memory layout on PXA
  2003-02-12 19:07 ` Robert Schwebel
@ 2003-02-12 20:08   ` Wolfgang Denk
  2003-02-13  6:38     ` Robert Schwebel
  2003-02-13  6:40     ` Robert Schwebel
  0 siblings, 2 replies; 5+ messages in thread
From: Wolfgang Denk @ 2003-02-12 20:08 UTC (permalink / raw)
  To: u-boot

In message <20030212190734.GH10342@pengutronix.de> you wrote:
> 
> I've recently sent several patches to Wolfgang for the PXA architecture;
> unfortunately he didn't have time to integrate them yet. If I don't

Sorry...

> forget it I can send you my patches against current CVS tomorrow. 
> 
> > 1) u-boot is copied from flash into memory at TEXT_BASE
> > (typ. 0xA3000000 on PXA).
> 
> Ack. 

NAK! This is NOT how it's intended  to  be.  TEXT_BASE  is  the  link
address  of  the image in flash. You should dynamically determine the
size of your RAM, and copy  the  u-boot  code  to  the  top  of  RAM,
wherever that may be.

> > 2) The stack is below the u-boot code. From cpu/xscale/start.S,
> > it looks like the stack is at TEXT_BASE - CFG_MALLOC_LEN - 12. I

-12 ??? Aren't there any alignment requirements for XScale?

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
Like winter snow on summer lawn, time past is time gone.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot-Users] Memory layout on PXA
  2003-02-12 20:08   ` Wolfgang Denk
@ 2003-02-13  6:38     ` Robert Schwebel
  2003-02-13  6:40     ` Robert Schwebel
  1 sibling, 0 replies; 5+ messages in thread
From: Robert Schwebel @ 2003-02-13  6:38 UTC (permalink / raw)
  To: u-boot

On Wed, Feb 12, 2003 at 09:08:23PM +0100, Wolfgang Denk wrote:
> Sorry...

No problem :-) 

> > > 1) u-boot is copied from flash into memory at TEXT_BASE
> > > (typ. 0xA3000000 on PXA).
> > 
> > Ack. 
> 
> NAK! This is NOT how it's intended  to  be.  TEXT_BASE  is  the  link
> address  of  the image in flash. You should dynamically determine the
> size of your RAM, and copy  the  u-boot  code  to  the  top  of  RAM,
> wherever that may be.

I know - just didn't have time to find out how to achieve this. This is
how it worked in the other ports. 

> > > 2) The stack is below the u-boot code. From cpu/xscale/start.S,
> > > it looks like the stack is at TEXT_BASE - CFG_MALLOC_LEN - 12. I
> 
> -12 ??? Aren't there any alignment requirements for XScale?

12 bytes = 3 x 4 bytes = 3 32-bit-words...? This is for the abort-stack
(however that does works exactly - I didn't use it yet).   

Robert 
-- 
 Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
 Pengutronix - Linux Solutions for Science and Industry
   Braunschweiger Str. 79,  31134 Hildesheim, Germany
   Handelsregister:  Amtsgericht Hildesheim, HRA 2686
    Phone: +49-5121-28619-0 |  Fax: +49-5121-28619-4

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot-Users] Memory layout on PXA
  2003-02-12 20:08   ` Wolfgang Denk
  2003-02-13  6:38     ` Robert Schwebel
@ 2003-02-13  6:40     ` Robert Schwebel
  1 sibling, 0 replies; 5+ messages in thread
From: Robert Schwebel @ 2003-02-13  6:40 UTC (permalink / raw)
  To: u-boot

On Wed, Feb 12, 2003 at 09:08:23PM +0100, Wolfgang Denk wrote:
> You should dynamically determine the size of your RAM, and copy  the
> u-boot  code  to  the  top  of  RAM, wherever that may be.

For PXA the RAM banks are in the 0xA000'0000 to 0xAFFF'FFFF area. How is
the situation with other non-PXA XScales? 

Robert
-- 
 Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
 Pengutronix - Linux Solutions for Science and Industry
   Braunschweiger Str. 79,  31134 Hildesheim, Germany
   Handelsregister:  Amtsgericht Hildesheim, HRA 2686
    Phone: +49-5121-28619-0 |  Fax: +49-5121-28619-4

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-02-13  6:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-02-12 18:40 [U-Boot-Users] Memory layout on PXA Geir Thomassen
2003-02-12 19:07 ` Robert Schwebel
2003-02-12 20:08   ` Wolfgang Denk
2003-02-13  6:38     ` Robert Schwebel
2003-02-13  6:40     ` Robert Schwebel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.