problem to load uImage but not zImage (on virtex-4 board)
hi,
I'm trying to port Linux 2.6 on Avnet FX12 MM board with U-Boot and the help of xilinx ML403 config.
I have generate my costum xparameters.h file with EDK 8.2i.
I use ELDK 4.1 and Linux 2.6.20.x.
I have modified ml403.h u-boot's config file to adapt it for my board and I have no problem to boot u-boot.
I use the right board_info structure from <asm/ppcboot.h> and not the one in xilinx_ml403.h.
When I load the zImage directly with xilinx xmd debugger, the kernel start without problem (if I don't have KGDB or SERIAL_TEXT_DEBUG option in my kernel config). But when I try to load the uImage with u-boot, the kernel start but crach befor I can see something on output.
The kernel start because I debug it and the platform_init is ok, setup_arch too and it crach after ppc4xx_setup_arch at printk(KERN_INFO "Xilinx ML403 Reference System (Virtex-4 FX)\n") line when the kernel access in printk.c.
I use the opb_uart16550 IP in my Xilinx design and the associat drivers in u-boot and linux.
I'm new in linux embedded and I'm in internship...I have any idea where and what is the problem, certanly in the serial int I guest but I'm not sure.
Thanks and sorry for my english I'm fench.
Guillaume Berthelom
Signature · 2 lines
View this message in context: http://www.nabble.com/problem-to-load-uImage-but-not-zImage-%28on-virtex-4-board%29-tf3681663.html#a10289563 Sent from the Uboot - Users mailing list archive at Nabble.com.
[U-Boot-Users] problem to load uImage but not zImage (on virtex-4board)
I take it you are running PPC405 core, right (since it's possible use Microblaze there)? Try to uncomment "#define DEBUG" in lib_ppc/board.c.
You'll see u-boot output regarding board info, see whether it's consistent.
Regarding debug - do you use BDI2000? In any rate, are you sure kernel crashes on that printk() operation or you just don't see any output on console? Where exactly it crashes?
Leonid.
-----Original Message-----
From: [email protected] [mailto:u-boot-users-bounces at lists.sourceforge.net] On Behalf Of Guillaume Berthelom
Sent: Wednesday, May 02, 2007 9:20 AM
To: u-boot-users at lists.sourceforge.net
Subject: [U-Boot-Users] problem to load uImage but not zImage (on virtex-4board)
hi,
I'm trying to port Linux 2.6 on Avnet FX12 MM board with U-Boot and the help
of xilinx ML403 config.
I have generate my costum xparameters.h file with EDK 8.2i. I use ELDK 4.1 and Linux 2.6.20.x.
I have modified ml403.h u-boot's config file to adapt it for my board and I
have no problem to boot u-boot.
I use the right board_info structure from <asm/ppcboot.h> and not the one inxilinx_ml403.h.
When I load the zImage directly with xilinx xmd debugger, the kernel start
without problem (if I don't have KGDB or SERIAL_TEXT_DEBUG option in my kernel config). But when I try to load the uImage with u-boot, the kernel
start but crach befor I can see something on output.
The kernel start because I debug it and the platform_init is ok, setup_arch
too and it crach after ppc4xx_setup_arch at printk(KERN_INFO "Xilinx ML403
Reference System (Virtex-4 FX)\n") line when the kernel access in printk.c.
I use the opb_uart16550 IP in my Xilinx design and the associat drivers in
u-boot and linux.
I'm new in linux embedded and I'm in internship...I have any idea where and
what is the problem, certanly in the serial int I guest but I'm not sure.
Thanks and sorry for my english I'm fench.
Guillaume Berthelom
Signature · 16 lines
View this message in context: http://www.nabble.com/problem-to-load-uImage-but-not-zImage-%28on-virtex -4-board%29-tf3681663.html#a10289563 Sent from the Uboot - Users mailing list archive at Nabble.com. ------------------------------------------------------------------------ - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ U-Boot-Users mailing list U-Boot-Users at lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users
Quoted 10 lines · Guillaume Berthelom
When I load the zImage directly with xilinx xmd debugger, the kernel start without problem (if I don't have KGDB or
SERIAL_TEXT_DEBUGoption in my kernel config). But when I try to load the uImage with u-boot, the kernel start but crach befor I can see something on output.
The kernel start because I debug it and theplatform_initis ok,setup_archtoo and it crach afterppc4xx_setup_archatprintk(KERN_INFO "Xilinx ML403 Reference System (Virtex-4 FX)\n")line when the kernel access inprintk.c.I use the
opb_uart16550IP in my Xilinx design and the associat drivers in u-boot and linux.
What are you passing for the kernel command line?
Can you post your .config?
Cheers,
g.
Signature · 4 lines
Grant Likely, B.Sc. P.Eng. Secret Lab Technologies Ltd. grant.likely at secretlab.ca (403) 399-0195
[U-Boot-Users] problem to load uImage but not zImage (onvirtex-4 board)
Grant is right - kernel command line (defined by u-boot variable "bootargs") is also very important, though it's difficult to see how wrong command line can crash printk(). It definitely can prevent serial output from showing up on console though.
Leonid.
-----Original Message-----
From: [email protected] [mailto:u-boot-users-bounces at lists.sourceforge.net] On Behalf Of Grant Likely
Sent: Wednesday, May 02, 2007 10:19 AM
To: Guillaume Berthelom
Cc: u-boot-users at lists.sourceforge.net
Subject: Re: [U-Boot-Users] problem to load uImage but not zImage (onvirtex-4 board)
Quoted 1 line · Guillaume Berthelom
When I load the zImage directly with xilinx xmd debugger, the kernel
start
Quoted 1 line
without problem (if I don't have KGDB or
SERIAL_TEXT_DEBUGoption in
my
Quoted 1 line
kernel config). But when I try to load the uImage with u-boot, the
kernel
Quoted 2 lines
start but crach befor I can see something on output. The kernel start because I debug it and the
platform_initis ok,
setup_arch
Quoted 1 line
too and it crach after
ppc4xx_setup_archat printk(KERN_INFO "Xilinx
ML403
Quoted 1 line
Reference System (Virtex-4 FX)\n") line when the kernel access in
printk.c.
Quoted 2 lines
I use the
opb_uart16550IP in my Xilinx design and the associat
drivers in
Quoted 1 line
u-boot and linux.
What are you passing for the kernel command line?
Can you post your .config?
Cheers,
g.
Signature · 15 lines
Grant Likely, B.Sc. P.Eng. Secret Lab Technologies Ltd. grant.likely at secretlab.ca (403) 399-0195 ------------------------------------------------------------------------ - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ U-Boot-Users mailing list U-Boot-Users at lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users
[U-Boot-Users] problem to load uImage but not zImage (onvirtex-4 board)
First Thanks from your reply...
In my ml403.h u-boot config's file I've got that:
...
#define CONFIG_EXTRA_ENV_SETTINGS \
"netdev=eth0\0" \
"addip=setenv bootargs $(bootargs) " \
"ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask)" \
":$(hostname):$(netdev):off panic=1\0" \
"rootpath=/opt/eldk4.1/ppc_4xx\0" \
"bootfile=/tftpboot/fx12/boot/uImage\0" \
"nfsargs=setenv bootargs nfsroot=$(serverip):$(rootpath)\0" \
"net_nfs8=dhcp 800000 $(bootfile);run nfsargs addip;bootm\0" \
"net_nfs4=dhcp 400000 $(bootfile);run nfsargs addip;bootm\0" \
"net_nfs2=dhcp 200000 $(bootfile);run nfsargs addip;bootm\0"#define CONFIG_BOOTCOMMAND "run net_nfs8" /* autoboot command */
#define CONFIG_BOOTARGS "console=ttyS0,9600"
#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */ #define CFG_LOADS_BAUD_CHANGE 1 /* allow baudrate change */
...
My Linux config is very simple for now, I give you my .config in attached file but my commande line is same as u-boot:CONFIG_CMDLINE_BOOL=y CONFIG_CMDLINE="console=ttyS0,9600"
I try to turn off this option to be sure u-boot passed the BOOTARGS commande to the kernel but no result.
The output of u-boot is:
U-Boot 1.2.0 (May 3 2007 - 09:57:13)
### No HW ID - assuming ML403
DRAM: 64 MB
Top of RAM usable for U-Boot at: 04000000
Reserving 159k for U-Boot at: 03fd8000
Reserving 384k for malloc() at: 03f78000
Reserving 120 Bytes for Board Info at: 03f77f88
Reserving 48 Bytes for Global Data at: 03f77f58
Stack Pointer at: 03f77f38
New Stack Pointer is: 03f77f38
Now running in RAM - U-Boot at: 03fd8000
FLASH: flash detect cfi
...
4 MB
*** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial
U-Boot relocated to 03fd8000
### main_loop entered: bootdelay=3
### main_loop: bootcmd="run net_nfs8"
Hit any key to stop autoboot: 0
...
Bootfile: fx12/boot/uImage
DHCP client bound to address 192.168.85.154
TFTP from server 192.168.85.11; our IP address is 192.168.85.154 Filename 'fx12/boot/uImage'.
Load address: 0x800000
Loading: #################################################################
#################################### done Bytes transferred = 517028 (7e3a4 hex) ## Booting image at 00800000 ... Image Name: Linux-2.6.20.7 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 516964 Bytes = 504.8 kB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
## Current stack ends at 0x03F77308 => set upper limit to 0x00800000 ## cmdline at 0x007FFF00 ... 0x007FFF71
bd address = 0x03F77F88 memstart = 0x00000000 memsize = 0x04000000 flashstart = 0xFF800000 flashsize = 0x00400000 flashoffset = 0x00000000 sramstart = 0x00000000 sramsize = 0x00000000 bootflags = 0xEEC2E568 procfreq = 300 MHz plb_busfreq = 100 MHz pci_busfreq = 0 MHz ethaddr = 00:0A:35:00:22:01 IP addr = 192.168.85.154 baudrate = 9600 bps
No initrd
## Transferring control to Linux (at address 00000000) ...
To debug the kernel I use the xilinx xmd debugger with the JTAG cable and GDB but I don't have the BDI2000 debugger.
I make a breakpoint at ppc4xx_setup_arch and then I continue with stepi commande. As you could see the printk() is not finish when the kernel crash:
(gdb) target remote 192.168.85.39:1234
Remote debugging using 192.168.85.39:12340x00010100 in ?? ()
(gdb) symbol-file vmlinux
Reading symbols from /export/home/geb/linux-2.6.20.7/vmlinux...done. (gdb) add-symbol-file vmlinux 0xC0000000
add symbol table from file "vmlinux" at
.text_addr = 0xc0000000
(y or n) y
Reading symbols from /export/home/geb/linux-2.6.20.7/vmlinux...done. (gdb) hbreak ppc4xx_setup_arch
Hardware assisted breakpoint 1 at 0xc0104e38: file arch/ppc/syslib/ppc4xx_setup.c, line 60.
(gdb) c
Continuing.
Breakpoint 1, ppc4xx_setup_arch () at arch/ppc/syslib/ppc4xx_setup.c:60
60 mtspr(SPRN_DBCR0, (DBCR0_IDM));
(gdb) stepi0xc0104e3c 60 mtspr(SPRN_DBCR0, (DBCR0_IDM));
(gdb) stepi
61 mtspr(SPRN_DBSR, 0xffffffff);
(gdb)0xc0104e44 61 mtspr(SPRN_DBSR, 0xffffffff);
(gdb)
68 }
(gdb)ml403_setup_arch () at arch/ppc/platforms/4xx/xilinx_ml403.c:92
92 printk(KERN_INFO "Xilinx ML403 Reference System
(Virtex-4 FX)\n");
(gdb) stepi0xc0105048 92 printk(KERN_INFO "Xilinx ML403 Reference
System (Virtex-4 FX)\n");
(gdb) stepi0xc010504c 92 printk(KERN_INFO "Xilinx ML403 Reference
System (Virtex-4 FX)\n");
(gdb)
printk (fmt=0xc00e3c0c "<6>Xilinx ML403 Reference System (Virtex-4 FX)\n") at kernel/printk.c:503
503 {
(gdb)0xc0014768 503 {
(gdb)0xc001476c 503 {
(gdb)
507 va_start(args, fmt);
(gdb)0xc0014774 507 va_start(args, fmt);
(gdb)0xc0014778 507 va_start(args, fmt);
(gdb)0xc001477c 507 va_start(args, fmt);
(gdb)0xc0014780 507 va_start(args, fmt);
(gdb)
503 {
(gdb)
507 va_start(args, fmt);
(gdb)
508 r = vprintk(fmt, args);
(gdb)
507 va_start(args, fmt);
(gdb)0xc0014794 507 va_start(args, fmt);
(gdb)
503 {
(gdb)0xc001479c 503 {
(gdb)0xc00147a0 503 {
(gdb)0xc00147a4 503 {
(gdb)0xc00147a8 503 {
(gdb)0xc00147ac 503 {
(gdb)
508 r = vprintk(fmt, args);
(gdb)
vprintk (fmt=0xc00e3c0c "<6>Xilinx ML403 Reference System (Virtex-4 FX)\n", args=0xc00fff80)
at kernel/printk.c:518
518 {
(gdb)0xc0014494 518 {
(gdb)0xc0014498 518 {
(gdb)0xc001449c 518 {
(gdb)
526 if (unlikely(oops_in_progress) && printk_cpu ==smp_processor_id())
(gdb)0xc00144a4 526 if (unlikely(oops_in_progress) &&printk_cpu == smp_processor_id())
(gdb)
518 {
(gdb)
526 if (unlikely(oops_in_progress) && printk_cpu ==smp_processor_id())
(gdb)
518 {
(gdb)
526 if (unlikely(oops_in_progress) && printk_cpu ==smp_processor_id())
(gdb)
91 msr = mfmsr();
(gdb)
96 SET_MSR_EE(msr & ~MSR_EE);
(gdb)0xc0014518 96 SET_MSR_EE(msr & ~MSR_EE);
(gdb)
538 printed_len = vscnprintf(printk_buf, sizeof(printk_buf),
fmt, args);
(gdb)0xc0014520 538 printed_len = vscnprintf(printk_buf,sizeof(printk_buf), fmt, args);
(gdb)
535 printk_cpu = smp_processor_id();
(gdb)0xc0014528 535 printk_cpu = smp_processor_id();
(gdb)
538 printed_len = vscnprintf(printk_buf, sizeof(printk_buf),
fmt, args);
(gdb)0xc0014530 538 printed_len = vscnprintf(printk_buf,sizeof(printk_buf), fmt, args);
(gdb)0xc0014534 538 printed_len = vscnprintf(printk_buf,sizeof(printk_buf), fmt, args);
(gdb)0xc0014538 538 printed_len = vscnprintf(printk_buf,sizeof(printk_buf), fmt, args);
(gdb)
535 printk_cpu = smp_processor_id();
(gdb)
538 printed_len = vscnprintf(printk_buf, sizeof(printk_buf),
fmt, args);
(gdb)
vscnprintf (
buf=0xc0114b24 "Linux version 2.6.20.7 (geb at bouleau) (gcc version
4.0.0 (DENX ELDK 4.1 4.0.0)) #1 Thu May 3 09:42:17 CEST 2007\n", size=1024,
fmt=0xc00e3c0c "<6>Xilinx ML403 Reference System (Virtex-4 FX)\n",
args=0xc00fff80)
at lib/vsprintf.c:515515 {
(gdb)0xc00a00c8 515 {
(gdb)0xc00a00cc 515 {
(gdb)0xc00a00d0 515 {
(gdb)0xc00a00d4 515 {
(gdb)
518 i=vsnprintf(buf,size,fmt,args);
(gdb)
vsnprintf (
buf=0xc0114b24 "Linux version 2.6.20.7 (geb at bouleau) (gcc version
4.0.0 (DENX ELDK 4.1 4.0.0)) #1 Thu May 3 09:42:17 CEST 2007\n", size=1024,
fmt=0xc00e3c0c "<6>Xilinx ML403 Reference System (Virtex-4 FX)\n",
args=0xc00fff80)
at lib/vsprintf.c:258258 {
(gdb)0xc009f8d0 258 {
(gdb)
277 if (unlikely((int) size < 0)) {
(gdb)
258 {
(gdb)0xc009f8dc 258 {
(gdb)0xc009f8e0 258 {
(gdb)
258 {
(gdb)0xc009f8e8 258 {
(gdb)
277 if (unlikely((int) size < 0)) {
(gdb)
286 end = buf + size;
(gdb)
289 if (end < buf) {
(gdb)0xc009f918 289 if (end < buf) {
(gdb)0xc009f91c 289 if (end < buf) {
(gdb)0xc009f920 289 if (end < buf) {
(gdb)0xc00a0080 294 for (; *fmt ; ++fmt) {
(gdb)0xc00a0084 294 for (; *fmt ; ++fmt) {
(gdb)0xc00a0088 294 for (; *fmt ; ++fmt) {
(gdb)0xc00a008c 294 for (; *fmt ; ++fmt) {
(gdb)
295 if (*fmt != '%') {
(gdb)0xc009f934 295 if (*fmt != '%') {
(gdb)0xc009f938 295 if (*fmt != '%') {
(gdb)
431 if (str < end)
(gdb)0xc009fe48 431 if (str < end)
(gdb)
432 *str = '%';
(gdb)
433 ++str;
(gdb)0xc009fe54 433 ++str;
(gdb)
294 for (; *fmt ; ++fmt) {
(gdb)0xc00a0078 294 for (; *fmt ; ++fmt) {
(gdb)0xc00a007c 294 for (; *fmt ; ++fmt) {
(gdb)0xc00a0080 294 for (; *fmt ; ++fmt) {
(gdb)0xc00a0084 294 for (; *fmt ; ++fmt) {
(gdb)0xc00a0088 294 for (; *fmt ; ++fmt) {
(gdb)
/*************. repeat loop x times ************/
(gdb)
488 if (size > 0) {
(gdb)0xc00a0094 488 if (size > 0) {
(gdb)
489 if (str < end)
(gdb)0xc00a009c 489 if (str < end)
(gdb)
490 *str = '\0';
(gdb)0xc00a00a4 490 *str = '\0';
(gdb)
495 return str-buf;
(gdb)
496 }
(gdb)0xc00a00b4 496 }
(gdb)0xc00a00b8 496 }
(gdb)0xc00a00bc 496 }
(gdb)0xc00a00c0 in vsnprintf (buf=Variable "buf" is not available. ) at lib/vsprintf.c:496
496 }
(gdb)0x00001100 in ?? ()
(gdb) bt
#0 0x00001100 in ?? ()
#1 0xc00a00dc in vscnprintf (buf=Variable "buf" is not available. )@lib/vsprintf.c:518
#2 0x480022b5 in ?? ()
#3 0x480022b5 in ?? ()
Previous frame inner to this frame (corrupt stack?) (gdb)
I also try to use the command line specified in 8250_early.c like console=uart,mmio,0x40401003,9600n8 (0x40401003 is my XPAR_UARTNS550_0_BASEADDR + 3) but no result too.
So if you have any ideas or suggestion...
Thanks,
Guillaume Berthelom
Leonid a ?crit :
Quoted 48 lines
Grant is right - kernel command line (defined by u-boot variable "bootargs") is also very important, though it's difficult to see how wrong command line can crash
printk(). It definitely can prevent serial output from showing up on console though.Leonid.
-----Original Message-----
From: u-boot-users-bounces at lists.sourceforge.net [mailto:u-boot-users-bounces at lists.sourceforge.net] On Behalf Of Grant Likely
Sent: Wednesday, May 02, 2007 10:19 AM
To: Guillaume Berthelom
Cc: u-boot-users at lists.sourceforge.net
Subject: Re: [U-Boot-Users] problem to load uImage but not zImage (onvirtex-4 board)Quoted 2 lines · Guillaume Berthelom
When I load the zImage directly with xilinx xmd debugger, the kernel
start
Quoted 2 lines
without problem (if I don't have KGDB or
SERIAL_TEXT_DEBUGoption inmy
Quoted 2 lines
kernel config). But when I try to load the uImage with u-boot, the
kernel
Quoted 3 lines
start but crach befor I can see something on output. The kernel start because I debug it and the
platform_initis ok,
setup_archQuoted 2 lines
too and it crach after
ppc4xx_setup_archat printk(KERN_INFO "XilinxML403
Quoted 2 lines
Reference System (Virtex-4 FX)\n") line when the kernel access in
printk.c.Quoted 2 lines
I use the
opb_uart16550IP in my Xilinx design and the associatdrivers in
Quoted 10 lines
Quoted 2 lines
u-boot and linux.
What are you passing for the kernel command line?
Can you post your .config?Cheers,
g.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: .config
Url: http://lists.denx.de/pipermail/u-boot/attachments/20070503/8369ed98/attachment.txt
[U-Boot-Users] problem to load uImage but not zImage (onvirtex-4 board)
In reply to LeonidHi,
I find my problem! it was like you said a problem with the command line in u-boot. I had defined CONFIG_EXTRA_ENV_SETTINGS before CONFIG_BOOTARGS, that's it! and you have to do the opposite.
Thanks for your help,
Guillaume Berthelom
Leonid a ?crit :
Quoted 58 lines
Grant is right - kernel command line (defined by u-boot variable "bootargs") is also very important, though it's difficult to see how wrong command line can crash
printk(). It definitely can prevent serial output from showing up on console though.Leonid.
-----Original Message-----
From: u-boot-users-bounces at lists.sourceforge.net [mailto:u-boot-users-bounces at lists.sourceforge.net] On Behalf Of Grant Likely
Sent: Wednesday, May 02, 2007 10:19 AM
To: Guillaume Berthelom
Cc: u-boot-users at lists.sourceforge.net
Subject: Re: [U-Boot-Users] problem to load uImage but not zImage (onvirtex-4 board)Quoted 2 lines · Guillaume Berthelom
When I load the zImage directly with xilinx xmd debugger, the kernel
start
Quoted 2 lines
without problem (if I don't have KGDB or
SERIAL_TEXT_DEBUGoption inmy
Quoted 2 lines
kernel config). But when I try to load the uImage with u-boot, the
kernel
Quoted 3 lines
start but crach befor I can see something on output. The kernel start because I debug it and the
platform_initis ok,
setup_archQuoted 2 lines
too and it crach after
ppc4xx_setup_archat printk(KERN_INFO "XilinxML403
Quoted 2 lines
Reference System (Virtex-4 FX)\n") line when the kernel access in
printk.c.Quoted 2 lines
I use the
opb_uart16550IP in my Xilinx design and the associatdrivers in
Quoted 2 lines
u-boot and linux.
What are you passing for the kernel command line?
Can you post your .config?Cheers,
g.