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