Updated ISAPnP, EISA, MCA and ISA buses to current device model.

ISA 3c509 is currently non-functional, although the EISA (3c509-eisa) and
MCA (3c529) variants should build OK.

None of this code is yet tested.
This commit is contained in:
Michael Brown
2007-03-10 18:08:33 +00:00
parent f079865606
commit 520d9c36af
36 changed files with 1445 additions and 1675 deletions

View File

@@ -62,15 +62,12 @@ static int undibus_probe ( struct root_device *rootdev ) {
strncpy ( undi->dev.name, "UNDI",
( sizeof ( undi->dev.name ) - 1 ) );
if ( undi->pci_busdevfn != UNDI_NO_PCI_BUSDEVFN ) {
struct pci_device_description *pcidesc = &undi->dev.desc.pci;
pcidesc->bus_type = BUS_TYPE_PCI;
pcidesc->busdevfn = undi->pci_busdevfn;
pcidesc->vendor = undi->pci_vendor;
pcidesc->device = undi->pci_device;
undi->dev.desc.bus_type = BUS_TYPE_PCI;
undi->dev.desc.location = undi->pci_busdevfn;
undi->dev.desc.vendor = undi->pci_vendor;
undi->dev.desc.device = undi->pci_device;
} else if ( undi->isapnp_csn != UNDI_NO_ISAPNP_CSN ) {
struct isapnp_device_description *isapnpdesc
= &undi->dev.desc.isapnp;
isapnpdesc->bus_type = BUS_TYPE_ISAPNP;
undi->dev.desc.bus_type = BUS_TYPE_ISAPNP;
}
undi->dev.parent = &rootdev->dev;
list_add ( &undi->dev.siblings, &rootdev->dev.children);

View File

@@ -1,32 +0,0 @@
#include "dev.h"
#include "isapnp.h"
#include "registers.h"
/*
* Register a device as the default ISAPnP boot device. This code is
* called by the ISAPnP ROM prefix.
*
* Do not move this code to drivers/bus/isapnp.c, because it is
* i386-specific, and don't merge it with select_pci.c, because that
* would cause linker symbol pollution.
*
*/
void i386_select_isapnp_device ( struct i386_all_regs *ix86 ) {
/*
* PnP BIOS passes card select number in %bx and read port
* address in %dx.
*
*/
union {
struct bus_loc bus_loc;
struct isapnp_loc isapnp_loc;
} u;
/* Set ISAPnP read port */
isapnp_read_port = ix86->regs.dx;
/* Select ISAPnP bus and specified CSN as first boot device */
memset ( &u, 0, sizeof ( u ) );
u.isapnp_loc.csn = ix86->regs.bx;
select_device ( &dev, &isapnp_driver, &u.bus_loc );
}