mirror of
https://github.com/ipxe/ipxe
synced 2025-12-14 07:50:43 +03:00
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:
@@ -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);
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
Reference in New Issue
Block a user