The 3Com DOS UNDI driver fails when run on top of gPXE for two reasons: firstly because PXENV_UNDI_SET_PACKET_FILTER is unsupported, and secondly because gPXE enters the NBP without enabling interrupts on the NIC, and the 3Com driver never calls PXENV_UNDI_OPEN. Fix by always returning success from PXENV_UNDI_SET_PACKET_FILTER (which is no worse than the current situation, since we already ignore the receive packet filter in PXENV_UNDI_OPEN), and by forcibly enabling interrupts on the NIC within PXENV_UNDI_TRANSMIT. The latter is something of a hack, but avoids the need to implement a complete base-code ISR that we would otherwise need if we were to enter the NBP with interrupts enabled.tags/v0.9.8
|
|
||
211 |
|
211 |
|
212 |
|
212 |
|
213 |
|
213 |
|
|
214 |
|
|
|
215 |
|
|
|
216 |
|
|
|
217 |
|
|
|
218 |
|
|
|
219 |
|
|
214 |
|
220 |
|
215 |
|
221 |
|
216 |
|
222 |
|
|
|
||
341 |
|
347 |
|
342 |
|
348 |
|
343 |
|
349 |
|
|
350 |
|
|
344 |
|
351 |
|
345 |
|
352 |
|
346 |
|
|
|
347 |
|
|
|
|
353 |
|
|
|
354 |
|
|
|
355 |
|
|
|
356 |
|
|
|
357 |
|
|
|
358 |
|
|
|
359 |
|
|
|
360 |
|
|
348 |
|
361 |
|
349 |
|
362 |
|
350 |
|
363 |
|