#
7dd1f0dc |
| 26-Oct-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
acpica: add domain ivar
Specialize acpi bus_get_domain method to read ivar. Execute and cache the _PXM result in the ivar at namespace enumeration time.
If there is no _PXM, driver for the child ca
acpica: add domain ivar
Specialize acpi bus_get_domain method to read ivar. Execute and cache the _PXM result in the ivar at namespace enumeration time.
If there is no _PXM, driver for the child can set the ivar to the value obtained by other means.
Move acpi_get_domain() to acpi_pci.c, it now serves pci buses and devices on them.
Suggested and reviewed by: jhb Sponsored by: Advanced Micro Devices (AMD) Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D47291
show more ...
|
#
6f423295 |
| 30-Oct-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
acpica: rename acpi_parse_pxm() to acpi_pxm_parse() and make it non-static
Reviewed by: jhb Sponsored by: Advanced Micro Devices (AMD) Sponsored by: The FreeBSD Foundation MFC after: 1 week Differen
acpica: rename acpi_parse_pxm() to acpi_pxm_parse() and make it non-static
Reviewed by: jhb Sponsored by: Advanced Micro Devices (AMD) Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D47291
show more ...
|
#
2f3f867a |
| 22-Oct-2024 |
Colin Percival <cperciva@FreeBSD.org> |
ACPI: Add ACPI_Q_AEI_NOPULL quirk and use in EC2
AWS Graviton [1234] systems have a bug in their ACPI where they mark the PL061's GPIO pins as needing to be configured in PullUp mode (in fact the PL
ACPI: Add ACPI_Q_AEI_NOPULL quirk and use in EC2
AWS Graviton [1234] systems have a bug in their ACPI where they mark the PL061's GPIO pins as needing to be configured in PullUp mode (in fact the PL061 has no pullup/pulldown resistors); this flag needs to be removed in order for _AEI objects to be handled on these systems.
Reviewed by: Ali Saidi MFC after: 1 week Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D47239
show more ...
|
Revision tags: release/13.4.0 |
|
#
0a34d050 |
| 15-Jul-2024 |
John Baldwin <jhb@FreeBSD.org> |
acpi: Narrow workaround for broken interrupt settings on x86
Commit 9a7bf07ccdc1 from 2016 introduced a workaround for some broken BIOSes that specified active-lo instead of active-hi polarity for I
acpi: Narrow workaround for broken interrupt settings on x86
Commit 9a7bf07ccdc1 from 2016 introduced a workaround for some broken BIOSes that specified active-lo instead of active-hi polarity for ISA IRQs for UARTs. The workaround assumed that edge-sensitive ISA IRQs on x86 should always be active-hi. However, some recent AMD systems actually use active-lo edge-sensitive ISA IRQs (and not just for UARTs, but also for the keyboard and PS/2 mouse devices) and the override causes interrupts to be dropped resulting in boot time hangs, non-working keyboards, etc.
Add a hw.acpi.override_isa_irq_polarity tunable (readable as a sysctl post-boot) to control this quirk. It can be set to 1 to force enable the override and 0 to disable it. The log of original message mentions an Intel motherboard as the sample case, so default the tunable to 1 on systems with an Intel CPU and 0 otherwise.
Special thanks to Matthias Lanter <freebsd@lanter-it.ch> for tracking down boot time issues on recent AMD systems to mismatched interrupt polarity.
PR: 270707 Reported by: aixdroix_OSS@protonmail.com, Michael Dexter Reported by: mfw_burn@pm.me, Hannes Hfauswedell <h2+fbsdports@fsfe.org> Reported by: Matthias Lanter <freebsd@lanter-it.ch> Reported by: William Bulley <web@umich.edu> Reviewed by: imp, emaste MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D45554
show more ...
|
Revision tags: release/14.1.0, release/13.3.0 |
|
#
0e1246e3 |
| 09-Feb-2024 |
John Baldwin <jhb@FreeBSD.org> |
acpi: Cleanup handling of suballocated resources
For resources suballocated from the system resource rmans, handle those in the ACPI bus driver without passing them up to the parent. This means usin
acpi: Cleanup handling of suballocated resources
For resources suballocated from the system resource rmans, handle those in the ACPI bus driver without passing them up to the parent. This means using bus_generic_rman_* for several bus methods for operations on suballocated resources. For bus_map/unmap_resource, find the system resource allocated from the parent bus (nexus) that contains the range being mapped and request a mapping of that parent resource.
This avoids a layering violation where nexus drivers were previously asked to manage the activation and mapping of resources created belonging to the ACPI resource managers.
Note that this does require passing RF_ACTIVE (with RF_UNMAPPED) when allocating system resources from the parent.
While here, don't assume that the parent bus (nexus) provides a resource list that sysres resources are placed on. Instead, create a dedicated resource_list in the ACPI bus driver's softc to hold sysres resources.
Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D43687
show more ...
|
#
0e72b8d3 |
| 09-Feb-2024 |
John Baldwin <jhb@FreeBSD.org> |
acpi: Use kobj typedefs for new-bus method prototypes
Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D43685
|
#
c6a48851 |
| 09-Jan-2024 |
John Baldwin <jhb@FreeBSD.org> |
acpi: Only reserve resources enumerated via _CRS
In particular, don't reserve resources added by drivers via other means (e.g. acpi_bus_alloc_gas which calls bus_alloc_resource right after adding th
acpi: Only reserve resources enumerated via _CRS
In particular, don't reserve resources added by drivers via other means (e.g. acpi_bus_alloc_gas which calls bus_alloc_resource right after adding the resource).
The intention of reserved resources is to ensure that a resource range that a bus driver knows is assigned to a device is reserved by the system even if no driver is attached to the device. This prevents other "wildcard" resource requests from conflicting with these resources. For ACPI, the only resources the bus driver knows about for unattached devices are the resources returned from _CRS. All of these resources are already reserved now via acpi_reserve_resources called from acpi_probe_children.
As such, remove the logic from acpi_set_resource to try to reserve resources when they are set. This permits RF_SHAREABLE to work with acpi_bus_alloc_gas without requiring hacks like the current one for CPU device resources in acpi_set_resource.
Reported by: gallatin (RF_SHAREABLE not working) Diagnosed by: jrtc27
show more ...
|
Revision tags: release/14.0.0 |
|
#
95ee2897 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0 |
|
#
cae7d9ec |
| 28-Feb-2022 |
Warner Losh <imp@FreeBSD.org> |
bus: Add ACPI locator support
Add support for printing ACPI paths. This is a bit of a degenerate case for this interface since it's always just the device handle if the device has one. But it is ill
bus: Add ACPI locator support
Add support for printing ACPI paths. This is a bit of a degenerate case for this interface since it's always just the device handle if the device has one. But it is illustrtive of how to do this for a few nodes in the tree.
Sponsored by: Netflix Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D32748
show more ...
|
Revision tags: release/12.3.0 |
|
#
b91fc6c4 |
| 27-Jul-2021 |
Bartlomiej Grzesik <bag@semihalf.com> |
acpica: add ACPI_GET_PROPERTY to access Device Specific Data (DSD)
Add lazy acquiring of DSD package, which allows accessing Device Specific Data.
Reviewed by: manu, mw Sponsored by: Semihalf Diffe
acpica: add ACPI_GET_PROPERTY to access Device Specific Data (DSD)
Add lazy acquiring of DSD package, which allows accessing Device Specific Data.
Reviewed by: manu, mw Sponsored by: Semihalf Differential revision: https://reviews.freebsd.org/D31596
show more ...
|
#
d178b1f8 |
| 07-Aug-2021 |
Dmitry Salychev <dsl@mcusim.org> |
Parse named nodes from IORT ACPI on arm64
Add the ability to map named components from IORT to their SMMU or ITS node in order to setup interrupts. It is now possible to find a node by its name (sub
Parse named nodes from IORT ACPI on arm64
Add the ability to map named components from IORT to their SMMU or ITS node in order to setup interrupts. It is now possible to find a node by its name (substring) and resource ID similar to PCI nodes. This is needed by work on a driver for NXP's Second Generation Data Path Acceleration Architecture (DPAA2).
Reviewed by: andrew MFC after: 2 weeks Differential Revision:: https://reviews.freebsd.org/D31267
show more ...
|
#
ddfc9c4c |
| 23-Jun-2021 |
Warner Losh <imp@FreeBSD.org> |
newbus: Move from bus_child_{pnpinfo,location}_src to bus_child_{pnpinfo,location} with sbuf
Now that the upper layers all go through a layer to tie into these information functions that translates
newbus: Move from bus_child_{pnpinfo,location}_src to bus_child_{pnpinfo,location} with sbuf
Now that the upper layers all go through a layer to tie into these information functions that translates an sbuf into char * and len. The current interface suffers issues of what to do in cases of truncation, etc. Instead, migrate all these functions to using struct sbuf and these issues go away. The caller is also in charge of any memory allocation and/or expansion that's needed during this process.
Create a bus_generic_child_{pnpinfo,location} and make it default. It just returns success. This is for those busses that have no information for these items. Migrate the now-empty routines to using this as appropriate.
Document these new interfaces with man pages, and oversight from before.
Reviewed by: jhb, bcr Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D29937
show more ...
|
Revision tags: release/13.0.0 |
|
#
9c6e3774 |
| 31-Oct-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
Add plug and play information macroses for ACPI and I2C buses.
Matching table format is compatible with ACPI_ID_PROBE bus method.
Note that while ACPI_ID_PROBE matches against _HID and all _CIDs, c
Add plug and play information macroses for ACPI and I2C buses.
Matching table format is compatible with ACPI_ID_PROBE bus method.
Note that while ACPI_ID_PROBE matches against _HID and all _CIDs, current acpi_pnpinfo_str() exports only _HID and first _CID. That means second and further _CIDs should be added to both acpi_pnpinfo_str() and ACPICOMPAT_PNP_INFO if device matching against them is required.
Reviewed by: imp MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D26824
show more ...
|
#
ae2b074b |
| 31-Oct-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
acpi(9): Add EVENTHANDLERs for video and AC adapter events.
They are required for coming ACPI support in LinuxKPI.
Reviewed by: hselasky, manu (as part of D26603)
|
#
fe64ff3c |
| 31-Oct-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
acpi: Tweak _DSM method evaluation helpers.
- Use ACPI style for _DSM evaluation helper parameter types. - Constify UUID parameter. - Increase size of returned DSM function bitmap by acpi_DSMQuery()
acpi: Tweak _DSM method evaluation helpers.
- Use ACPI style for _DSM evaluation helper parameter types. - Constify UUID parameter. - Increase size of returned DSM function bitmap by acpi_DSMQuery() up to 64 items. Old limit of 8 functions is not sufficient for JEDEC JESD245 NVDIMMs. - Add new acpi_EvaluateDSMTyped() helper which performs additional return value type check as compared with acpi_EvaluateDSM(). - Reimplement acpi_EvaluateDSM() on top of the acpi_EvaluateDSMTyped() call.
Reviewed by: scottph, manu Differential Revision: https://reviews.freebsd.org/D26602
show more ...
|
Revision tags: release/12.2.0 |
|
#
82c28121 |
| 01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
acpica: clean up empty lines in .c and .h files
|
#
c7aa572c |
| 31-Jul-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
f3856e68 |
| 17-Jul-2020 |
Ruslan Bukin <br@FreeBSD.org> |
Add acpi_iort_map_pci_smmuv3().
This new function allows us to find the SMMU instance assigned for a particular PCI RID.
Reviewed by: andrew Sponsored by: DARPA, AFRL Differential Revision: https:/
Add acpi_iort_map_pci_smmuv3().
This new function allows us to find the SMMU instance assigned for a particular PCI RID.
Reviewed by: andrew Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D25687
show more ...
|
Revision tags: release/11.4.0 |
|
#
e76aab6a |
| 14-May-2020 |
Mark Johnston <markj@FreeBSD.org> |
Call acpi_pxm_set_proximity_info() slightly earlier on x86.
This function is responsible for setting pc_domain in each pcpu structure. Call it from the main function that starts APs, rather than a
Call acpi_pxm_set_proximity_info() slightly earlier on x86.
This function is responsible for setting pc_domain in each pcpu structure. Call it from the main function that starts APs, rather than a separate SYSINIT. This makes it easier to close the window where UMA's per-CPU slab allocator may be called while pc_domain is uninitialized. In particular, the allocator uses pc_domain to allocate domain-local pages, so allocations before this point end up using domain 0 for everything.
Reviewed by: kib MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24757
show more ...
|
#
16b90565 |
| 10-Mar-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358731 through r358831.
|
#
ddf8c230 |
| 09-Mar-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
acpi: Export functions required by upcoming acpi_iicbus driver.
|
#
43c7dd6b |
| 19-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358075 through r358130.
|
#
294de6bb |
| 19-Feb-2020 |
Hiroki Sato <hrs@FreeBSD.org> |
Add _BIX (Battery Information Extended) object support.
ACPI Control Method Batteries have a _BIF and/or _BIX object which provide static properties of the battery. FreeBSD acpi_cmbat module suppor
Add _BIX (Battery Information Extended) object support.
ACPI Control Method Batteries have a _BIF and/or _BIX object which provide static properties of the battery. FreeBSD acpi_cmbat module supported _BIF object only, which was deprecated as of ACPI 4.0. _BIX is an extended version of _BIF defined in ACPI 4.0 or later.
As of writing, _BIX has two revisions. One is in ACPI 4.0 (rev.0) and another is in ACPI 6.0 (rev.1). It seems that hardware vendors still stick to _BIF only or _BIX rev.0 + _BIF for the maximum compatibility. Microsoft requires _BIX rev.0 for Windows machines, so there are some laptop machines with _BIX rev.0 only. In this case, FreeBSD does not recognize the battery information.
After this change, the acpi_cmbat module gets battery information from _BIX or _BIF object and internally uses _BIX rev.1 data structure as the primary information store in the kernel. ACPIIO_BATT_GET_BI[FX] returns an acpi_bi[fx] structure built by using information obtained from a _BIF or a _BIX object found on the system. The revision number field can be used to check which field is available. The acpiconf(8) utility will show additional information if _BIX is available.
Although ABIs of ACPIIO_BATT_* were changed, the existing APIs for userland utilities are not changed and the backward-compatible ABIs are provided. This means that older versions of acpiconf(8) can also work with the new kernel. The (union acpi_battery_ioctl_arg) was padded to 256 byte long to avoid another ABI change in the future. A _BIX object with its revision number >1 will be treated as compatible with the rev.1 _BIX format.
Reviewed by: takawata MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23728
show more ...
|
Revision tags: release/12.1.0 |
|
#
a5e5548c |
| 19-Aug-2019 |
Jeff Roberson <jeff@FreeBSD.org> |
Allocate all per-cpu datastructures in domain correct memory.
Reviewed by: kib, gallatin (some objections) Tested by: pho Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21
Allocate all per-cpu datastructures in domain correct memory.
Reviewed by: kib, gallatin (some objections) Tested by: pho Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21242
show more ...
|
Revision tags: release/11.3.0 |
|
#
0269ae4c |
| 06-Jun-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @348740
Sponsored by: The FreeBSD Foundation
|