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/ |