History log of /netbsd-current/sys/dev/acpi/files.acpi
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.132 21-Mar-2024 riastradh

acpihed(4): New driver for PNP0C33 to notify apei(4).

PNP0C33 denotes the ACPI Hardware Error Device, which exists only to
be a vector for event notifications.

PR kern/58046


# 1.131 20-Mar-2024 riastradh

apei(4): New driver for ACPI Platform Error Interfaces.

For now it is wired up only in x86 ALL kernels, and built as a module
for x86 and Arm. Once it gets a little more testing on machines with
APEI, I would like to flip it on by default.

PR kern/58046


# 1.130 20-Mar-2024 riastradh

acpi(4): Make apeibus actually work as an iattr.

PR kern/58046


# 1.129 20-Mar-2024 riastradh

acpi(4): New iattr `apeibus' for attaching an APEI driver.

APEI is the ACPI Platform Error Interface, a standard (if very
complicated) interface for reporting hardware errors to the OS.

Firmware support for APEI is presented through the ACPI tables BERT
(Boot Error Record Table), ERST (Error Record Serialization Table),
EINJ (Error Injection Table), and HEST (Hardware Error Source Table),
rather than through nodes in the ACPI device tree, so it can't just
attach through the existing acpinodebus iattr and instead requires a
special pseudo-bus like acpiwdrt(4).

No driver yet -- this is just the hook to attach one in a module.

The new member sc_apei of struct acpi_softc is placed at the end of
the structure so that this change can be safely pulled up to release
branches without risk to ABI compatibility in existing modules such
as acpiverbose.kmod which may rely on the layout (but not size) of
struct acpi_softc.

PR kern/58046


Revision tags: thorpej-ifq-base thorpej-altq-separation-base
# 1.128 18-Jul-2023 riastradh

acpiec(4): New ACPIEC_DEBUG option.

Value is bit mask of debug messages to enable.

Enable in x86/ALL kernels.

No functional change intended when the option is off.


# 1.127 16-Apr-2023 jmcneill

DesignWare watchdog ACPI attach glue


Revision tags: netbsd-10-base bouyer-sunxi-drm-base
# 1.126 26-May-2022 mrg

branches: 1.126.4;
only link acpi_pci*.c if acpi & pci, not just acpi.


# 1.125 24-Mar-2022 manu

Add initial support for Intel GPIO chips


# 1.124 16-Feb-2022 riastradh

sys: Include files.acpica unconditionally.

This way acpica.h always exists unconditionally, so MI code can be
conditional on NACPICA.

It is not great to have such conditionals, but it's better to have

#include "acpica.h"

#ifdef NACPICA > 0

than to have

#if defined(__i386__) || defined(__x86_64__) || defined(__arm__)
#include "acpica.h"
#endif

#ifdef NACPICA > 0

and we can still grep for NACPICA to find places that could be
factored better.


# 1.123 09-Jan-2022 jmcneill

dwcmmc: Add ACPI attach support


# 1.122 03-Jan-2022 jmcneill

Add driver for DesignWare Ethernet Quality-of-Service controller.


# 1.121 24-Dec-2021 jmcneill

Add ohci at acpi bindings. No known PNP IDs for this, so match using _CLS
and the PCI class/subclass/interface codes. Maybe this will take off.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.120 24-Jan-2021 jmcneill

Add support for NXP Layerscape I2C controllers.


# 1.119 13-Dec-2020 jmcneill

acpi: Add support for Collaborative Processor Performance Control (CPPC).

CPPC is the modern replacement for processor performance controls (P-states
and T-states). The _CPC method on a processor device contains information
about supported performance levels of the device.

This driver reports the supported performance levels and allows for
setting the desired level using the machdep.cpufreq.cpuN.* sysctls. Note
that a "performance level" value is not guaranteed to represent a CPU
frequency, so treat the numbers reported as such.


# 1.118 13-Dec-2020 jmcneill

acpi: Add support for ACPI Platform Communications Channel (PCC).


# 1.117 07-Dec-2020 jmcneill

acpicpu: Add support for ACPI P-states and T-states on Arm.


# 1.116 06-Dec-2020 jmcneill

acpi: add character device for accessing ACPI tables

The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.115 22-Feb-2020 jmcneill

branches: 1.115.6;
Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

branches: 1.114.6;
Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


# 1.128 18-Jul-2023 riastradh

acpiec(4): New ACPIEC_DEBUG option.

Value is bit mask of debug messages to enable.

Enable in x86/ALL kernels.

No functional change intended when the option is off.


# 1.127 16-Apr-2023 jmcneill

DesignWare watchdog ACPI attach glue


Revision tags: netbsd-10-base bouyer-sunxi-drm-base
# 1.126 26-May-2022 mrg

only link acpi_pci*.c if acpi & pci, not just acpi.


# 1.125 24-Mar-2022 manu

Add initial support for Intel GPIO chips


# 1.124 16-Feb-2022 riastradh

sys: Include files.acpica unconditionally.

This way acpica.h always exists unconditionally, so MI code can be
conditional on NACPICA.

It is not great to have such conditionals, but it's better to have

#include "acpica.h"

#ifdef NACPICA > 0

than to have

#if defined(__i386__) || defined(__x86_64__) || defined(__arm__)
#include "acpica.h"
#endif

#ifdef NACPICA > 0

and we can still grep for NACPICA to find places that could be
factored better.


# 1.123 09-Jan-2022 jmcneill

dwcmmc: Add ACPI attach support


# 1.122 03-Jan-2022 jmcneill

Add driver for DesignWare Ethernet Quality-of-Service controller.


# 1.121 24-Dec-2021 jmcneill

Add ohci at acpi bindings. No known PNP IDs for this, so match using _CLS
and the PCI class/subclass/interface codes. Maybe this will take off.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.120 24-Jan-2021 jmcneill

Add support for NXP Layerscape I2C controllers.


# 1.119 13-Dec-2020 jmcneill

acpi: Add support for Collaborative Processor Performance Control (CPPC).

CPPC is the modern replacement for processor performance controls (P-states
and T-states). The _CPC method on a processor device contains information
about supported performance levels of the device.

This driver reports the supported performance levels and allows for
setting the desired level using the machdep.cpufreq.cpuN.* sysctls. Note
that a "performance level" value is not guaranteed to represent a CPU
frequency, so treat the numbers reported as such.


# 1.118 13-Dec-2020 jmcneill

acpi: Add support for ACPI Platform Communications Channel (PCC).


# 1.117 07-Dec-2020 jmcneill

acpicpu: Add support for ACPI P-states and T-states on Arm.


# 1.116 06-Dec-2020 jmcneill

acpi: add character device for accessing ACPI tables

The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.115 22-Feb-2020 jmcneill

branches: 1.115.6;
Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

branches: 1.114.6;
Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


# 1.127 16-Apr-2023 jmcneill

DesignWare watchdog ACPI attach glue


Revision tags: netbsd-10-base bouyer-sunxi-drm-base
# 1.126 26-May-2022 mrg

only link acpi_pci*.c if acpi & pci, not just acpi.


# 1.125 24-Mar-2022 manu

Add initial support for Intel GPIO chips


# 1.124 16-Feb-2022 riastradh

sys: Include files.acpica unconditionally.

This way acpica.h always exists unconditionally, so MI code can be
conditional on NACPICA.

It is not great to have such conditionals, but it's better to have

#include "acpica.h"

#ifdef NACPICA > 0

than to have

#if defined(__i386__) || defined(__x86_64__) || defined(__arm__)
#include "acpica.h"
#endif

#ifdef NACPICA > 0

and we can still grep for NACPICA to find places that could be
factored better.


# 1.123 09-Jan-2022 jmcneill

dwcmmc: Add ACPI attach support


# 1.122 03-Jan-2022 jmcneill

Add driver for DesignWare Ethernet Quality-of-Service controller.


# 1.121 24-Dec-2021 jmcneill

Add ohci at acpi bindings. No known PNP IDs for this, so match using _CLS
and the PCI class/subclass/interface codes. Maybe this will take off.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.120 24-Jan-2021 jmcneill

Add support for NXP Layerscape I2C controllers.


# 1.119 13-Dec-2020 jmcneill

acpi: Add support for Collaborative Processor Performance Control (CPPC).

CPPC is the modern replacement for processor performance controls (P-states
and T-states). The _CPC method on a processor device contains information
about supported performance levels of the device.

This driver reports the supported performance levels and allows for
setting the desired level using the machdep.cpufreq.cpuN.* sysctls. Note
that a "performance level" value is not guaranteed to represent a CPU
frequency, so treat the numbers reported as such.


# 1.118 13-Dec-2020 jmcneill

acpi: Add support for ACPI Platform Communications Channel (PCC).


# 1.117 07-Dec-2020 jmcneill

acpicpu: Add support for ACPI P-states and T-states on Arm.


# 1.116 06-Dec-2020 jmcneill

acpi: add character device for accessing ACPI tables

The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.115 22-Feb-2020 jmcneill

branches: 1.115.6;
Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

branches: 1.114.6;
Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


# 1.126 26-May-2022 mrg

only link acpi_pci*.c if acpi & pci, not just acpi.


# 1.125 24-Mar-2022 manu

Add initial support for Intel GPIO chips


# 1.124 16-Feb-2022 riastradh

sys: Include files.acpica unconditionally.

This way acpica.h always exists unconditionally, so MI code can be
conditional on NACPICA.

It is not great to have such conditionals, but it's better to have

#include "acpica.h"

#ifdef NACPICA > 0

than to have

#if defined(__i386__) || defined(__x86_64__) || defined(__arm__)
#include "acpica.h"
#endif

#ifdef NACPICA > 0

and we can still grep for NACPICA to find places that could be
factored better.


# 1.123 09-Jan-2022 jmcneill

dwcmmc: Add ACPI attach support


# 1.122 03-Jan-2022 jmcneill

Add driver for DesignWare Ethernet Quality-of-Service controller.


# 1.121 24-Dec-2021 jmcneill

Add ohci at acpi bindings. No known PNP IDs for this, so match using _CLS
and the PCI class/subclass/interface codes. Maybe this will take off.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.120 24-Jan-2021 jmcneill

Add support for NXP Layerscape I2C controllers.


# 1.119 13-Dec-2020 jmcneill

acpi: Add support for Collaborative Processor Performance Control (CPPC).

CPPC is the modern replacement for processor performance controls (P-states
and T-states). The _CPC method on a processor device contains information
about supported performance levels of the device.

This driver reports the supported performance levels and allows for
setting the desired level using the machdep.cpufreq.cpuN.* sysctls. Note
that a "performance level" value is not guaranteed to represent a CPU
frequency, so treat the numbers reported as such.


# 1.118 13-Dec-2020 jmcneill

acpi: Add support for ACPI Platform Communications Channel (PCC).


# 1.117 07-Dec-2020 jmcneill

acpicpu: Add support for ACPI P-states and T-states on Arm.


# 1.116 06-Dec-2020 jmcneill

acpi: add character device for accessing ACPI tables

The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.115 22-Feb-2020 jmcneill

branches: 1.115.6;
Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

branches: 1.114.6;
Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


# 1.125 24-Mar-2022 manu

Add initial support for Intel GPIO chips


# 1.124 16-Feb-2022 riastradh

sys: Include files.acpica unconditionally.

This way acpica.h always exists unconditionally, so MI code can be
conditional on NACPICA.

It is not great to have such conditionals, but it's better to have

#include "acpica.h"

#ifdef NACPICA > 0

than to have

#if defined(__i386__) || defined(__x86_64__) || defined(__arm__)
#include "acpica.h"
#endif

#ifdef NACPICA > 0

and we can still grep for NACPICA to find places that could be
factored better.


# 1.123 09-Jan-2022 jmcneill

dwcmmc: Add ACPI attach support


# 1.122 03-Jan-2022 jmcneill

Add driver for DesignWare Ethernet Quality-of-Service controller.


# 1.121 24-Dec-2021 jmcneill

Add ohci at acpi bindings. No known PNP IDs for this, so match using _CLS
and the PCI class/subclass/interface codes. Maybe this will take off.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.120 24-Jan-2021 jmcneill

Add support for NXP Layerscape I2C controllers.


# 1.119 13-Dec-2020 jmcneill

acpi: Add support for Collaborative Processor Performance Control (CPPC).

CPPC is the modern replacement for processor performance controls (P-states
and T-states). The _CPC method on a processor device contains information
about supported performance levels of the device.

This driver reports the supported performance levels and allows for
setting the desired level using the machdep.cpufreq.cpuN.* sysctls. Note
that a "performance level" value is not guaranteed to represent a CPU
frequency, so treat the numbers reported as such.


# 1.118 13-Dec-2020 jmcneill

acpi: Add support for ACPI Platform Communications Channel (PCC).


# 1.117 07-Dec-2020 jmcneill

acpicpu: Add support for ACPI P-states and T-states on Arm.


# 1.116 06-Dec-2020 jmcneill

acpi: add character device for accessing ACPI tables

The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.115 22-Feb-2020 jmcneill

branches: 1.115.6;
Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

branches: 1.114.6;
Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


# 1.124 16-Feb-2022 riastradh

sys: Include files.acpica unconditionally.

This way acpica.h always exists unconditionally, so MI code can be
conditional on NACPICA.

It is not great to have such conditionals, but it's better to have

#include "acpica.h"

#ifdef NACPICA > 0

than to have

#if defined(__i386__) || defined(__x86_64__) || defined(__arm__)
#include "acpica.h"
#endif

#ifdef NACPICA > 0

and we can still grep for NACPICA to find places that could be
factored better.


# 1.123 09-Jan-2022 jmcneill

dwcmmc: Add ACPI attach support


# 1.122 03-Jan-2022 jmcneill

Add driver for DesignWare Ethernet Quality-of-Service controller.


# 1.121 24-Dec-2021 jmcneill

Add ohci at acpi bindings. No known PNP IDs for this, so match using _CLS
and the PCI class/subclass/interface codes. Maybe this will take off.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.120 24-Jan-2021 jmcneill

Add support for NXP Layerscape I2C controllers.


# 1.119 13-Dec-2020 jmcneill

acpi: Add support for Collaborative Processor Performance Control (CPPC).

CPPC is the modern replacement for processor performance controls (P-states
and T-states). The _CPC method on a processor device contains information
about supported performance levels of the device.

This driver reports the supported performance levels and allows for
setting the desired level using the machdep.cpufreq.cpuN.* sysctls. Note
that a "performance level" value is not guaranteed to represent a CPU
frequency, so treat the numbers reported as such.


# 1.118 13-Dec-2020 jmcneill

acpi: Add support for ACPI Platform Communications Channel (PCC).


# 1.117 07-Dec-2020 jmcneill

acpicpu: Add support for ACPI P-states and T-states on Arm.


# 1.116 06-Dec-2020 jmcneill

acpi: add character device for accessing ACPI tables

The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.115 22-Feb-2020 jmcneill

branches: 1.115.6;
Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

branches: 1.114.6;
Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


# 1.123 09-Jan-2022 jmcneill

dwcmmc: Add ACPI attach support


# 1.122 03-Jan-2022 jmcneill

Add driver for DesignWare Ethernet Quality-of-Service controller.


# 1.121 24-Dec-2021 jmcneill

Add ohci at acpi bindings. No known PNP IDs for this, so match using _CLS
and the PCI class/subclass/interface codes. Maybe this will take off.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.120 24-Jan-2021 jmcneill

Add support for NXP Layerscape I2C controllers.


# 1.119 13-Dec-2020 jmcneill

acpi: Add support for Collaborative Processor Performance Control (CPPC).

CPPC is the modern replacement for processor performance controls (P-states
and T-states). The _CPC method on a processor device contains information
about supported performance levels of the device.

This driver reports the supported performance levels and allows for
setting the desired level using the machdep.cpufreq.cpuN.* sysctls. Note
that a "performance level" value is not guaranteed to represent a CPU
frequency, so treat the numbers reported as such.


# 1.118 13-Dec-2020 jmcneill

acpi: Add support for ACPI Platform Communications Channel (PCC).


# 1.117 07-Dec-2020 jmcneill

acpicpu: Add support for ACPI P-states and T-states on Arm.


# 1.116 06-Dec-2020 jmcneill

acpi: add character device for accessing ACPI tables

The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.115 22-Feb-2020 jmcneill

branches: 1.115.6;
Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

branches: 1.114.6;
Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


# 1.122 03-Jan-2022 jmcneill

Add driver for DesignWare Ethernet Quality-of-Service controller.


# 1.121 24-Dec-2021 jmcneill

Add ohci at acpi bindings. No known PNP IDs for this, so match using _CLS
and the PCI class/subclass/interface codes. Maybe this will take off.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.120 24-Jan-2021 jmcneill

Add support for NXP Layerscape I2C controllers.


# 1.119 13-Dec-2020 jmcneill

acpi: Add support for Collaborative Processor Performance Control (CPPC).

CPPC is the modern replacement for processor performance controls (P-states
and T-states). The _CPC method on a processor device contains information
about supported performance levels of the device.

This driver reports the supported performance levels and allows for
setting the desired level using the machdep.cpufreq.cpuN.* sysctls. Note
that a "performance level" value is not guaranteed to represent a CPU
frequency, so treat the numbers reported as such.


# 1.118 13-Dec-2020 jmcneill

acpi: Add support for ACPI Platform Communications Channel (PCC).


# 1.117 07-Dec-2020 jmcneill

acpicpu: Add support for ACPI P-states and T-states on Arm.


# 1.116 06-Dec-2020 jmcneill

acpi: add character device for accessing ACPI tables

The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.115 22-Feb-2020 jmcneill

branches: 1.115.6;
Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

branches: 1.114.6;
Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


# 1.121 24-Dec-2021 jmcneill

Add ohci at acpi bindings. No known PNP IDs for this, so match using _CLS
and the PCI class/subclass/interface codes. Maybe this will take off.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.120 24-Jan-2021 jmcneill

Add support for NXP Layerscape I2C controllers.


# 1.119 13-Dec-2020 jmcneill

acpi: Add support for Collaborative Processor Performance Control (CPPC).

CPPC is the modern replacement for processor performance controls (P-states
and T-states). The _CPC method on a processor device contains information
about supported performance levels of the device.

This driver reports the supported performance levels and allows for
setting the desired level using the machdep.cpufreq.cpuN.* sysctls. Note
that a "performance level" value is not guaranteed to represent a CPU
frequency, so treat the numbers reported as such.


# 1.118 13-Dec-2020 jmcneill

acpi: Add support for ACPI Platform Communications Channel (PCC).


# 1.117 07-Dec-2020 jmcneill

acpicpu: Add support for ACPI P-states and T-states on Arm.


# 1.116 06-Dec-2020 jmcneill

acpi: add character device for accessing ACPI tables

The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.115 22-Feb-2020 jmcneill

branches: 1.115.6;
Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

branches: 1.114.6;
Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


# 1.120 24-Jan-2021 jmcneill

Add support for NXP Layerscape I2C controllers.


Revision tags: thorpej-futex-base
# 1.119 13-Dec-2020 jmcneill

acpi: Add support for Collaborative Processor Performance Control (CPPC).

CPPC is the modern replacement for processor performance controls (P-states
and T-states). The _CPC method on a processor device contains information
about supported performance levels of the device.

This driver reports the supported performance levels and allows for
setting the desired level using the machdep.cpufreq.cpuN.* sysctls. Note
that a "performance level" value is not guaranteed to represent a CPU
frequency, so treat the numbers reported as such.


# 1.118 13-Dec-2020 jmcneill

acpi: Add support for ACPI Platform Communications Channel (PCC).


# 1.117 07-Dec-2020 jmcneill

acpicpu: Add support for ACPI P-states and T-states on Arm.


# 1.116 06-Dec-2020 jmcneill

acpi: add character device for accessing ACPI tables

The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.115 22-Feb-2020 jmcneill

branches: 1.115.6;
Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

branches: 1.114.6;
Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


Revision tags: thorpej-futex-newbase
# 1.119 13-Dec-2020 jmcneill

acpi: Add support for Collaborative Processor Performance Control (CPPC).

CPPC is the modern replacement for processor performance controls (P-states
and T-states). The _CPC method on a processor device contains information
about supported performance levels of the device.

This driver reports the supported performance levels and allows for
setting the desired level using the machdep.cpufreq.cpuN.* sysctls. Note
that a "performance level" value is not guaranteed to represent a CPU
frequency, so treat the numbers reported as such.


# 1.118 13-Dec-2020 jmcneill

acpi: Add support for ACPI Platform Communications Channel (PCC).


# 1.117 07-Dec-2020 jmcneill

acpicpu: Add support for ACPI P-states and T-states on Arm.


# 1.116 06-Dec-2020 jmcneill

acpi: add character device for accessing ACPI tables

The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.


Revision tags: thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.115 22-Feb-2020 jmcneill

branches: 1.115.6;
Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

branches: 1.114.6;
Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


# 1.117 07-Dec-2020 jmcneill

acpicpu: Add support for ACPI P-states and T-states on Arm.


# 1.116 06-Dec-2020 jmcneill

acpi: add character device for accessing ACPI tables

The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.


Revision tags: thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.115 22-Feb-2020 jmcneill

Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

branches: 1.114.6;
Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


# 1.116 06-Dec-2020 jmcneill

acpi: add character device for accessing ACPI tables

The /dev/acpi character device gives an aperture into physical memory
that allows only read access to known ACPI tables: RSDP, XSDT/RSDT, and
the root tables. Adapt acpidump(8) to use this interface by default,
falling back to the old /dev/mem method if it is not available or if
ACPIDUMP_USE_DEVMEM=1 is set in the environment. The user visible benefit
of this change is that "options INSECURE" is no longer required to
dump ACPI tables.


Revision tags: thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
# 1.115 22-Feb-2020 jmcneill

Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

branches: 1.114.6;
Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


# 1.115 22-Feb-2020 jmcneill

Add ACPI glue for Broadcom GENETv5


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2; 1.101.4;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
# 1.114 25-Dec-2018 mlelstv

Make ipmi driver available to other platforms.
Add ACPI attachment.


Revision tags: pgoyette-compat-1126
# 1.113 26-Oct-2018 jmcneill

Add xhci at acpi glue


# 1.112 26-Oct-2018 jmcneill

Add ehci at acpi glue


# 1.111 22-Oct-2018 jmcneill

Add driver for ACPI Generic Event Device


# 1.110 22-Oct-2018 jmcneill

Factor out common ACPI event code into a shared module.


# 1.109 21-Oct-2018 jmcneill

Add ACPI attach glue for virtio_mmio.


Revision tags: pgoyette-compat-1020
# 1.108 19-Oct-2018 jakllsch

Add amdccp(4) driver for AMD Cryptographic Coprocessor, as found on the
A11xx Opterons. Driver currently provides RNG service only.


# 1.107 17-Oct-2018 jmcneill

Add ACPI glue for DesignWare I2C controller.


# 1.106 16-Oct-2018 jmcneill

Rename options ACPI_REDUCED_HARDWARE to ACPI_REDUCED_HW. The former is
a boolean in the acpica build, so use the latter to select the correct
value.


# 1.105 16-Oct-2018 jmcneill

Add ACPI_REDUCED_HARDWARE defflag (used by ACPICA) and fix acpi build with this option set.


# 1.104 15-Oct-2018 jmcneill

Add ACPI glue for PL061 GPIO


# 1.103 12-Oct-2018 jmcneill

Add ahcisata at acpi glue


# 1.102 12-Oct-2018 jmcneill

Add attributes for attaching acpi(4) child devices based on SDT, GTDT, and MADT subtables.


Revision tags: pgoyette-compat-0930 pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.101 01-Mar-2018 maya

branches: 1.101.2;
Limit building & calling ACPI MCFG to kernels with PCI and ACPI.

pci_quirks.c requires pci
acpi_mcfg.c was recently changed to use pci_quirks.c functions.

as a result, ia64 kernels with acpi but no pci failed to link.

tested an ia64 and amd64 kernels build.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


# 1.100 10-Dec-2017 bouyer

Implement a ACPI helper to fill the property array expected from our I2C
framework from the ACPI tables.
Also implement acpi_intr_establish(), acpi_intr_disestablish() and
acpi_intr_string().
Needed for the upcoming HID over I2C support, proposed on tech-kern@
on Dec, 1.


Revision tags: tls-maxphys-base-20171202
# 1.99 25-Nov-2017 jmcneill

Add driver for QEMU Firmware Configuration device.

This interface allows the host to pass various data items and files to
the guest OS.


Revision tags: matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.


Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
# 1.98 21-Jun-2016 nonaka

Add sdhc(4) at acpi support


Revision tags: nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
# 1.97 02-Oct-2015 msaitoh

PCI Extended Configuration stuff written by nonaka@:
- Add PCI Extended Configuration Space support into x86.
- Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1
if it isn't accessible.
- Decode Extended Capability in PCI Extended Configuration Space.
Currently the following extended capabilities are decoded:
- Advanced Error Reporting
- Virtual Channel
- Device Serial Number
- Power Budgeting
- Root Complex Link Declaration
- Root Complex Event Collector Association
- Access Control Services
- Alternative Routing-ID Interpretation
- Address Translation Services
- Single Root IO Virtualization
- Page Request
- TPH Requester
- Latency Tolerance Reporting
- Secondary PCI Express
- Process Address Space ID
- LN Requester
- L1 PM Substates
The following extended capabilities are not decoded yet:
- Root Complex Internal Link Control
- Multi-Function Virtual Channel
- RCRB Header
- Vendor Unique
- Configuration Access Correction
- Multiple Root IO Virtualization
- Multicast
- Resizable BAR
- Dynamic Power Allocation
- Protocol Multiplexing
- Downstream Port Containment
- Precision Time Management
- M-PCIe
- Function Reading Status Queueing
- Readiness Time Reporting
- Designated Vendor-Specific


Revision tags: nick-nhusb-base-20150921
# 1.96 21-Sep-2015 nonaka

PR/50261: Added newer Toshiba hotkeys support.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
# 1.95 14-Sep-2014 mrg

branches: 1.95.2;
introduce a new option: ACPI__DIS_IS_BROKEN. this is a hack to
avoid calling the "_DIS" method during acpi interrupt link setup,
which hangs various nforce4 based motherboards.

when the problem is properly fixed, remove this hack. for now,
it allows someone (me) to have a valid kernel config that doesn't
require a source hack every new tree.

ok chs@


Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.94 01-Apr-2014 riastradh

branches: 1.94.4;
First draft of drivers for the Apple System Management Controller.

Device interface derived by reading the Linux driver source code and
<http:///www.parhelia.ch/blog/statics/k3_keys.html> as of 2012-12-05.

Includes support for attaching fan and temperature sensors to sysmon.
No accelerometer yet.

Compile-tested only, based on some run-testing of experiments from
userland. Module attachment is not quite finished, so it won't work
yet.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.93 22-Jan-2012 christos

branches: 1.93.6; 1.93.10;
add a tpm driver from bsssd.sourceforge.net


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.92 22-Sep-2011 jakllsch

branches: 1.92.2; 1.92.6;
valz(4) is superseded entirely by acpivga(4) these days.


# 1.91 13-Jul-2011 jruoho

A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.


# 1.90 14-Jun-2011 jruoho

Try to attach hpet(4) also via a specific HPET table. Fixes PR kern/43702.


# 1.89 12-Jun-2011 jruoho

Rewrite the aibs(4) driver in order to support new models. Draws from the
revision 1.6 (claudio@) of the OpenBSD's equivalent driver. Tested by mrg@.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase rmind-uvmplock-base
# 1.88 27-Feb-2011 jruoho

branches: 1.88.2;
Move acpicpu(4) from "acpinodebus" to "cpufeaturebus".


# 1.87 20-Feb-2011 jruoho

Split fujbp(4) and fujhk(4) to separate instances from fujitsu(4). Allows
modularization and takes care of tsutsui@'s justified concern over the too
generic name "fujitsu". Ok gsutre@.


Revision tags: bouyer-quota2-base
# 1.86 17-Jan-2011 jmcneill

branches: 1.86.2;
acpiwdrt needs sysmon_wdog


# 1.85 17-Jan-2011 jmcneill

Add a driver for ACPI "Watchdog Resource Table" devices.

acpiwdrt0 at acpi0: mem 0xfed01000,0xfed01004
acpiwdrt0: PCI 0:000:00:0 vendor 0x1106 product 0x3337
acpiwdrt0: watchdog interval 1-1023 sec.


Revision tags: jruoho-x86intr-base
# 1.84 09-Jan-2011 jruoho

branches: 1.84.2;
Add a dummy-driver for ACPI fans.


# 1.83 05-Jan-2011 jruoho

Add a driver for ACPI power meters.


Revision tags: matt-mips64-premerge-20101231 uebayasi-xip-base4
# 1.82 05-Nov-2010 gsutre

Merge ACPI Fujitsu Driver. Provides support for hotkeys and other
built-in components through vendor-specific ACPI devices.

ok jruoho@


Revision tags: uebayasi-xip-base3
# 1.81 12-Oct-2010 gsutre

Merge ACPI display driver. Provides generic support for brightness
control and output switching, through ACPI video extensions.

TODO: use wsconsctl(8) instead of sysctl(8) for brightness control.

ok jruoho@
also discussed with cegger@ and jmcneill@


Revision tags: yamt-nfs-mp-base11
# 1.80 06-Sep-2010 jmcneill

Add support for blacklisting ACPI BIOS implementations by year. By default,
don't use ACPI on BIOS which advertise release years <= 2000. This
can be changed by setting option ACPI_BLACKLIST_YEAR=0 or by setting
acpi_force_load=1.


Revision tags: uebayasi-xip-base2
# 1.79 13-Aug-2010 jruoho

Merge T-state a.k.a. throttling support for acpicpu(4).

Remarks:

1. Native instructions are supported only on Intel. Native support for
other x86 vendors will be investigated. By assumption, AMD and others
use the I/O based approach.

2. The existing code, INTEL_ONDEMAND_CLOCKMOD, must be disabled in
order to use acpicpu(4). Otherwise fatal MSR races may occur.
Unlike with P-states, no attempt is done to disable the existing
implementation.

3. There is no rationale to export controls to user land.

4. Throttling is an artefact from the past. T-states will not be used for
power management per se. For CPU frequency management, P-states are
preferred in all circumstances. No noticeable additional power savings
were observed in various experiments. When the system has been scaled
to the highest (i.e. lowest power) P-state, it is preferable to move
from C0 to deeper C-states than it is to actively throttle the CPU.

5. But T-states need to be implemented for passive cooling via acpitz(4).
As specified by ACPI and Intel documents, these can be used as the
last line of defence against critical thermal conditions. Support
for this will be added later.


Revision tags: yamt-nfs-mp-base10
# 1.78 08-Aug-2010 jruoho

Add P-states. (I blame the ease of using modules.)


# 1.77 07-Aug-2010 jruoho

Reorganize: also the APIC tables will be dumped in ACPIVERBOSE, and the
callback functions will be modified to be suitable also with other tables.


# 1.76 18-Jul-2010 jruoho

Merge a driver for ACPI CPUs with basic support for processor power states,
also known as C-states. The code is modular and provides an easy way to add
the remaining functionality later (namely throttling and P-states).

Remarks:

1. Commented out in the GENERICs; more testing exposure is needed.

2. The C3-state is disabled for the time being because it turns off
timers, among them the local APIC timer. This may not be universally
true on all x86 processors; define ACPICPU_ENABLE_C3 to test.

3. The algorithm used to choose a power state may need tuning. When
evaluating the appropriate state, the implementation uses the
previous sleep time as an indicator. Additional hints would include
for example the system load.

Also bus master activity is evaluated when choosing a state. The
usb(4) stack is notorious for such activity even when unused.
Typically it must be disabled in order to reach the C3-state,
but it may also prevent the use of C2.

4. While no extensive empirical measurements have been carried out, the
power savings are somewhere between 1-2 W with C1 and C2, depending
on the processor, firmware, and load. With C3 even up to 4 W can be
saved. The less something ticks, the more power is saved.

ok jmcneill@, joerg@, and discussed with various people.


# 1.75 31-May-2010 pgoyette

Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.


Revision tags: uebayasi-xip-base1
# 1.74 22-Apr-2010 jruoho

Merge new code for ACPI power resources.

The old code served us well, but a major overhaul would have been needed for
it to cope with the increased demands of the code -- and the specifications.

ok jmcneill@, pgoyette@


# 1.73 14-Apr-2010 jruoho

Reorganize the main file: add several missing prototypes, move the functions
around so that they appear in their logical order and place, etc. In
addition, split the utility functions to a separate file.

No functional change. Ok jmcneill@.


# 1.72 11-Apr-2010 jakllsch

Add valz(4), a simple driver to handle the backlight keys on some
Toshiba laptops. As of yet only tested on a Satellite A135-S4527.


# 1.71 10-Apr-2010 jruoho

Move vald(4) to sys/dev/acpi. This is MI and should work also on amd64.

ok jmcneill@

XXX: This is broken: it calls methods with absolute pathnames (almost
guaranteed not to be portable across models), it accesses methods
that are in the domain of other drivers, it walks the namespace on
its own, it contains plenty of magic constants, it does not
integrate with existing KPIs, etc. Summa summarum: this should be
rewritten as a more generic toshiba_acpi(4).


# 1.70 08-Apr-2010 jruoho

Move acpiwmi(4) to the "sys/dev/acpi/wmi" -subdirectory.


# 1.69 08-Apr-2010 jruoho

Include 'files.wmi'.


# 1.68 19-Mar-2010 cnst

Remove aiboost(4) as obsolete and redundant since the introduction of aibs(4).

http://mail-index.netbsd.org/tech-kern/2010/03/06/msg007458.html

Reviewed by <pgoyette>, <cegger>, <jruoho>, <tech-kern>.


Revision tags: yamt-nfs-mp-base9
# 1.67 09-Feb-2010 cnst

branches: 1.67.2;
New aibs(4) driver for ASUSTeK AI Booster (ACPI ATK0110) hardware monitor
with limit support.

http://thread.gmane.org/gmane.os.netbsd.devel.kernel/35654

Reviewed by <pgoyette>, <jruoho> and <tech-kern>.


Revision tags: uebayasi-xip-base
# 1.66 06-Feb-2010 pgoyette

branches: 1.66.2;
Import my experimental ACPI SMBus Control Method Interface driver

XXX Should not be enabled in any configuration file until you have
XXX disabled corresponding "native" i2c driver! Read the acpismbus(4)
XXX man page!


# 1.65 31-Jan-2010 jruoho

Add dynamic debug options for ACPI_DEBUG kernels.

ok jmcneill@, pooka@, pgoyette@


# 1.64 03-Jan-2010 jruoho

Introduce acpiwmibus, a pseudo-bus to which the child WMI devices attach.

Multiple WMI mapper devices are supported, but each one can have only one
child device.

All exposed functions now require the parent mapper device as a parameter.

ok pgoyette@, jmcneill@


Revision tags: matt-premerge-20091211
# 1.63 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.62 25-Nov-2009 cegger

Add ACPI SLIT parser. This is part of NUMA support.
Tested on a 8-node machine.

Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


# 1.61 25-Nov-2009 cegger

Add ACPI SRAT parser. This is a part of NUMA support.
Tested on 1-node, 2-node and 8-node machines.
Patch presented on tech-kern@, port-i386@ and port-amd64@.

No comments.


Revision tags: jym-xensuspend-nbase
# 1.60 02-Oct-2009 jmcneill

PR# kern/42139: ACPI WMI: new driver

Import acpiwmi(4) from Jukka Ruohonen. From the PR:

Attached is a driver that implements ACPI WMI API:

http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

The WMI is used to provide a generic interface for OEMs to use certain
platform/laptop-specific additions to the standard ACPI in a somewhat
portable way. These can be hotkeys for additional buttons, different event
handlers (wireless kill switch, lid switch, etc.), and so on. At least HP
and Acer use it by default nowadays.

The benefit of this interface would be portability. For an example, instead
of hpqlb(4) that works only with certain HP models, we could have a generic
HP WMI-driver that should work in theory across all HP laptops. On many new
laptops WMI may also be the only way to access laptop/manufacturer-specific
features.


# 1.59 30-Sep-2009 jmcneill

Initial import of an SD/MMC driver for the Winbond W83L518D (and probably
W83L519D) Integrated Media Reader with PNP bus attachment glue.


Revision tags: yamt-nfs-mp-base8
# 1.58 31-Aug-2009 cube

Don't reference files that don't exist, and cvs diff before commit.


Revision tags: yamt-nfs-mp-base7
# 1.57 18-Aug-2009 jmcneill

Switch to ACPICA 20090730, and update for API changes.


# 1.56 09-Aug-2009 christos

spic has moved.


# 1.55 04-Aug-2009 jmcneill

add hw.wake.* sysctl subtree for toggling which devices are allowed to
restore the system from sleep. set/clear wake GPEs as specified before
entering sleep.

by default, the following devices are enabled for wake:
- sleep/power buttons
- lid switch
- pc kbd controller

reviewed by: joerg


# 1.54 03-Aug-2009 jmcneill

- add experimental cpu fan/voltage switching support (sysctl hw.asus0.*)
- add fan sensor
- rename asus_softc_t -> struct asus_softc
- add detach method
- update copyright for 2009


Revision tags: jymxensuspend-base yamt-nfs-mp-base6
# 1.53 06-Jul-2009 joerg

Ignore breakpoints in the DSDT even if DDB is present.
A new option ACPI_BREAKPOINT reenables them.


Revision tags: netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase wrstuden-revivesa-base mjf-devfs2-base
# 1.52 18-May-2008 cegger

branches: 1.52.8; 1.52.12; 1.52.16;
acpidalb(4): Driver for PNP0C32 Hotkeys aka "Direct Application Launch Buttons".
"awesome" jmcneill


Revision tags: yamt-pf42-base2 yamt-nfs-mp-base2
# 1.51 01-May-2008 cegger

branches: 1.51.2;
hpqlb(4): driver for HP Quick Launch buttons - found on HP Pavilion Notebooks


Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
# 1.50 31-Mar-2008 jmcneill

branches: 1.50.2; 1.50.4;
Add ASUS ACPI hotkey driver, as found in the Eee PC.


Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
# 1.49 23-Dec-2007 jmcneill

branches: 1.49.6;
Move Sony Notebook Controller (sony(4)) driver from MD to MI directory,
as it can be used on amd64 as well.


# 1.48 21-Dec-2007 jmcneill

Add Thinkpad ACPI driver, for controlling hotkeys and display brightness.


Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2
# 1.47 09-Dec-2007 jmcneill

branches: 1.47.2;
Merge jmcneill-pm branch.


Revision tags: nick-csl-alignment-base5 matt-armv6-prevmlocking yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
# 1.46 23-Aug-2007 tnn

branches: 1.46.2; 1.46.10; 1.46.12;
apm emulation needs envsys. From Jukka Salmi on the current-users list.


Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 mjf-ufs-trans-base
# 1.45 08-May-2007 xtraeme

branches: 1.45.2; 1.45.6;
Split the ug(4) driver in three components:

* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)

That means that ug(4) can now be attached via ACPI.

Thanks to Mihai Chelaru for the good work.


Revision tags: thorpej-atomic-base
# 1.44 14-Mar-2007 xtraeme

Rename acpi_aiboost to aiboost, suggested by cube.


# 1.43 13-Mar-2007 xtraeme

ASUS AI Booster ACPI driver, ported from FreeBSD.

This driver will report values from the Super I/O chip via ACPI.
It should be possible to overclock the system with this driver, but
it's not implemented yet.

All newer ASUS motherboards probably will work with this driver
(device ATK0110).

[juan@nocturno][~]> envstat -r
CPU Temperature: 30.000 degC
MB Temperature: 38.000 degC
Vcore Voltage: 1.240 V
+3.3 Voltage: 3.264 V
+5 Voltage: 4.992 V
+12 Voltage: 12.091 V
CPU FAN Speed: 1454 RPM
[juan@nocturno][~]>


# 1.42 08-Mar-2007 njoly

branches: 1.42.2; 1.42.4;
High Precision Event Timer driver, following Intel specifications.

Allow attachement at both ACPI (hpet@acpi) and AMD8111 LPC Controller
(hpet@amdpcib).

Requested by xtraeme, and tested by a few users.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase newlock2-base
# 1.41 09-Jan-2007 cube

branches: 1.41.2;
Add a lint-only value of "/dev/null" for ACPI_DSDT_FILE.

Bump required config(1) version. Yes, it implies everybody will have to
rebuild config(1). I can live with people hating me.


Revision tags: yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 netbsd-4-base rpaulo-netinet-merge-pcb-base
# 1.40 14-Aug-2006 itohy

branches: 1.40.2; 1.40.6;
ACPI frontend for Yamaha OPL3-SA[23].
Derived from PR kern/33991 by jasper at pointless dot net.


Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7
# 1.39 06-Aug-2006 christos

PR/34116: Takuya SHIOZAKI: acpiapm(4) misuses config(9)
acpiapm(4) always matches the first node of AML, which is unrelated
with acpiapm. Separate acpi(4)'s children into two individual interface
attributes.


# 1.38 08-Jul-2006 christos

Add acpi apm attachment based on sysmon hooks.


# 1.37 04-Jul-2006 christos

Apply fvdl's acpi pci interrupt configuration code.
- MPACPI is no more.
- MPACPI_SCANPCI -> ACPI_SCANPCI


Revision tags: yamt-pdpolicy-base6
# 1.36 21-Jun-2006 drochner

First cut on an implementation of an ACPI power management counter
backend for timecounters.
Due to known bugs in some chipsets, always read until we get 3 successive
samples which are monotonic, as FreeBSD does in its "safe" variant.
This can be refined later, either by chipset quirks or by a test (as
FreeBSD does).


Revision tags: chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
# 1.35 31-Jan-2006 kochi

branches: 1.35.2; 1.35.6; 1.35.14;
remove ACPI_DISABLE_ON_POWEROFF option, which was there just for
compatibility of our old driver behavior, which is not necessary.


# 1.34 05-Jan-2006 rpaulo

* defflag ACPI_DSDT_OVERRIDE and defparam ACPI_DSDT_FILE.
* adjust comments to reality


# 1.33 11-Dec-2005 christos

branches: 1.33.2;
merge ktrace-lwp.


Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
# 1.32 21-Jun-2005 sekiya

branches: 1.32.2;
Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
by both PCIBIOS and ACPI. The redundancy is very redundant. Therefore,
rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
configuration mode. This probably renders the fixup in pcibios.c
redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.


Revision tags: yamt-km-base4 kent-audio2-base
# 1.31 25-Mar-2005 cube

Add attimer(4) driver, with ISA and ACPI attachments.

attimer(4) is the new body of the part of pcppi(4) that mapped the TIMER1
register to set the pitch of the bell. It was necessary to separate them
in order to have a working ACPI attachment (as the two appear as different
devices in the ACPI structures).


# 1.30 21-Mar-2005 xtraeme

Add pcppi(4) ACPI attachment, which matches the "AT-style speaker
sound" ACPI device.

Reviewed by christos@.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
# 1.29 02-Dec-2004 xtraeme

branches: 1.29.4; 1.29.6;
Add ACPI joy(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed and ok'ed by cube@ and martin@.


# 1.28 02-Dec-2004 xtraeme

Add ACPI mpu(4) attachment, based on lpt_acpi.c by jmcneill@,
reviewed by christos@, cube@ and martin@.

While here, remove a printf() in mpu_attach() (ic/mpu.c) to remove
an empty line in some frontends (mpu_isa.c, etc).


# 1.27 07-Jun-2004 kochi

Add ACPI_DISABLE_ON_POWEROFF option.
Note: the default behavior is changed. Now we don't disable the ACPI
subsystem on power off (halt -p) by default.
'options ACPI_DISABLE_ON_POWEROFF' in a kernel config file makes the kernel
behave the way we used to be.


# 1.26 27-May-2004 kochi

don't compile acpi_madt.c unless options MPACPI is specified.


# 1.25 26-May-2004 kochi

ThermalZone improvement work by lha at stacken.kth.se, inspired from
FreeBSD thermal zone code. Minor style fixes and bugfixes by me.


# 1.24 03-May-2004 kochi

Add sysmon pswitch hook so that powerd(8) can monitor
AC adapter online/offline events.


# 1.23 31-Mar-2004 tron

Only call acpiec_early_attach() in "acpi.c" if the kernel is configured
to include the "acpiec" device.


Revision tags: netbsd-2-0-base
# 1.22 31-Jan-2004 jdolecek

branches: 1.22.2;
add dependency on isadma for atppc attachments
add atppc_isadma.c for atppc@isapnp and atppc@ofisa, too


# 1.21 25-Jan-2004 jdolecek

add ACPI atppc(4) attachment; probes properly, DMA and actual transfer
not tested yet


# 1.20 15-May-2003 fvdl

branches: 1.20.2;
Add quirk handling to ACPI. First quirk entry is "PTLTD " rev 0x06040000,
which gives problems with PCI bus finding; the object hierarchy doesn't
match the real world for some systems, most notably SuperMicro boards.
Linux has this one blacklisted as well.


# 1.19 20-Apr-2003 thorpej

Use sysmon_taskq.


# 1.18 17-Apr-2003 matt

acpi.c needs sysmon_power too.


# 1.17 17-Apr-2003 thorpej

* Don't do the ACPI_PCI_FIXUP unless it is explicitly enabled in
the kernel config file. That code makes a total mess of any
system with multiple PCI busses.
* Rework the way buttons are handled; register them with sysmon,
and let it take the appropriate action. This lets us gracefully
shut down when the power button is pressed.


Revision tags: nathanw_sa_before_merge nathanw_sa_base
# 1.16 12-Jan-2003 christos

add some more flags used only in acpi.c


# 1.15 05-Jan-2003 christos

add ACPIVERBOSE; while I am there, fix the eval_string function so it does
not leak.


# 1.14 05-Jan-2003 fvdl

Add some code to deal with the MADT.


# 1.13 04-Jan-2003 jmcneill

Initial support for ACPI Thermal Zones. For now, we only export the zone
temperature to sysmon; in the near future we should be associating devices
in this thermal zone with this device so we can do active or passive
cooling on a zone-by-zone basis.


Revision tags: fvdl_fs64_base
# 1.12 31-Dec-2002 explorer

add envsys support to acpi A/C adapter and batteries. This is still a work
in progress, much like the rest of ACPI.


# 1.11 28-Dec-2002 jmcneill

Add an fdc at acpi(4) attachment


# 1.10 28-Dec-2002 matt

Add a pckbc acpi attachment (it compiles but it untested).


# 1.9 28-Dec-2002 jmcneill

Add an lpt attachment to acpi(4)


# 1.8 28-Dec-2002 jmcneill

Add 'com at acpi' and 'wss at acpi' glue. These are both working great on
my ThinkPad 600E.

XXX isa_dmainit isn't called early enough for the 'audio at wss' attachment
XXX to work, so I'm deferring the call to 'wssattach' until later on. This
XXX should be fixed soon.


Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge gehenna-devsw-base kqueue-base
# 1.7 17-Jun-2002 christos

move spic_acpi to arch/i386/acpi


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.6 22-Apr-2002 augustss

branches: 1.6.2;
Attach the spic driver via ACPI.


# 1.5 24-Mar-2002 sommerfeld

Prototype ACPI Control Method Battery driver.

ACPI defines two different battery device interfaces: "Control Method"
batteries, in which AML methods are defined in order to get battery
status and set battery alarm thresholds, and a "Smart Battery" device,
which is an SMbus device accessed through the ACPI Embedded Controller
device; this driver knows how to attach to the former sort of device.

As a total kludge, since we haven't wired things up to sysmon/envsys
yet, we report battery status through a once-per-minute kernel printf,
so don't use this driver yet if you want your disk to spin down.

Motivated by and tested on Sony PCG-R505TL laptop, which has
nonfunctional APM.

configure as:

acpibat* at acpi ?

Sample output:

acpibat0 at acpi0: ACPI Battery
acpibat0: Sony Corp. LION
acpibat0: Design 38480mWh, Predicted 38480mWh Warn 120mWh Low 0mWh
acpibat0: discharging: 15112mV cap 25480mWh (66%) rate 16849mW
...
acpibat0: discharging: 15224mV cap 25070mWh (65%) rate 18405mW
...
acpibat0: discharging: 15200mV cap 24310mWh (63%) rate 13771mW
...
acpibat0: charging: 15768mV cap 23330mWh (60%) rate 20388mW


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.4 28-Nov-2001 lukem

branches: 1.4.2;
- convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
"options FOO=xxx"). options that take a value were converted to
defparam recently.
- minor whitespace & formatting cleanups


# 1.3 20-Nov-2001 lukem

- replace "defopt" with "defparam" for options which must take a value,
as config(8) will warn for value-less defparam options
- minor whitespace/formatting cleanup
- consolidate opt_tcp_recvspace.h and opt_tcp_sendspace.h into opt_tcp_space.h


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2
# 1.2 29-Sep-2001 thorpej

branches: 1.2.2; 1.2.4;
Build acpi_resource.c, add "acpiec" and "acpiacad".


# 1.1 28-Sep-2001 thorpej

Add some basic ACPI probing framework. This is far from complete,
it is merely a work in progress.