Thread (35 messages) 35 messages, 7 authors, 2010-03-22

change boot requirements [Was: make PHYS_OFFSET determined at run time (unfinished)]

From: Uwe Kleine-König <hidden>
Date: 2010-01-25 17:32:01

Hello,

On Fri, Jan 22, 2010 at 12:58:31PM +0100, Uwe Kleine-K?nig wrote:
just a short status report:  The code seems to work OK if PHYS_OFFSET is
determined correctly.

The problem is when it does not.  Currently I place arch/arm/boot/Image
at 0xa1008000[1] with PHYS_OFFSET being 0xa0000000.  Then
arch/arm/boot/head.S guesses PHYS_OFFSET to be 0xa1000000 resulting
__va(bank->start) of my only bank to be 0xbf000000.  And so this bank is
discarded by sanity_check_meminfo as 0xbf000000 overlaps the vmalloc
region.

So how to proceed?  These possiblities come to (my) mind:

 - parse the atag list to better guess phys_offset
   (both zImage and Image would need to do that)
 - require that zImage and Image are placed such that the guess is done
   right (which is stupid for zImage as then the decompressor needs to
   move the decompressed image)
 - require the bootloader to pass phys_offset (r3?)
 - make the ram mapping non-linear
 - don't discard the whole bank, only the addresses overlaping the
   vmalloc region

Anything else?  Preferences?  Thoughts?
I'd like to go forward here and if I don't hear anything here I'll start
requiring that the bootloader sets r3=PHYS_OFFSET as this seems the most
robust solution to me.

Best regards
Uwe

-- 
Pengutronix e.K.                              | Uwe Kleine-K?nig            |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help