Can compile, now on to booting

Donald White dbwhite at asu.edu
Thu Jun 6 14:06:25 EST 2002


I did this once on a mpc860 board.  It involved running the uncompressed
kernel image through vxhack.c from Dan Malek with a few fixes since the
segments seemed to have moved around.  The VxWorks loader would then
load the hacked image through bootp or tftp.  I also had to have one of
the Linux bootloader files initialize a bd_t structure.  I was able to
poke around in memory and find where the VxWorks loader was keeping the
environment.

Don

Dave Strout wrote:

>
> Thanks all for the help with the toolchain -- I'm now cranking out ppc
> code.
>
> Now to boot.  What I'm actually trying to do is replace a VxWorks
> environment on one of my companies products with Linux. The unit is
> 405GP based, and pretty close to a walnut, as far as I can tell
> (comparing the mem map in the docs with the 405gp.h file in the
> kernel).  I'm hoping to get away with using the existing boot monitor,
> at least in the short term.  The monitor has the ability to load an ELF
> executable & jump to it, but I'm not getting very far beyond that -- in
> fact it crashes with the pc at the first instruction.  I've tried my
> freshly-built 2.4.18 kernel, and the ppcboot executable, and they both
> crash on the first instruction.
>
> I don't have a hardware debugger for this, so I'm sort of at a loss.
> There are some LED's on the front that I could try & write some asm to
> blink as I go along, but since I hang on the first instruction, I'm not
> sure that would help.......
>
> All thoughts greatly appreciated.
>
> dave.
>
>
> Dumps:
>
> Linux:
> ftp 134.141.133.254:vmlinux to SDRAM size=1430968
> Booting system S/W at entry 0xc0000000
> Starting at 0xc0000000...
>
>
> program
> Exception current instruction address: 0xc0000000
> Machine Status Register: 0x00029200
> Condition Register: 0x24200082
> Task: 0x1f1a8e0 "tBoot"
>
> r0     =   c034dc   sp     =  1f1a4d0   r2     =        0   r3
> =        0
> r4     =  1f80000   r5     =  1f1a8e0   r6     =    29200   r7     =
> 1200
> r8     =       20   r9     =   ca0000   r10    =        4   r11
> =        0
> r12    =        0   r13    =        0   r14    =        0   r15
> =        0
> r16    =        0   r17    =        0   r18    =        0   r19
> =        0
> r20    =        0   r21    =        0   r22    =        0   r23
> =        0
> r24    =        0   r25    =        0   r26    =        0   r27    =
> ca0000
> r28    =   ca0000   r29    = c0000000   r30    =  1ffffc8   r31    =
> c0000000
> msr    =    29200   lr     =   c034e4   ctr    =        0   pc     =
> c0000000
> cr     = 24200082   xer    =        0
>
> ppcboot:
>
> ftp 134.141.133.254:ppcboot to SDRAM size=186232 + 4
> Booting system S/W at entry 0xfff80000
> Starting at 0xfff80000...
>
>
> program
> Exception current instruction address: 0xfff80000
> Machine Status Register: 0x00029200
> Condition Register: 0x24200082
> Task: 0x1f1a8e0 "tBoot"
>
> r0     =   c034dc   sp     =  1f1a4d0   r2     =        0   r3
> =        0
> r4     =  1f80000   r5     =  1f1a8e0   r6     =    29200   r7     =
> 1200
> r8     =       20   r9     =   ca0000   r10    =        4   r11
> =        0
> r12    =        0   r13    =        0   r14    =        0   r15
> =        0
> r16    =        0   r17    =        0   r18    =        0   r19
> =        0
> r20    =        0   r21    =        0   r22    =        0   r23
> =        0
> r24    =        0   r25    =        0   r26    =        0   r27    =
> ca0000
> r28    =   ca0000   r29    = fff80000   r30    =  1ffffc8   r31    =
> fff80000
> msr    =    29200   lr     =   c034e4   ctr    =        0   pc     =
> fff80000
> cr     = 24200082   xer    =        0
>
> Objdump says:
> [dstrout at dstrout dstrout]$ ~/tools/bin/powerpc-linux-objdump -D ppcboot
> | head -20
>
> ppcboot:     file format elf32-powerpc
>
> Disassembly of section .resetvec:
>
> fffffffc <.resetvec>:
> fffc:    4b f8 01 04     b    fff80100 <_start>
> Disassembly of section .text:
>
> fff80000 <version_string-0x4>:
> fff80000:    27 05 19 56     dozi    r24,r5,6486
>
> fff80004 <version_string>:
> fff80004:    50 50 43 42     rlwimi    r16,r2,8,13,1
> fff80008:    6f 6f 74 20     xoris    r15,r27,29728
> fff8000c:    31 2e 31 2e     addic    r9,r14,12590
> fff80010:    35 20 28 4a     addic.    r9,r0,10314
> fff80014:    75 6e 20 20     andis.    r14,r11,8224
> fff80018:    35 20 32 30     addic.    r9,r0,12848
> fff8001c:    30 32 20 2d     addic    r1,r18,8237
>
> [dstrout at dstrout dstrout]$ ~/tools/bin/powerpc-linux-objdump -D vmlinux
> | head -20
>
> vmlinux:     file format elf32-powerpc
>
> Disassembly of section .text:
>
> c0000000 <_start>:
> c0000000:    7c 7f 1b 78     mr    r31,r3
> c0000004:    7c 9e 23 78     mr    r30,r4
> c0000008:    7c bd 2b 78     mr    r29,r5
> c000000c:    7c dc 33 78     mr    r28,r6
> c0000010:    7c fb 3b 78     mr    r27,r7
> c0000014:    3b 00 00 00     li    r24,0
> c0000018:    48 00 23 49     bl    c0002360 <initial_mmu>
>
> c000001c <turn_on_mmu>:
> c000001c:    38 00 10 32     li    r0,4146
> c0000020:    7c 1b 03 a6     mtsrr1    r0
> c0000024:    3c 00 c0 00     lis    r0,-16384
> c0000028:    60 00 22 c0     ori    r0,r0,8896
> c000002c:    7c 1a 03 a6     mtsrr0    r0
>
>
>


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list