diff options
author | 2015-08-28 09:58:54 +0800 | |
---|---|---|
committer | 2015-09-01 12:44:00 +0800 | |
commit | e44e3482bdb4d0ebde2d8b41830ac2cdb07948fb (patch) | |
tree | 66b09f592c55df2878107a468a91d21506104d3f /qemu/roms/ipxe/src/drivers/net/3c529.c | |
parent | 9ca8dbcc65cfc63d6f5ef3312a33184e1d726e00 (diff) |
Add qemu 2.4.0
Change-Id: Ic99cbad4b61f8b127b7dc74d04576c0bcbaaf4f5
Signed-off-by: Yang Zhang <yang.z.zhang@intel.com>
Diffstat (limited to 'qemu/roms/ipxe/src/drivers/net/3c529.c')
-rw-r--r-- | qemu/roms/ipxe/src/drivers/net/3c529.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/qemu/roms/ipxe/src/drivers/net/3c529.c b/qemu/roms/ipxe/src/drivers/net/3c529.c new file mode 100644 index 000000000..d68f28ec1 --- /dev/null +++ b/qemu/roms/ipxe/src/drivers/net/3c529.c @@ -0,0 +1,62 @@ +/* + * Split out from 3c509.c to make build process more sane + * + */ + +FILE_LICENCE ( BSD2 ); + +#include "etherboot.h" +#include <ipxe/mca.h> +#include <ipxe/isa.h> /* for ISA_ROM */ +#include "nic.h" +#include "3c509.h" + +/* + * Several other pieces of the MCA support code were shamelessly + * borrowed from the Linux kernel source. + * + * MCA support added by Adam Fritzler (mid@auk.cx) + * + * Generalised out of the 3c529 driver and into a bus type by Michael + * Brown <mbrown@fensystems.co.uk> + * + */ + +static int t529_probe ( struct nic *nic, struct mca_device *mca ) { + + /* Retrieve NIC parameters from MCA device parameters */ + nic->ioaddr = ( ( mca->pos[4] & 0xfc ) | 0x02 ) << 8; + nic->irqno = mca->pos[5] & 0x0f; + printf ( "3c529 board found on MCA at %#hx IRQ %d -", + nic->ioaddr, nic->irqno ); + + /* Hand off to generic t5x9 probe routine */ + return t5x9_probe ( nic, MCA_ID ( mca ), 0xffff ); +} + +static void t529_disable ( struct nic *nic, struct mca_device *mca __unused ) { + t5x9_disable ( nic ); +} + +static struct mca_device_id el3_mca_adapters[] = { + { "3Com 3c529 EtherLink III (10base2)", 0x627c }, + { "3Com 3c529 EtherLink III (10baseT)", 0x627d }, + { "3Com 3c529 EtherLink III (test mode)", 0x62db }, + { "3Com 3c529 EtherLink III (TP or coax)", 0x62f6 }, + { "3Com 3c529 EtherLink III (TP)", 0x62f7 }, +}; + +MCA_DRIVER ( t529_driver, el3_mca_adapters ); + +DRIVER ( "3c529", nic_driver, mca_driver, t529_driver, + t529_probe, t529_disable ); + +ISA_ROM( "3c529", "3c529 == MCA 3c509" ); + +/* + * Local variables: + * c-basic-offset: 8 + * c-indent-level: 8 + * tab-width: 8 + * End: + */ |