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