[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Fwd: evbarm ldscript vs. KERNEL_BASE_PHYS != KERNEL_BASE_VIRT
Nick Hudson wrote:
On Monday 10 March 2008 20:11:27 Rafal Boni wrote:
Oops, I guess there isn't a separate evbarm list; forwarding here.
evbarm ldscript vs. KERNEL_BASE_PHYS != KERNEL_BASE_VIRT
From: Rafal Boni <rafal%pobox.com@localhost>
If I build a kernel where KERNEL_BASE_PHYS != KERNEL_BASE_VIRT, the BSS
ends up having it's (ELF) physaddr set to one based at KERNEL_BASE_VIRT
instead of KERNEL_BASE_PHYS. This seems like a bug to me and it makes
it hard for me to correctly load such a kernel, since my loader tries
to zero memory that's likely unmapped at the time.
Diff that fixes it for me is below; I thought I'd pass this by the list
for feedback since I'm far from an ARM gooroo.
I think this is standard linker behaviour
" The linker will normally set the LMA equal to the VMA. You can
change that by using the `AT' keyword. The expression LMA that follows
the `AT' keyword specifies the load address of the section."
Sorry, I guess I should have added a bit of context. The LMA is set to
an address based at KERNEL_BASE_PHYS for the text & data sections in the
evbarm linker script already; it just isn't done so for the BSS (& sbss,
My question is whether it was only done for text & data (not bss, sbss,
etc.) due to an oversight, or was this intentional? It certainly seems
wrong to me, but I don't own any of the evbarm-supported eval boards, so
can't say it has no side effects there.
Main Index |
Thread Index |