185c34f7c8
This is a major update for pci_host_generic_acpi.c, the current implementation has some gaps that are better fixed up in one go. The changes are to: * Follow x86 method of not adding PCI resources to PCI host bridge in ACPI code. This has been moved to pci_host_generic_acpi.c, where we walk thru its resources of the host bridge and add them. * Fixup code in pci_host_generic_acpi.c to read all decoded ranges and update the 'ranges' property. This allows us to share most of the code with generic implementation (and the FDT one). * Parse and setup IO ranges and bus ranges when walking the resources above. Drop most of the changes related to this from acpica code. * Add the ECAM memory area as mem resource 0. Implement the logic to get the ECAM area from MCFG (using bus range which we now decode), or from _CBA (using _BBN/bus range). Drop aarch64 ifdefs from acpica code which did part of this. * Switch resource activation to similar code as FDT implementation, this can be moved into generic implementation in a later pass. * Drop the mechanism of using the 7th bit of bus number as the domain, this is not correct and will work only in very specific cases. Use _SEG as PCI domain and use the bus ranges of the host bridge to provide start bus number. This commit should not make any functional change to dev/acpica/acpi.c for other architectures, almost all the changes there are to revert earlier additions in this file done for aarch64. Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D17791 |
||
---|---|---|
.. | ||
Osd | ||
acpi_acad.c | ||
acpi_battery.c | ||
acpi_bus_if.m | ||
acpi_button.c | ||
acpi_cmbat.c | ||
acpi_container.c | ||
acpi_cpu.c | ||
acpi_dock.c | ||
acpi_ec.c | ||
acpi_hpet.c | ||
acpi_hpet.h | ||
acpi_if.m | ||
acpi_isab.c | ||
acpi_lid.c | ||
acpi_package.c | ||
acpi_pci_link.c | ||
acpi_pci.c | ||
acpi_pcib_acpi.c | ||
acpi_pcib_pci.c | ||
acpi_pcib.c | ||
acpi_pcibvar.h | ||
acpi_pcivar.h | ||
acpi_perf.c | ||
acpi_powerres.c | ||
acpi_quirk.c | ||
acpi_quirks | ||
acpi_resource.c | ||
acpi_smbat.c | ||
acpi_smbus.h | ||
acpi_thermal.c | ||
acpi_throttle.c | ||
acpi_timer.c | ||
acpi_video.c | ||
acpi.c | ||
acpiio.h | ||
acpivar.h |