?Loading and debugging a linux kernel on a walnut board with a BDI2000

4 messages, 3 authors, 2001-07-03 · open the first message on its own page

?Loading and debugging a linux kernel on a walnut board with a BDI2000

From: ibm405gp <hidden>
Date: 2001-07-02 16:18:43



Does anyone try to load an debug a linuk kernel with a BDI2000 on a
Walnut board (IBM 405GP).
My "vmlinuz-walnut" file generated with "make zImage" (with mvista
toolschain) seems invalid for
the bdi2000 but it works fine with 1.15 ROM Monitor

BDI>load
Loading vmlinuz-walnut , please wait ....
# Invalid program file format

Thanks for your help.

Phil

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

Re: ?Loading and debugging a linux kernel on a walnut board with a BDI2000

From: Scott Anderson <hidden>
Date: 2001-07-02 16:23:02

ibm405gp wrote:
My "vmlinuz-walnut" file generated with "make zImage" (with mvista
toolschain) seems invalid for
the bdi2000 but it works fine with 1.15 ROM Monitor
It's been a while since I played with it, but as I recall the makefile
tacks on a header to create an IBM Evaluation Board image.  To figure
out what it is doing, you might want to look in
arch/ppc/boot/tree/Makefile for something called mkevimg.

    Scott Anderson
    scott_anderson@mvista.com   MontaVista Software Inc.
    (408)328-9214               1237 East Arques Ave.
    http://www.mvista.com       Sunnyvale, CA  94085

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

Re: ?Loading and debugging a linux kernel on a walnut board with a BDI2000

From: Mark Powell <hidden>
Date: 2001-07-02 16:37:24

Ah yes, that's right - Scott reminded me. The vmlinuz-walnut file is in the
image format for the IBM Treeboot mechanism.

When I moved to PPCBoot for the boot ROM (http://ppcboot.sourceforge.net) I
had make a PPCboot image from the plain kernel image, which is in
    arch/ppc/boot/images/vmlinux.gz

You might tree using this file with the BDI2000.

--
Mark Powell, Senior Software Engineer, Primagraphics Limited
New Cambridge House, Litlington, nr.Royston, Herts, SG8 0SS, UK
Tel. +44 1763 852222, Fax. 853324, http://www.primagraphics.co.uk


----- Original Message -----
From: "Scott Anderson" <redacted>
To: "ibm405gp" <redacted>
Cc: <redacted>
Sent: Monday, July 02, 2001 5:23 PM
Subject: Re: ?Loading and debugging a linux kernel on a walnut board with a
BDI2000



ibm405gp wrote:
My "vmlinuz-walnut" file generated with "make zImage" (with mvista
toolschain) seems invalid for
the bdi2000 but it works fine with 1.15 ROM Monitor
It's been a while since I played with it, but as I recall the makefile
tacks on a header to create an IBM Evaluation Board image.  To figure
out what it is doing, you might want to look in
arch/ppc/boot/tree/Makefile for something called mkevimg.

    Scott Anderson
    scott_anderson@mvista.com   MontaVista Software Inc.
    (408)328-9214               1237 East Arques Ave.
    http://www.mvista.com       Sunnyvale, CA  94085


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

Re: ?Loading and debugging a linux kernel on a walnut board with a BDI2000

From: ibm405gp <hidden>
Date: 2001-07-03 16:25:28

You're right,the "mkevimg" perl script suppressed the ELF header and
replace it by a
specific header for the IBM rom monitor.
I use the temporary file "zImage.tree.out" generated in the Makefile and
the format is now OK
but the boot sequence fails, the zImage is not extracted
In arch/ppc/boot/tree/main.c, i put some debug printf, and i have
"Memcopy Done " instead of "gunzip done"
What means the condition "if (im[0] == 0x1f && im[1] == 0x8b) " ?
It seems the "imageSect_start" is not set but this global variable is
assign by the "mkirimg" perl script in the Makefile :

// Makefile :

../utils/mkirimg -v treeboot.image treeboot.image.out irSectStart.txt
String table section header offset: 0xbf874
Section name strings start at: 0xbf6ea, 74 bytes.
Data section   - Address: 0x00406000, Size: 0x00000404, File Offset
0x00016000
Bss  section   - Address: 0x00406404, Size: 0x000012f4, File Offset
0x00016404
Image section  - Address: 0x00000000, Size: 0x000a6bf9
Initrd section not found in file: treeboot.image
irSectStartOffset Address: 0x004063d4
Updated symbol "imageSect_start" to 0x004076f8
Updated symbol "imageSect_size" to 0x000a6bf9


// arch/ppc/boot/tree/main.c

    /* Linux kernel image section */

    kick_watchdog();

    im = (unsigned char *)(imageSect_start);
    len = imageSect_size;
    dst = (void *)PROG_START;

    /* Check for the gzip archive magic numbers */

    if (im[0] == 0x1f && im[1] == 0x8b) {

        /* The gunzip routine needs everything nice and aligned */

	void *cp = (void *)ALIGN_UP(RAM_FREE, 8);
	avail_ram = (void *)(cp + ALIGN_UP(len, 8));	/* used by zalloc() */
	memcpy(cp, im, len);

	/* I'm not sure what the 0x200000 parameter is for, but it works. */
	/* It tells gzip the size of the area you wish to copy into.
	** The boot image is loaded beyond this point - if you increase this
	** number, then be sure to increase the load address of treeboot.
	*/

	gunzip(dst, 0x400000, cp, (int *)&len);
	printf("\n-----  Gunzip Done     --------\n\n");
    } else {
	memcpy(dst, im, len);
	printf("\n-----  MemCopy Done     --------\n\n");
    }




Scott Anderson a écrit :
ibm405gp wrote:
quoted
My "vmlinuz-walnut" file generated with "make zImage" (with mvista
toolschain) seems invalid for
the bdi2000 but it works fine with 1.15 ROM Monitor
It's been a while since I played with it, but as I recall the makefile
tacks on a header to create an IBM Evaluation Board image.  To figure
out what it is doing, you might want to look in
arch/ppc/boot/tree/Makefile for something called mkevimg.

    Scott Anderson
    scott_anderson@mvista.com   MontaVista Software Inc.
    (408)328-9214               1237 East Arques Ave.
    http://www.mvista.com       Sunnyvale, CA  94085
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help