[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