So it is not truly a dual 82559 pc, but according to the driver both
of these device ID's are supported. But I was concerned that the 82559
had 3 BARs and the 82801 only reported 2.
I read through the if_i82559.c code and could not see any reason why
this should not work. So I modified i386_pc_i82559_eth_driver.cdl,
devs_eth_i386_pc_i82559.inl and intel_i82559_eth_drivers.cdl.
On my first attempt at booting up, the code asserted:
Bus: 1, Dev: 6, Fn: 0, Vendor: 8086
... PCI vendor = 8086, device = 1209, class 20000
Update memory base to f420b000 from bar: 0
cyg_pci_find_matching - func is at 22ee2c
cyg_pci_find_next: start[13000] ...
Bus: 1, Dev: 8, Fn: 0, Vendor: 8086
... PCI vendor = 8086, device = 2449, class 20000
Init device 'i82559_eth1'
rfd under: InitRxRing:1848
rfd under: InitRxRing:1848
Bad link eth1 0x003889b0 0x00000000 8 0x0022d2dc: InitRxRing:1848
ASSERT FAIL: <1>if_i82559.c[1928]CheckRxRing() Bad Link
[New Thread 1]
[Switching to Thread 1]
Breakpoint 1, cyg_assert_fail (psz_func=0x2c2215 "CheckRxRing",
psz_file=0x2c2ac0
"/ecos-c/cygwin/opt/ecos/ecos-cvs/ecos/packages/devs/eth/i
ntel/i82559/current/src/if_i82559.c", linenum=1928,
psz_msg=0x2c220c "Bad Link")
at
/ecos-c/cygwin/opt/ecos/ecos-cvs/ecos/packages/infra/current/src/buffer.c
xx:727