BTW, I forgot to mention that I already faced such a behavior several months ago when trying to patch a more recent iPXE snapshot with the igb driver. At that time, I made no deeper investigation and kept what was working.

a) First patch was made with a snapshot from 6th of february.
b) The operation mentioned above was performed with a snapshot from ... (I cannot remember). c) And now, trying to patch the intel driver, I use a clone from 24th of september. d) I also backported the intel driver patch( from c) ) into the snapshot from 06th of february.

Result:
a) works (still today...)
b) and c) doesn't.
d) works (not like a), but we are going much further than b) and c) ). Here, I think that the intel patch is not complete.

Using a snapshot from later than this from 06th of february fails like b) and c).
Hope it may help to surround the problem.
Kind regards,
Patrick

Le 01/10/2015 15:15, Michael Brown a écrit :
On 30/09/15 16:43, Patrick Agrain wrote:
I tought that a first step could be to add the PCI_ROM() macro with the
correct IDs, so that the device should be, at least, probed.
The console output let me think that this is even not reached.

Am I missing anything in the procedure ?
Is there a way to increase the debug level ?

<snip>

Booting from ROM...
Booting from c100:0361
iPXE (PCI 00:14.0) starting execution...ok

Note: from here it hangs...

So, it looks as though you may not be successfully reaching main(). This kind of problem is difficult to track down outside of a VM, unless you have some kind of hardware debugger available.

My recommendation would be to first find the simplest and most reliable mechanism available for debug output on this board. If you have a debug I/O port available (similar to port 0xe9 in qemu VMs) then use that. If you have a text-mode VGA console attached, then try writing directly to video memory at 0xb8000. You ideally want something that can work even in the middle of a transition from real to protected mode.

Once you have something sufficiently robust, try adding output between the point that the "ok" is printed (the "call print_message" for exec_message_post_install in arch/i386/prefix/romprefix.S) and the point that the "initialising devices" message gets printed (in core/main.c).

Michael

_______________________________________________
ipxe-devel mailing list
[email protected]
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

Reply via email to