defining ZRELADDR as PHYS_OFFSET + TEXT_OFFSET

Russell King - ARM Linux linux at arm.linux.org.uk
Wed Jan 27 19:15:23 EST 2010


On Wed, Jan 27, 2010 at 11:12:28AM +0100, Uwe Kleine-König wrote:
> Hello,
> 
> currently all platforms need to define zreladdr-y in
> arch/arm/mach-$mach/Makefile.boot and PHYS_OFFSET (in
> arch/arm/mach-$mach/include/mach/memory.h).
> 
> Constraints for these are:
> 
>  TEXTADDR = PAGE_OFFSET + TEXT_OFFSET
>  __virt_to_phys(virt) = virt - PAGE_OFFSET + PHYS_OFFSET (at least for
> 	"small" virtual addresses)
>  ZRELADDR = __virt_to_phys(TEXTADDR)
> 
> (The equallity for __virt_to_phys only holds "normaly" according to
> http://lists.arm.linux.org.uk/lurker/message/20010723.185051.94ce743c.en.html.
> In practice it holds for addresses of the first bank of RAM which is
> enough for the purposes of this mail.)
> 
> So we can deduce ZRELADDR = PHYS_OFFSET + TEXT_OFFSET.
> 
> Is there something I missed or is it possible to get rid of zreladdr-y
> in .../Makefile.boot and define it according to the equation above?

You'd need to find some way to get PHYS_OFFSET out of the C code
into the makefile.  With all sorts of stuff going on in various
platforms memory.h files, that doesn't look simple.



More information about the linux-arm-kernel mailing list