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
next prev parent 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.