Skip to contentSkip to conversation

zImage works, but not vmlinux

DISCUSSION f. achkar 4 participants 7 messages May 25, 2010

lore
Share & tools
lore

f. achkar

author
#0 lore raw

Hi,
I have tried to send this message some part of it was ignored, resending sorry ...

greetings,
I'm newbie to arm linux, so pls if my issue is already addressed just point me to that reference. I'm trying to learn, but couldn't pass the following stage:
I have a s3c245 based board, I have a working compressed kernel image zImage, this image boots properly via u-boot-1.1.6, however I simply failed to load (i.e., boot vmlinux) via u-boot directly from SDRAM.

more details:

1. I let the target boot until the message of " Hit any key to stop
autoboot: " for which I hit enter, (this initialized the board enables MMU, I-Cache, .. etc);
2. board info as seen by u-boot

      # bdinfo
      arch_number = 0x00000648
      env_t       = 0x00000000
      boot_params = 0x30000100
      DRAM bank   = 0x00000000
      -> start    = 0x30000000
      -> size     = 0x04000000
      DRAM bank   = 0x00000001
      -> start    = 0x38000000
      -> size     = 0x04000000
      ethaddr     = ...:5B
      ip_addr     = ...200
      baudrate    = 115200 bps
   3. laod vmlinux to SDRAM :
      tftp 30008000 vmlinux
      TFTP from server ...210; our IP address is ...200
      Filename 'vmlinux'.
      Load address: 0x30008000
      Loading: T ############ .....
   4. # bootm 30008000
      ## Booting image at 30008000 ...
      Boot with Image
      do not support this address : 30008000

Starting kernel ...

and nothing happens it probably crashed somewhere, why zImage works while vmlinux does not?
thanks,
ferar

#1 lore raw
Quoted 35 lines · f. achkar

Hi,
I have tried to send this message some part of it was ignored, resending sorry ...

greetings,
I'm newbie to arm linux, so pls if my issue is already addressed just point me to that reference. I'm trying to learn, but couldn't pass the following stage:
I have a s3c245 based board, I have a working compressed kernel image zImage, this image boots properly via u-boot-1.1.6, however I simply failed to load (i.e., boot vmlinux) via u-boot directly from SDRAM.

more details:

   1. I let the target boot until the message of "  Hit any key to stop
      autoboot: " for which I hit enter, (this initialized the board
      enables MMU, I-Cache, .. etc);
   2. board info as seen by u-boot
      # bdinfo
      arch_number = 0x00000648
      env_t       = 0x00000000
      boot_params = 0x30000100
      DRAM bank   = 0x00000000
      -> start    = 0x30000000
      -> size     = 0x04000000
      DRAM bank   = 0x00000001
      -> start    = 0x38000000
      -> size     = 0x04000000
      ethaddr     = ...:5B
      ip_addr     = ...200
      baudrate    = 115200 bps
   3. laod vmlinux to SDRAM :
      tftp 30008000 vmlinux
      TFTP from server ...210; our IP address is ...200
      Filename 'vmlinux'.
Quoted 8 lines
      Load address: 0x30008000
      Loading: T ############ .....
   4. # bootm 30008000
      ## Booting image at 30008000 ...
      Boot with Image
      do not support this address : 30008000

      Starting kernel ...

Is that kernel compiled with early printk?

Quoted 11 lines

and nothing happens it probably crashed somewhere, why zImage works while vmlinux does not?
thanks,
ferar

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

author
#2 lore raw
Quoted 44 lines · Kristoffer Ericson
Quoted 42 lines · f. achkar

Hi,
I have tried to send this message some part of it was ignored, resending sorry ...

greetings,
I'm newbie to arm linux, so pls if my issue is already addressed just point me to that reference. I'm trying to learn, but couldn't pass the following stage:
I have a s3c245 based board, I have a working compressed kernel image zImage, this image boots properly via u-boot-1.1.6, however I simply failed to load (i.e., boot vmlinux) via u-boot directly from SDRAM.

more details:

   1. I let the target boot until the message of "  Hit any key to stop
      autoboot: " for which I hit enter, (this initialized the board
      enables MMU, I-Cache, .. etc);
   2. board info as seen by u-boot
      # bdinfo
      arch_number = 0x00000648
      env_t       = 0x00000000
      boot_params = 0x30000100
      DRAM bank   = 0x00000000
      -> start    = 0x30000000
      -> size     = 0x04000000
      DRAM bank   = 0x00000001
      -> start    = 0x38000000
      -> size     = 0x04000000
      ethaddr     = ...:5B
      ip_addr     = ...200
      baudrate    = 115200 bps
   3. laod vmlinux to SDRAM :
      tftp 30008000 vmlinux
      TFTP from server ...210; our IP address is ...200
      Filename 'vmlinux'.
      Load address: 0x30008000
      Loading: T ############ .....
   4. # bootm 30008000
      ## Booting image at 30008000 ...
      Boot with Image
      do not support this address : 30008000
Quoted 4 lines
Quoted 2 lines

Starting kernel ...

Is that kernel compiled with early printk?

the kernel version is 2.6.21-1, and there is no early_printk support yet for that version!
thanks

Quoted 12 lines
Quoted 12 lines

and nothing happens it probably crashed somewhere, why zImage works while vmlinux does not?
thanks,
ferar

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#3 lore raw
Quoted 45 lines · f. achkar
Quoted 44 lines · Kristoffer Ericson
Quoted 42 lines · f. achkar

Hi,
I have tried to send this message some part of it was ignored, resending sorry ...

greetings,
I'm newbie to arm linux, so pls if my issue is already addressed just point me to that reference. I'm trying to learn, but couldn't pass the following stage:
I have a s3c245 based board, I have a working compressed kernel image zImage, this image boots properly via u-boot-1.1.6, however I simply failed to load (i.e., boot vmlinux) via u-boot directly from SDRAM.

more details:

   1. I let the target boot until the message of "  Hit any key to stop
      autoboot: " for which I hit enter, (this initialized the board
      enables MMU, I-Cache, .. etc);
   2. board info as seen by u-boot
      # bdinfo
      arch_number = 0x00000648
      env_t       = 0x00000000
      boot_params = 0x30000100
      DRAM bank   = 0x00000000
      -> start    = 0x30000000
      -> size     = 0x04000000
      DRAM bank   = 0x00000001
      -> start    = 0x38000000
      -> size     = 0x04000000
      ethaddr     = ...:5B
      ip_addr     = ...200
      baudrate    = 115200 bps
   3. laod vmlinux to SDRAM :
      tftp 30008000 vmlinux
      TFTP from server ...210; our IP address is ...200
      Filename 'vmlinux'.
      Load address: 0x30008000
      Loading: T ############ .....
   4. # bootm 30008000
      ## Booting image at 30008000 ...
      Boot with Image
      do not support this address : 30008000
Quoted 7 lines
Quoted 4 lines
Quoted 2 lines

Starting kernel ...

Is that kernel compiled with early printk?

the kernel version is 2.6.21-1, and there is no early_printk support yet for that version!
thanks

Then you should add some ascii_printk output so you get more info. I believe its described on arm wiki.

Quoted 12 lines
Quoted 12 lines
Quoted 12 lines

and nothing happens it probably crashed somewhere, why zImage works while vmlinux does not?
thanks,
ferar

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

author
#4 lore raw
Quoted 55 lines · Kristoffer Ericson
Quoted 53 lines · f. achkar
Quoted 51 lines · Kristoffer Ericson
Quoted 35 lines · f. achkar

Hi,
I have tried to send this message some part of it was ignored, resending sorry ...

greetings,
I'm newbie to arm linux, so pls if my issue is already addressed just point me to that reference. I'm trying to learn, but couldn't pass the following stage:
I have a s3c245 based board, I have a working compressed kernel image zImage, this image boots properly via u-boot-1.1.6, however I simply failed to load (i.e., boot vmlinux) via u-boot directly from SDRAM.

more details:

   1. I let the target boot until the message of "  Hit any key to stop
      autoboot: " for which I hit enter, (this initialized the board
      enables MMU, I-Cache, .. etc);
   2. board info as seen by u-boot
      # bdinfo
      arch_number = 0x00000648
      env_t       = 0x00000000
      boot_params = 0x30000100
      DRAM bank   = 0x00000000
      -> start    = 0x30000000
      -> size     = 0x04000000
      DRAM bank   = 0x00000001
      -> start    = 0x38000000
      -> size     = 0x04000000
      ethaddr     = ...:5B
      ip_addr     = ...200
      baudrate    = 115200 bps
   3. laod vmlinux to SDRAM :
      tftp 30008000 vmlinux
      TFTP from server ...210; our IP address is ...200
      Filename 'vmlinux'.
Quoted 10 lines
      Load address: 0x30008000
      Loading: T ############ .....
   4. # bootm 30008000
      ## Booting image at 30008000 ...
      Boot with Image
      do not support this address : 30008000

      Starting kernel ...

Is that kernel compiled with early printk?

Quoted 7 lines
Quoted 4 lines

the kernel version is 2.6.21-1, and there is no early_printk support yet for that version!
thanks

Then you should add some ascii_printk output so you get more info. I believe its described on arm wiki.

thanks for your approach ... pls read on:
I have j-link jtag connected to the target board I can successfully debug via openocd + gdb various assembly codes that controls & configures the target hardware, however when I try the same with the vmlinux (root directory of linux source ) things don't go as expected! I can stepi thought the initial code of the stext (arch/arm/kernel/head.S) as per
http://www.linux-arm.org/LinuxBootLoader/SMPBoot

however when I reach :
smp_setup_processor_id(); in main.c: kernel_start , If I do in gdb next, the control never returns to gdb, also I don't see any output on the serial console!

that's why I have asked on how to boot or launch that same vmlinux which I am trying to debug from within u-boot command prompt, and which simply as mentioned hangs immediately.
To make things clear : I'm trying to LEARN how to debug remotely via openocd (jtag) + gdb the linux kernel on an arm926ejs based target. Note that zImage is working just fine for the same source tree of vmlinux. thanks
ferar

Quoted 16 lines
Quoted 16 lines
Quoted 16 lines
Quoted 16 lines

and nothing happens it probably crashed somewhere, why zImage works while vmlinux does not?
thanks,
ferar

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#5 lore raw
In reply to f. achkar
Quoted 11 lines · f. achkar

Hi,
I have tried to send this message some part of it was ignored, resending sorry ...

greetings,
I'm newbie to arm linux, so pls if my issue is already addressed just point me to that reference. I'm trying to learn, but couldn't pass the following stage:
I have a s3c245 based board, I have a working compressed kernel image zImage, this image boots properly via u-boot-1.1.6, however I simply failed to load (i.e., boot vmlinux) via u-boot directly from SDRAM.

vmlinux is an ELF image. When you run your boot command the bootloader is (probably) just branching execution to the address you're supplying, which contains ELF header data rather than executable instructions.

#6 lore raw
In reply to f. achkar
Quoted 6 lines · f. achkar

I'm newbie to arm linux, so pls if my issue is already addressed just point me to that reference. I'm trying to learn, but couldn't pass the following stage:
I have a s3c245 based board, I have a working compressed kernel image zImage, this image boots properly via u-boot-1.1.6, however I simply failed to load (i.e., boot vmlinux) via u-boot directly from SDRAM.

The vmlinux file isn't a bootable kernel image.

If you want a non compressed kernel then try "make Image" and use the resulting Image file. Then you'll have to load it at the appropriate location in RAM (usually 0x8000 from the start of physical memory), whereas zImage does relocate itself automatically.

Why don't you want to use zImage? Given that you're using U-Boot you should probably use uImage instead anyway (from 'make uImage").

Nicolas