[PATCH 0/3] kallsyms: remove special handling for CONFIG_ARM
From: Chris.Brandt@renesas.com (Chris Brandt)
Date: 2016-02-03 14:15:16
On 2 Feb 2016, Chris Brandt wrote
quoted
And when a printed out the destination, I get: Stubs at c09ff000 :00000000 BF006F20 EF9F0000 EA000064 etc... Notice the first entry is 0....that's not right...and we know it's using that first __stubs_start symbol.The first quantity after __stubs_start should be the address of vector_swi. Can you check if the second value coincides with that?
Yes, it does. bf006f20 T vector_swi Which is why it booted once I modified the start address.
quoted hunk ↗ jump to hunk
This is caused by the fact that __stubs_start is not aligned correctly on XIP. Could you try this, please?diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index 7160658fd5d4..a5b8e7b80d17 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S@@ -164,8 +164,8 @@ SECTIONS * The vectors and stubs are relocatable code, and the * only thing that matters is their relative offsets */ - __stubs_start = .; .stubs : { + __stubs_start = .; *(.stubs) } __stubs_end = .;
Yup, that fixed it!
bf353edc T _etext
bf353ee0 t __stubs_start
bf353ee0 T __stubs_start
bf353ee4 t vector_rst
bf353f00 t vector_irq
and my new print out:
Stubs at c09ff000 :BF006F20 EF9F0000 EA000064 E320F000 etc...
Now that it is working on my XIP system, I will say that I'm also happy to see that extra junk in kallsyms.c and link-vmlinux.sh be removed. Those things also caused me some issues when I first started trying to get the XIP_KERNEL stuff back working.
Chris