Linux boot on a ppc 405
Hi all,
I am working with a Xilinx Virtex II Pro evaluation board, wich has two PowerPC 405 and I'm trying to boot a vanilla linux kernel 2.6.23.14. Until now I've manged to make it uncompress the kernel, but it doesn't boot.
My question is how the initial execution (the one who uncompresses the kernel image) transfers the processor to the kernel itself. I've looked in the arch/ppc/boot/simple/relocate.S code and it jumps to the position 0x0 after uncompressing, is it right? The kernel is uncompressed at that position?
Thanks,
Signature · 1 line
Ricardo Ayres Severo <[email protected]>
Quoted 11 lines · Ricardo Severo
Hi all,
I am working with a Xilinx Virtex II Pro evaluation board, wich has two PowerPC 405 and I'm trying to boot a vanilla linux kernel 2.6.23.14. Until now I've manged to make it uncompress the kernel, but it doesn't boot. My question is how the initial execution (the one who uncompresses the kernel image) transfers the processor to the kernel itself. I've looked in the
arch/ppc/boot/simple/relocate.Scode and it jumps to the position0x0after uncompressing, is it right? The kernel is uncompressed at that position?
Quoted 1 line
Thanks,
It should branch to the beginning of arch/ppc/kernel/head_4xx.S, which I think was 0x0.
Some things to check are:
- Comment/remove the weak embed_config in arch/ppc/boot/simple/misc-embedded.c
- Did you use ttyUL0 or ttyS0 as your console?
If that fails, you can use XMD to set a breakpoint at 0x0 and then read the memory to see if it matches up with an objdump of vmlinux.
Quoted 10 lines · Ricardo Severo
Hi all,
I am working with a Xilinx Virtex II Pro evaluation board, wich has two PowerPC 405 and I'm trying to boot a vanilla linux kernel 2.6.23.14. Until now I've manged to make it uncompress the kernel, but it doesn't boot. My question is how the initial execution (the one who uncompresses the kernel image) transfers the processor to the kernel itself. I've looked in the
arch/ppc/boot/simple/relocate.Scode and it jumps to the position0x0after uncompressing, is it right? The kernel is uncompressed at that position?
Post your output log please.
If your getting a message that the kernel is uncompressing, but you don't have any output beyond that then most likely your console is not setup correctly. If you've got a debugger, look at memory at the __log_buf location to see if there are any boot logs there.
Cheers,
g.
Signature · 2 lines
Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd.
Grant,
my output is the following:
loaded at: 00400000 004E919C
board data at: 00000000 0000007C
relocated to: 00404040 004040BC
zimage at: 00404E2C 004E620A
avail ram: 004EA000 8DA05119
Linux/PPC load: console=ttyUL0,9600
Uncompressing Linux...done.
Now booting the kernel
nothing shows up next.
I tried to look at __log_buf but the debugger doesn't recognize it. The debugger only knows the code of the part that boots the kernel. I also tried setting ttyUL0 and ttyS0 for the linux console. Any ideas of how I can get the real position of __log_buf?
Thanks,
Quoted 27 lines · Grant Likely
Quoted 10 lines · Ricardo Severo
Hi all,
I am working with a Xilinx Virtex II Pro evaluation board, wich has two PowerPC 405 and I'm trying to boot a vanilla linux kernel 2.6.23.14. Until now I've manged to make it uncompress the kernel, but it doesn't boot. My question is how the initial execution (the one who uncompresses the kernel image) transfers the processor to the kernel itself. I've looked in the
arch/ppc/boot/simple/relocate.Scode and it jumps to the position0x0after uncompressing, is it right? The kernel is uncompressed at that position?Post your output log please.
If your getting a message that the kernel is uncompressing, but you don't have any output beyond that then most likely your console is not setup correctly. If you've got a debugger, look at memory at the
__log_buflocation to see if there are any boot logs there.Cheers,
g.--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
Signature · 1 line
Ricardo Ayres Severo <[email protected]>
You have to look at the System.map file, find the __log_buf symbol, and then look at the address manually.
Steve
Quoted 2 lines
-----Original Message-----
From: [email protected]
[mailto:linuxppc-embedded-
Quoted 1 line
[email protected]] On Behalf Of Ricardo
Ayres Severo
Quoted 36 lines
Sent: Monday, January 28, 2008 2:53 PM
Cc: [email protected]
Subject: Re: Linux boot on a ppc 405
=20
Grant,
=20
my output is the following:
=20
loaded at: 00400000 004E919C
=20
board data at: 00000000 0000007C
=20
relocated to: 00404040 004040BC
=20
zimage at: 00404E2C 004E620A
=20
avail ram: 004EA000 8DA05119
=20
=20
Linux/PPC load: console=3DttyUL0,9600
=20
Uncompressing Linux...done.
=20
Now booting the kernel
=20
=20
=20
nothing shows up next.
I tried to look at__log_bufbut the debugger doesn't recognize it. The debugger only knows the code of the part that boots the kernel. I also tried setting ttyUL0 and ttyS0 for the linux console. Any ideas of how I can get the real position of__log_buf? =20
Thanks,
=20
On Jan 27, 2008 7:15 PM, Grant Likely <[email protected]>
Quoted 4 lines · wrote:
Quoted 4 lines · Ricardo Severo
Quoted 3 lines
Hi all,
I am working with a Xilinx Virtex II Pro evaluation board, wich
has two
Quoted 1 line
Quoted 1 line
Quoted 1 line
PowerPC 405 and I'm trying to boot a vanilla linux kernel
2.6.23.14.
Quoted 1 line
Quoted 1 line
Quoted 1 line
Until now I've manged to make it uncompress the kernel, but it
doesn't boot.
Quoted 1 line
Quoted 1 line
Quoted 1 line
My question is how the initial execution (the one who uncompresses
the
Quoted 1 line
Quoted 1 line
Quoted 1 line
kernel image) transfers the processor to the kernel itself. I've
looked
Quoted 1 line
Quoted 1 line
Quoted 1 line
in the
arch/ppc/boot/simple/relocate.Scode and it jumps to the
position
Quoted 1 line
Quoted 1 line
Quoted 1 line
0x0after uncompressing, is it right? The kernel is uncompressed
at that
Quoted 6 lines
Quoted 6 lines
Quoted 1 line
position?
Post your output log please.
If your getting a message that the kernel is uncompressing, but you don't have any output beyond that then most likely your console is
not
Quoted 20 lines
Quoted 11 lines
setup correctly. If you've got a debugger, look at memory at the
__log_buflocation to see if there are any boot logs there.Cheers,
g.--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.=20
=20
=20
--
Ricardo Ayres Severo <[email protected]>
_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded
Steve,
I tried that, but the System.map is not the real memory address, it's processed by the mmu isn't it?
This is my System.map: c01e0cc4 b __log_buf
when I try to look at the position 0xc01e0cc4 the debugger returns:
Error: Cannot access memory at address 0xc01e0cc4
Am I doing something wrong?
Thanks,
Quoted 97 lines · Stephen Neuendorffer
You have to look at the System.map file, find the
__log_bufsymbol, and then look at the address manually.Steve
Quoted 2 lines
-----Original Message-----
From: [email protected][mailto:linuxppc-embedded-
Quoted 1 line
[email protected]] On Behalf Of Ricardo
Ayres Severo
Quoted 36 lines
Sent: Monday, January 28, 2008 2:53 PM
Cc: [email protected]
Subject: Re: Linux boot on a ppc 405Grant,
my output is the following:
loaded at: 00400000 004E919C
board data at: 00000000 0000007C
relocated to: 00404040 004040BC
zimage at: 00404E2C 004E620A
avail ram: 004EA000 8DA05119
Linux/PPC load: console=ttyUL0,9600
Uncompressing Linux...done.
Now booting the kernel
nothing shows up next.
I tried to look at__log_bufbut the debugger doesn't recognize it. The debugger only knows the code of the part that boots the kernel. I also tried setting ttyUL0 and ttyS0 for the linux console. Any ideas of how I can get the real position of__log_buf?Thanks,
On Jan 27, 2008 7:15 PM, Grant Likely <[email protected]>
Quoted 4 lines · wrote:
Quoted 4 lines · Ricardo Severo
Quoted 3 lines
Hi all,
I am working with a Xilinx Virtex II Pro evaluation board, wich
has two
Quoted 1 line
Quoted 1 line
Quoted 1 line
PowerPC 405 and I'm trying to boot a vanilla linux kernel
2.6.23.14.
Quoted 1 line
Quoted 1 line
Quoted 1 line
Until now I've manged to make it uncompress the kernel, but it
doesn't boot.
Quoted 1 line
Quoted 1 line
Quoted 1 line
My question is how the initial execution (the one who uncompresses
the
Quoted 1 line
Quoted 1 line
Quoted 1 line
kernel image) transfers the processor to the kernel itself. I've
looked
Quoted 1 line
Quoted 1 line
Quoted 1 line
in the
arch/ppc/boot/simple/relocate.Scode and it jumps to theposition
Quoted 1 line
Quoted 1 line
Quoted 1 line
0x0after uncompressing, is it right? The kernel is uncompressedat that
Quoted 6 lines
Quoted 6 lines
Quoted 1 line
position?
Post your output log please.
If your getting a message that the kernel is uncompressing, but you don't have any output beyond that then most likely your console is
not
Quoted 21 lines
Quoted 11 lines
setup correctly. If you've got a debugger, look at memory at the
__log_buflocation to see if there are any boot logs there.Cheers,
g.--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.--
Ricardo Ayres Severo <[email protected]>_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded
Signature · 1 line
Ricardo Ayres Severo <[email protected]>
I've you've reset the processor, then the MMU has been reset too, in which case yourlog_buf will most likely be at 1e0cc4. The 'trick' is that resetting the processor
leaves the memory intact.
Steve
Quoted 14 lines
-----Original Message-----
From: Ricardo Ayres Severo [mailto:[email protected]]
Sent: Monday, January 28, 2008 3:00 PM
To: Stephen Neuendorffer
Cc: [email protected]
Subject: Re: Linux boot on a ppc 405
=20
Steve,
=20
I tried that, but the System.map is not the real memory address, it's processed by the mmu isn't it?
=20
This is my System.map:c01e0cc4b__log_buf
when I try to look at the position0xc01e0cc4the debugger returns:
Quoted 10 lines
Error: Cannot access memory at address
0xc01e0cc4
=20
Am I doing something wrong?
=20
Thanks,
=20Quoted 2 lines · Stephen Neuendorffer
You have to look at the System.map file, find the
__log_bufsymbol,
and
Quoted 7 lines
Quoted 7 lines
then look at the address manually.
Steve
Quoted 2 lines
-----Original Message-----
From:
Quoted 2 lines
Quoted 2 lines
[mailto:linuxppc-embedded-
Quoted 1 line
[email protected]] On Behalf Of =
Ricardo
Quoted 22 lines
Quoted 22 lines
Ayres Severo
Quoted 21 lines
Sent: Monday, January 28, 2008 2:53 PM
Cc: [email protected]
Subject: Re: Linux boot on a ppc 405Grant,
my output is the following:
loaded at: 00400000 004E919C
board data at: 00000000 0000007C
relocated to: 00404040 004040BC
zimage at: 00404E2C 004E620A
avail ram: 004EA000 8DA05119
Linux/PPC load: console=3DttyUL0,9600
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Uncompressing Linux...done.
Now booting the kernel
nothing shows up next.
I tried to look at__log_bufbut the debugger doesn't recognize
it.
Quoted 1 line
Quoted 1 line
Quoted 1 line
The debugger only knows the code of the part that boots the
kernel.
Quoted 11 lines
Quoted 11 lines
Quoted 6 lines
I also tried setting ttyUL0 and ttyS0 for the linux console. Any ideas of how I can get the real position of
__log_buf?Thanks,
On Jan 27, 2008 7:15 PM, Grant Likely <[email protected]>
Quoted 4 lines · wrote:
Quoted 4 lines · Ricardo Severo
Quoted 3 lines
Hi all,
I am working with a Xilinx Virtex II Pro evaluation board,
wich
Quoted 6 lines
Quoted 6 lines
has two
Quoted 1 line
Quoted 1 line
Quoted 1 line
PowerPC 405 and I'm trying to boot a vanilla linux kernel
2.6.23.14.
Quoted 1 line
Quoted 1 line
Quoted 1 line
Until now I've manged to make it uncompress the kernel, but it
doesn't boot.
Quoted 1 line
Quoted 1 line
Quoted 1 line
My question is how the initial execution (the one who
uncompresses
Quoted 2 lines
Quoted 2 lines
the
Quoted 1 line
Quoted 1 line
Quoted 1 line
kernel image) transfers the processor to the kernel itself.
I've
Quoted 2 lines
Quoted 2 lines
looked
Quoted 1 line
Quoted 1 line
Quoted 1 line
in the
arch/ppc/boot/simple/relocate.Scode and it jumps to
the
Quoted 2 lines
Quoted 2 lines
position
Quoted 1 line
Quoted 1 line
Quoted 1 line
0x0after uncompressing, is it right? The kernel is
uncompressed
Quoted 6 lines
Quoted 6 lines
at that
Quoted 5 lines
Quoted 5 lines
Quoted 1 line
position?
Post your output log please.
If your getting a message that the kernel is uncompressing, but
you
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
don't have any output beyond that then most likely your console
is
Quoted 2 lines
Quoted 2 lines
not
Quoted 1 line
Quoted 1 line
setup correctly. If you've got a debugger, look at memory at
the
Quoted 28 lines
Quoted 13 lines
Quoted 13 lines
Quoted 10 lines
__log_buflocation to see if there are any boot logs there.Cheers,
g.--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.Quoted 10 lines
Quoted 7 lines
--
Ricardo Ayres Severo <[email protected]>_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded=20
=20
=20
--
Ricardo Ayres Severo <[email protected]>
Quoted 8 lines · Ricardo Ayres Severo
Steve,
I tried that, but the System.map is not the real memory address, it's processed by the mmu isn't it?
This is my System.map:
c01e0cc4b__log_buf
when I try to look at the position0xc01e0cc4the debugger returns:
Error: Cannot access memory at address0xc01e0cc4
Drop the kernel offset of 0xc0000000
So; 0xc01e0cc4 becomes 0x001e0cc4 after reset.
g.
Signature · 2 lines
Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd.