Some network cards do not generate interrupts when operated via the UNDI API. Allow for this by waiting for the ISR to be triggered only if the PXE stack advertises that it supports interrupts. When the PXE stack does not advertise interrupt support, we skip the call to PXENV_UNDI_ISR_IN_START and just poll the device using PXENV_UNDI_ISR_IN_PROCESS. This matches the observed behaviour of at least one other PXE NBP (emBoot's winBoot/i), so there is a reasonable chance of this working. Originally-implemented-by: Muralidhar Appalla <Muralidhar.Appalla@emulex.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>tags/v1.20.1
|
|
||
43 |
|
43 |
|
44 |
|
44 |
|
45 |
|
45 |
|
|
46 |
|
|
|
47 |
|
|
46 |
|
48 |
|
47 |
|
49 |
|
48 |
|
50 |
|
|
|
||
251 |
|
253 |
|
252 |
|
254 |
|
253 |
|
255 |
|
254 |
|
|
|
255 |
|
|
|
|
256 |
|
|
|
257 |
|
|
|
258 |
|
|
|
259 |
|
|
256 |
|
260 |
|
257 |
|
261 |
|
258 |
|
262 |
|
|
|
||
357 |
|
361 |
|
358 |
|
362 |
|
359 |
|
363 |
|
360 |
|
|
|
361 |
|
|
|
362 |
|
|
|
363 |
|
|
|
|
364 |
|
|
|
365 |
|
|
|
366 |
|
|
|
367 |
|
|
|
368 |
|
|
|
369 |
|
|
364 |
|
370 |
|
365 |
|
371 |
|
366 |
|
372 |
|
|
|
||
425 |
|
431 |
|
426 |
|
432 |
|
427 |
|
433 |
|
428 |
|
|
|
429 |
|
|
|
430 |
|
|
|
|
434 |
|
|
|
435 |
|
|
|
436 |
|
|
|
437 |
|
|
|
438 |
|
|
431 |
|
439 |
|
432 |
|
440 |
|
433 |
|
441 |
|
|
|
||
524 |
|
532 |
|
525 |
|
533 |
|
526 |
|
534 |
|
527 |
|
|
|
528 |
|
|
|
529 |
|
|
|
530 |
|
|
|
531 |
|
|
|
532 |
|
|
|
533 |
|
|
|
|
535 |
|
|
|
536 |
|
|
534 |
|
537 |
|
535 |
|
538 |
|
536 |
|
539 |
|
|
|
||
541 |
|
544 |
|
542 |
|
545 |
|
543 |
|
546 |
|
|
547 |
|
|
|
548 |
|
|
|
549 |
|
|
|
550 |
|
|
|
551 |
|
|
|
552 |
|
|
|
553 |
|
|
|
554 |
|
|
|
555 |
|
|
|
556 |
|
|
|
557 |
|
|
544 |
|
558 |
|
545 |
|
559 |
|
546 |
|
560 |
|
|
|
||
559 |
|
573 |
|
560 |
|
574 |
|
561 |
|
575 |
|
562 |
|
|
|
563 |
|
576 |
|
|
577 |
|
|
564 |
|
578 |
|
565 |
|
579 |
|
566 |
|
580 |
|