Hi Michael, I just tested this on my Zynq target and it worked. However, you make a good point that it is possible for there to be more traces after the eth_halt call. I can't imagine the stack would like that in all situations (since eth_init() will not be called again by netconsole). I think the solution to this is probably to disable netconsole somehow before the eth_halt command, so subsequent prints do not try to use Ethernet again. However, most of the things you might switch to are conditional, such as a nulldev or silent. Any thoughts on how you would like to see it solved?
Cheers, -Joe On Tue, Apr 9, 2013 at 5:21 PM, Michael Walle <[email protected]> wrote: > > 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 _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

