All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guillaume Berthelom <guillaume.berthelom@cleode.fr>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] problem to load uImage but not zImage (onvirtex-4 board)
Date: Thu, 03 May 2007 11:59:47 +0200	[thread overview]
Message-ID: <4639B293.6020605@cleode.fr> (raw)
In-Reply-To: <406A31B117F2734987636D6CCC93EE3C01700E4F@ehost011-3.exch011.intermedia.net>

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:1234
0x00010100 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) stepi
0xc0104e3c      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) stepi
0xc0105048      92              printk(KERN_INFO "Xilinx ML403 Reference 
System (Virtex-4 FX)\n");
(gdb) stepi
0xc010504c      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:515
515     {
(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:258
258     {
(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 :
> 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)
>
> On 5/2/07, Guillaume Berthelom <guillaume.berthelom@cleode.fr> wrote:
>   
>> 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.
>>     
>
> 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 

  reply	other threads:[~2007-05-03  9:59 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-02 16:20 [U-Boot-Users] problem to load uImage but not zImage (on virtex-4 board) Guillaume Berthelom
2007-05-02 16:30 ` [U-Boot-Users] problem to load uImage but not zImage (on virtex-4board) Leonid
2007-05-02 17:18 ` [U-Boot-Users] problem to load uImage but not zImage (on virtex-4 board) Grant Likely
2007-05-02 19:50   ` [U-Boot-Users] problem to load uImage but not zImage (onvirtex-4 board) Leonid
2007-05-03  9:59     ` Guillaume Berthelom [this message]
2007-05-04 15:27     ` Guillaume Berthelom

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4639B293.6020605@cleode.fr \
    --to=guillaume.berthelom@cleode.fr \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.