On 17/09/14 02:15, Andy Medynets wrote:
In fact, there are two problems:
1. core/console.c contains the standard PC UART (COM1) initialization
code executed unconditionally during startup before PCI network device
enumeration is performed. Our board has no standard PC UARTs, and this
is the reason why this takes 15-20 seconds to start enumerating
devices. This was relatively easy to fix. No startup delays anymore.
The standard build does not include serial port support (and the
relevant code is not in core/console.c anyway, unless you have a _very_
customised tree). Just don't enable CONSOLE_SERIAL, and this problem
will go away.
2. further device enumeration is not stable, only 4-5 attempts from 10
are successful. In all other cases it just clears the screen and hangs
forever. My sleuthing has shown that this happens somewhere in pci
device probing code. Will go deeper.
I'm building from code downloaded on 16-sep-2014 [master branch]. gcc
v4.7.2, came with Debian 7/32 bit.
Interesting fact that the pre-built Ubuntu 12.04 binary package
(ipxe_1.0.0+git-3.55f6c88-0ubuntu1) also has the #1 described above,
but doesn't have #2
Any thoughts and suggestions will be greatly appreciated.
Building with DEBUG=pci,intel should reveal any problems happening
during PCI device enumeration or Intel NIC initialisation. You may need
to find a way to capture the output (which will be tricky if you don't
have a serial port available), since it happens too early to use syslog.
Michael
_______________________________________________
ipxe-devel mailing list
[email protected]
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel