On Fri, 2006-10-06 at 11:23 -0400, Jimi Xenidis wrote:
> 
> > Welcome to yaboot version 10.1.14-r716.SuSE
> > booted from '/ht/[EMAIL PROTECTED],1/[EMAIL PROTECTED]'
> > Enter "help" to get some basic usage information
> > boot: xen
> > Please wait, loading kernel...
> > Can't find a loadable segment !
> 
> $ objdump -p xen
> 
> xen:     file format elf32-powerpc
> 
> Program Header:
>     LOAD off    0x00000000 vaddr 0x003fff00 paddr 0x003fff00 align 2**8
>          filesz 0x000ab0d8 memsz 0x000bebc8 flags rwx 

Here is the yaboot bug: if the segment's p_offset == 0, yaboot won't
load it. :( See second/yaboot.c:1134 in the yaboot git tree. [1]

The linker is doing that to us. It's placing the ELF headers (including
program headers) inside the text PT_LOAD segment. The text still starts
where we told it to though, at 0x400000. That's why the vaddr/paddr is
0x100 bytes below that: that's where the ELF header itself is being
loaded into memory.

Unfortunately this patch does not fix it:
diff -r 48840bbe607d xen/arch/powerpc/xen.lds.S
--- a/xen/arch/powerpc/xen.lds.S        Tue Sep 12 14:28:16 2006 -0500
+++ b/xen/arch/powerpc/xen.lds.S        Fri Oct 06 10:31:48 2006 -0500
@@ -12,7 +12,7 @@ SEARCH_DIR("=/usr/local/lib64"); SEARCH_
    __DYNAMIC = 0;    */
 PHDRS
 {
-  text PT_LOAD FILEHDR PHDRS;
+  text PT_LOAD;
 }
 SECTIONS
 {

This issue may be related to our use of -N in the final link.

[1] http://yaboot.ozlabs.org/

-- 
Hollis Blanchard
IBM Linux Technology Center


_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel

Reply via email to