misc questions about the device&driver arch
william wallace
avalonwallace at gmail.com
Tue May 30 06:42:42 PDT 2006
Sir:
I have got the way to map linux pci access way to the BSD way :)
now ,several more question ,wondering :(
FIRST
struct pci_devinfo * pci_read_device(device_t pcib, int b, int s, int
f, size_t size)
struct cardbus_devinfo {
struct pci_devinfo pci;
uint8_t mprefetchable; /* bit mask of prefetchable BARs */
so what happen when dinfo = (struct cardbus_devinfo
*)pci_read_device(brdev, bus, slot, func, sizeof(struct
cardbus_devinfo));
can we use this magic as a common way to wrap common guts?
SECOND
what should we do to destroy a device and hot remove it from the system ?
1 pause the application
2 device_detach(devlist[tmp]);
3***_release_all_resources(busdev, dinfo);
4 device_delete_child(busdev, devlist[tmp]);
5 pci_freecfg((struct pci_devinfo *)dinfo);
6 shutdown power of the slot
so what exactly happens between 2 and 5?
THIRD
Because the PCIE configure space is 4k long ,shall we change the
#define PCI_REGMAX 255
to facilitate the PCI express config R/W?
More information about the freebsd-hackers
mailing list