Some PXE stacks advertise that interrupts are not supported, despite requiring the use of interrupts. Attempt to cope with such cards without breaking others by always hooking the interrupt, and using the "interrupts supported" flag only to decide whether or not to wait for an interrupt before calling PXENV_UNDI_ISR_IN_PROCESS. The possible combinations are therefore: 1. Card generates interrupts and claims to support interrupts iPXE will call PXENV_UNDI_ISR_IN_PROCESS only after an interrupt has been observed. (This is required to avoid lockups in some PXE stacks, which spuriously sulk if called before an interrupt has been generated.) Such a card should work correctly. 2. Card does not generate interrupts and does not claim to support interrupts iPXE will call PXENV_UNDI_ISR_IN_PROCESS indiscriminately, matching the observed behaviour of at least one other PXE NBP (winBoot/i). Such a card should work correctly. 3. Card generates interrupts but claims not to support interrupts iPXE will call PXENV_UNDI_ISR_IN_PROCESS indiscriminately. An interrupt will still result in a call to PXENV_UNDI_ISR_IN_START. Such a card may work correctly. 4. Card does not generate interrupts but claims to support interrupts Such a card will not work at all. Reported-by: Jerry Cheng <jaspers.cheng@msa.hinet.net> Tested-by: Jerry Cheng <jaspers.cheng@msa.hinet.net> Reported-by: Mauricio Silveira <mauricio@livreti.com.br> Tested-by: Mauricio Silveira <mauricio@livreti.com.br> Signed-off-by: Michael Brown <mcb30@ipxe.org>tags/v1.20.1
|
|
||
253 |
|
253 |
|
254 |
|
254 |
|
255 |
|
255 |
|
256 |
|
|
|
257 |
|
|
|
|
256 |
|
|
|
257 |
|
|
|
258 |
|
|
|
259 |
|
|
258 |
|
260 |
|
259 |
|
|
|
|
261 |
|
|
260 |
|
262 |
|
261 |
|
263 |
|
262 |
|
264 |
|
263 |
|
265 |
|
264 |
|
266 |
|
265 |
|
|
|
|
267 |
|
|
|
268 |
|
|
|
269 |
|
|
|
270 |
|
|
|
271 |
|
|
|
272 |
|
|
|
273 |
|
|
266 |
|
274 |
|
267 |
|
275 |
|
268 |
|
276 |
|
|
|
||
361 |
|
369 |
|
362 |
|
370 |
|
363 |
|
371 |
|
364 |
|
|
|
365 |
|
|
|
|
372 |
|
|
|
373 |
|
|
366 |
|
374 |
|
367 |
|
375 |
|
368 |
|
376 |
|
|
|
||
431 |
|
439 |
|
432 |
|
440 |
|
433 |
|
441 |
|
434 |
|
|
|
435 |
|
|
|
|
442 |
|
|
|
443 |
|
|
436 |
|
444 |
|
437 |
|
445 |
|
438 |
|
446 |
|
|
|
||
532 |
|
540 |
|
533 |
|
541 |
|
534 |
|
542 |
|
535 |
|
|
|
536 |
|
|
|
|
543 |
|
|
|
544 |
|
|
|
545 |
|
|
|
546 |
|
|
|
547 |
|
|
|
548 |
|
|
|
549 |
|
|
|
550 |
|
|
537 |
|
551 |
|
538 |
|
552 |
|
539 |
|
553 |
|
|
|
||
544 |
|
558 |
|
545 |
|
559 |
|
546 |
|
560 |
|
547 |
|
|
|
548 |
|
|
|
549 |
|
|
|
550 |
|
|
|
551 |
|
|
|
552 |
|
|
|
553 |
|
|
|
|
561 |
|
|
554 |
|
562 |
|
555 |
|
|
|
556 |
|
|
|
557 |
|
|
|
|
563 |
|
|
|
564 |
|
|
558 |
|
565 |
|
559 |
|
566 |
|
560 |
|
567 |
|
|
|
||
573 |
|
580 |
|
574 |
|
581 |
|
575 |
|
582 |
|
576 |
|
|
|
577 |
|
583 |
|
|
584 |
|
|
578 |
|
585 |
|
579 |
|
586 |
|
580 |
|
587 |
|