[U-Boot] bootm does not work if netconsole is enabled

Michael Walle michael at walle.cc
Wed Apr 10 00:21:42 CEST 2013


Hi Joe, Hi Tom,

If i have the netconsole enabled i cannot boot linux using the bootm command. 
This bug exists at least in 2013.01.01 and 2013.04-rc2 :/


Here is the output of the serial console of a successful startup:

## Booting kernel from Legacy Image at 00100000 ...
   Image Name:   Linux-3.8.0-rc1-00004-g270c0a0-d
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2799632 Bytes = 2.7 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 00800000 ...
   Image Name:   
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    636966 Bytes = 622 KiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 00700000
   Booting using the fdt blob at 0x00700000
   Loading Kernel Image ... OK
OK
   Loading Ramdisk to 03aad000, end 03b48826 ... OK
   Loading Device Tree to 03aa8000, end 03aacedd ... OK

Starting kernel ...

[.. more linux kernel output ..]


If the netconsole is enabled, eg. "stdin = stdout = stderr = nc", i see only 
the following output on the netconsole and then nothing more happens:

## Booting kernel from Legacy Image at 00100000 ...
   Image Name:   Linux-3.8.0-rc1-00004-g270c0a0-d
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2799632 Bytes = 2.7 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 00800000 ...
   Image Name:   
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    636966 Bytes = 622 KiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 00700000
   Booting using the fdt blob at 0x00700000


I've tracked this down to the eth_halt() call in cmd_bootm.c:647. What is the 
purpose of this call? I guess the NIC should be shut down prior to booting 
linux. OTOH, there are still messages printed after this call, and i suppose 
the netconsole tries to bring the network back up. If i remove this call, 
everything works as expected.
Anyway, i can definitely say, that the linux kernel is not starting. Eg. it is 
not only the output that stops working.

FYI, i'm using the mvgbe driver.

Let me know if i can do some more debugging or provide more information. 
Hopefully this will be fixed in 2013.04 :)

-- 
Michael


More information about the U-Boot mailing list