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

Reply via email to