I tested gPXE on an old motherboad with a Realtek 8111D NIC.
Everything is OK when PC Moniter is connected to the integrated video card, the problem comes out when reconnect it to a independent video card(in PCIe slot): DHCP timed out(0x4c106035).
So, I "make bin/undionly.kpxe DEBUG=udp,undinet" or
"make bin/undionly.kkpxe DEBUG=udp,undinet" and added some "printf" to it. I finaly noteiced that in arch/i386/drivers/net/undinet.c:
Every time when undinet_poll() (line 224) been called, undinet_isr_triggered() returns zero, so that undinet_poll() returens without doing anything. Futher more, this is because in arch/i386/drivers/net/undiisr.S (hooked in undinet, right?), undiisr_trigger_count not been triggered. Since I do not familer with AT&T assambly, how can I debug that?(even with a print output? I tried print_message call (found in pxeprefix.S), but without any output in the PC moniter).
What is the possible cause of undiisr_trigger_count not been triggered When connect to an independed video card ?
I think this is a BUG of PXE, hopefully some one can help me~
Thanks in advance!