Only attach device_t objects to ACPI devices with a _HID
nate at root.org
Wed Jun 15 16:48:11 UTC 2011
On Jun 15, 2011, at 6:57 AM, John Baldwin wrote:
> What I am proposing to do is to change the ACPI bus driver to only add
> device_t objects for Device() nodes that have a _HID or _CID. This should not
> break any devices that have a current driver, but it will avoid having ACPI
> attach to PCI devices. This does mean that _CRS is currently ignored for PCI
> devices. My feeling on that is that if we do feel that is important to
> reserve those resources, we should handle that in the ACPI PCI bus driver
> itself instead (it can examine _CRS for those devices and allocate resources
> if we so choose).
While this should be fine for legacy devices, I do worry about other synthetic devices, such as CPUs, NUMA zones, etc. Would it be better just not to attach acpi device_t's to any nodes under PCI busses?
Also, it's still possible some PCI devices would have a CID, so you'd still have to handle this case, right?
> It does strike me as odd that BIOSes are assigning resources to PCI devices
> via _CRS and I wonder if it is truly valid or it it should just be ignored.
I think I remember some BIOSes hooking _CRS to do some late allocations. It's bad behavior, of course, and closely ties their allocation scheme to the order that WIndows traversed the acpi device tree.
More information about the freebsd-acpi