History log of /src/sys/dev/acpi/acpi_pci.c |
Revision | | Date | Author | Comments |
1.37 |
| 14-Oct-2022 |
jmcneill | Add a PCI resource manager and use it on Arm ACPI platforms.
The Arm ACPI code relied on PCI_NETBSD_CONFIGURE to configure devices that were not enabled by system firmware. This is not safe to do unless the firmware explicitly permits it using a device specific method defined in the PCI firmware spec.
Introduce a new PCI resource manager that discovers what has already been configured by firmware and allocates from the remaining space. This will ensure that devices setup by firmware are untouched and only will program BARs of devices that are not enabled at boot time.
The current implementation assumes that the parent PCI-PCI bridge's are already configured. A worthwhile improvement in the future would be to support programming windows for bridges that are not fully configured.
|
1.36 |
| 27-Feb-2022 |
riastradh | acpi: Nix conditional pci_get_segment use.
New MI default of 0 serves.
|
1.35 |
| 11-Feb-2022 |
riastradh | acpi(9): No need to test dv_locators.
It is always initialized by config_devalloc before config_devlink makes it visible to device iteration. No need to reach into private autoconf internals.
|
1.34 |
| 22-Jan-2022 |
thorpej | Change the devhandle_from_*() functions to also take a "super handle", from which the newly created handle will inherit it's implementation. The root implementation for a new handle type is used if an invalid "super handle" is passed.
|
1.33 |
| 20-Dec-2021 |
skrll | Fix struct member prefix to be consistent. same code before and after.
|
1.32 |
| 15-Sep-2021 |
thorpej | Adjust the device_call() calling convention so as to provide type checking of the arguments passed to the call, using auto-generated argument structures and binding macros.
|
1.31 |
| 12-May-2021 |
thorpej | - Define a device call for PCI bus instances to fetch a direct child's device handle given the device's device/function #s (extracted from a pcitag_t). Use it to associate the handle with the child device at config_found() time. - Implement this device call for ACPI and OpenFirmware. - Enable the OpenFirmware variant for evbarm FDT, macppc, ofppc, sparc64. - Obsolete acpi_device_register(); it is no longer needed. - Obsolete setting the OpenFirmware handle in PCI devices in the sparc64 device_register(); it is no longer needed.
|
1.30 |
| 14-Jan-2021 |
thorpej | branches: 1.30.4; 1.30.6; In acpi_pci_ignore_boot_config(), use acpi_dsm() and add some comments describing the (somewhat confusing) semantics of the _DSM method used here.
|
1.29 |
| 08-May-2020 |
jmcneill | branches: 1.29.2; expose acpi_pcidev_pciroot_bus
|
1.28 |
| 18-Jan-2020 |
jmcneill | Ignore PCI boot config unless the _DSM for ignoring PCI boot config is explicitly set to 0.
|
1.27 |
| 17-Jan-2020 |
jmcneill | Add support for Arm N1 SDP PCIe host controller.
The N1 SDP has a few bugs that we need to work around: - PCIe root port config space lives in a non-standard location. - Access to PCIe config space of devices that do not exist results in an sync SError. Firmware creates a "known devices" table at a fixed physical address that we use to filter PCI conf access to only known devices.
This change splits the Arm ACPI PCI quirks into separate files for each host controller, and allows per-segment quirks to be applied.
These changes exposed some bugs in the MI ACPI layer related to multi-segment support. The MI ACPI PCI code was using a shared PCI chipset tag to access devices, and these accesses can happen before our PCI host bridge drivers are attached! The global chipset tag is now gone, and an MD callback can provide a custom tag on a per-segment basis.
|
1.26 |
| 01-Mar-2019 |
msaitoh | branches: 1.26.6; - Almost all ppbreg.h's definitions are also in pcireg.h. Remove duplicated definitions from ppbreg.h and move some definitions from ppbreg.h to pcireg.h. - Change fast back-to-back "capable" to "enable" in pci_subr.c. - Print Primary Discard Timer, Secondary Discard Timer, Discard Timer Status and Discard Timer SERR# Enable bit in pci_subr.c. - PCI_BRIDGE_PREFETCHBASE32_REG and PCI_BRIDGE_PREFETCHLIMIT32_REG are "upper" 32bit registers, rename to *UP32_REG to avoid confusion. - Use macro.
|
1.25 |
| 27-Jan-2019 |
pgoyette | Merge the [pgoyette-compat] branch
|
1.24 |
| 21-Oct-2018 |
jmcneill | Add a function to report whether the operating system may ignore the boot configuration of PCI resources for a given bus.
|
1.23 |
| 15-Oct-2018 |
jmcneill | Add a function to find a PCI root bridge by segment and bus number.
|
1.22 |
| 05-May-2018 |
christos | branches: 1.22.2; introduce acpi_device_present() to replace the previous _STA checks.
|
1.21 |
| 07-Apr-2018 |
christos | Merge conflicts; STA methods and fields are not present anymore.
|
1.20 |
| 01-Jun-2017 |
chs | branches: 1.20.8; remove checks for failure after memory allocation calls that cannot fail:
kmem_alloc() with KM_SLEEP kmem_zalloc() with KM_SLEEP percpu_alloc() pserialize_create() psref_class_create()
all of these paths include an assertion that the allocation has not failed, so callers should not assert that again.
|
1.19 |
| 13-Apr-2015 |
christos | sync with new acpica struct shuffling.
|
1.18 |
| 31-Dec-2010 |
jruoho | branches: 1.18.18; 1.18.36; acpi_pcidev_find_dev(): take struct acpi_devnode as a parameter.
|
1.17 |
| 31-Dec-2010 |
jruoho | Move the function that finds a device_t for the corresponding ACPI device node from ACPIVERBOSE to the ACPI PCI code.
|
1.16 |
| 26-Oct-2010 |
gsutre | An _ADR object is not required for PCI root bridges. To solve this, the structure acpi_pciinfo now tells whether the ACPI device node is a PCI bridge, a regular PCI device, or both.
Problem reported by jmcneill@, who also suggested the solution.
ok jmcneill@, jruoho@
|
1.15 |
| 24-Sep-2010 |
gsutre | Do not discard ACPI PCI addresses with function number 0xFFFF: the ACPI specification allows them (ACPI 4.0a, p. 200).
ok jruoho@
|
1.14 |
| 09-Aug-2010 |
gsutre | acpi_pcidev_scan: attach PCI information only to working devices.
ok jruoho@
|
1.13 |
| 08-Aug-2010 |
gsutre | acpi_pcidev_scan: discard invalid PCI addresses.
|
1.12 |
| 09-Jun-2010 |
mrg | pci_chipset_tag_t is opaque - don't compare it to NULL, just use it. shouldn't be a problem because "acpi_softc" variable isn't setup until the "sc_pc" member is set.
fixes ia64 build. tested on amd64. ok jruoho.
|
1.11 |
| 26-Apr-2010 |
jruoho | Improve and rearrange comments.
|
1.10 |
| 23-Apr-2010 |
jruoho | Simplify acpi_pcidev_find(): directly return a pointer to the device node.
|
1.9 |
| 22-Apr-2010 |
jruoho | Some pretty printing for ACPIVERBOSE.
|
1.8 |
| 22-Apr-2010 |
jruoho | Wrap long lines, add some white space for readability, remove unnecessary variable assignments, misc KNF. No functional change.
|
1.7 |
| 22-Apr-2010 |
jruoho | Shorten the long lines with two custom macros.
|
1.6 |
| 22-Apr-2010 |
jruoho | From Gregoire Sutre: rework the ACPI PCI support. This makes ACPI to correctly pick PCI segment groups, PCI bus numbers, PCI root bridges, PCI-to-PCI bridges, and PCI devices, among other things. In short: it is more robust than the old code or anything in sys/arch/x86/x86/mpacpi.c.
ok cegger@, jmcneill@
|
1.5 |
| 18-Apr-2010 |
jruoho | From Gregoire Sutre:
Modify the main ACPI namespace scan by including a parent-child relationship for each node. The result is a bi-directional tree.
ok jmcneill@
|
1.4 |
| 09-Mar-2010 |
jruoho | branches: 1.4.2; 1.4.4; Remove the namespace scopes.
These are neither used nor useful beyond the parser and interpreter.
ok jmcneill@, joerg@
|
1.3 |
| 05-Mar-2010 |
jruoho | Remove <dev/acpi/acpica.h> from all files. It is included from <dev/acpi/acpivar.h>. Ditto for <dev/sysmon/sysmonvar.h>, <sys/bus.h>, <dev/pci/pcivar.h>, and <dev/isa/isavar.h>.
Also nuke a lot of unused and invalid headers. Some of these are audibly provided by standard headers (namely <sys/param.h> and <sys/device.h>), some have nothing to do with ACPI devices (e.g. <sys/syslog.h>), and some are nonexistent local includes (e.g. "mpu_ym.h"). Moreoever, try to group the includes into their respective blocks.
Tested with GENERIC and ALL (i386). No functional change.
|
1.2 |
| 04-Dec-2009 |
njoly | branches: 1.2.2; Fix NetBSD keyword expansion.
|
1.1 |
| 03-Dec-2009 |
cegger | Enumerate ACPI PCI devices. Allows to link PCI with ACPI devices. Patch presented on tech-kern@ http://mail-index.netbsd.org/tech-kern/2009/11/28/msg006552.html
'nice work' Jukka Ruohonen
|
1.2.2.4 |
| 06-Nov-2010 |
uebayasi | Sync with HEAD.
|
1.2.2.3 |
| 22-Oct-2010 |
uebayasi | Sync with HEAD (-D20101022).
|
1.2.2.2 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.2.2.1 |
| 30-Apr-2010 |
uebayasi | Sync with HEAD.
|
1.4.4.3 |
| 05-Mar-2011 |
rmind | sync with head
|
1.4.4.2 |
| 03-Jul-2010 |
rmind | sync with head
|
1.4.4.1 |
| 30-May-2010 |
rmind | sync with head
|
1.4.2.4 |
| 09-Oct-2010 |
yamt | sync with head
|
1.4.2.3 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.4.2.2 |
| 11-Mar-2010 |
yamt | sync with head
|
1.4.2.1 |
| 09-Mar-2010 |
yamt | file acpi_pci.c was added on branch yamt-nfs-mp on 2010-03-11 15:03:22 +0000
|
1.18.36.2 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.18.36.1 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
1.18.18.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.20.8.4 |
| 26-Nov-2018 |
pgoyette | Sync with HEAD, resolve a couple of conflicts
|
1.20.8.3 |
| 20-Oct-2018 |
pgoyette | Sync with head
|
1.20.8.2 |
| 21-May-2018 |
pgoyette | Sync with HEAD
|
1.20.8.1 |
| 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.22.2.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.22.2.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.26.6.2 |
| 25-Jan-2020 |
ad | Sync with head.
|
1.26.6.1 |
| 17-Jan-2020 |
ad | Sync with head.
|
1.29.2.1 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|
1.30.6.1 |
| 31-May-2021 |
cjep | sync with head
|
1.30.4.1 |
| 13-May-2021 |
thorpej | Sync with HEAD.
|