mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
If we can't probe the RTL80x9 for some reason, fall back to probing it
as a Novell NE-2000. This is necessary for unpatched qemu working correctly. qemu claims to be a RTL8029, but doesn't implement the RTL8029 specific registers at this time. I've created patches for that, but there's no reason we can't use qemu's emulation w/o these patches. This should make life easier for those folks that boot FreeBSD via qemu.
This commit is contained in:
parent
fab4f06582
commit
92a6736a5b
1 changed files with 9 additions and 2 deletions
|
|
@ -82,11 +82,18 @@ ed_pci_attach(device_t dev)
|
|||
{
|
||||
struct ed_softc *sc = device_get_softc(dev);
|
||||
int flags = 0;
|
||||
int error;
|
||||
int error = ENXIO;
|
||||
|
||||
/*
|
||||
* If this card claims to be a RTL8029, probe it as such.
|
||||
* However, allow that probe to fail. Some versions of qemu
|
||||
* claim to be a 8029 in the PCI register, but it doesn't
|
||||
* implement the 8029 specific registers. In that case, fall
|
||||
* back to a normal NE2000.
|
||||
*/
|
||||
if (pci_get_devid(dev) == ED_RTL8029_PCI_ID)
|
||||
error = ed_probe_RTL80x9(dev, PCIR_BAR(0), flags);
|
||||
else
|
||||
if (error)
|
||||
error = ed_probe_Novell(dev, PCIR_BAR(0), flags);
|
||||
if (error) {
|
||||
ed_release_resources(dev);
|
||||
|
|
|
|||
Loading…
Reference in a new issue