NAME
acpiec —
ACPI Embedded
Controller
SYNOPSIS
acpiec* at acpi?
acpiecdt* at acpi?
DESCRIPTION
The
acpiec driver supports ACPI Embedded Controllers.
An ACPI Embedded Controller (EC) is typically a small microprocessor that is
responsible for various tasks related to ACPI. The primary task is to handle
ACPI specific interrupts, which are mapped to so-called ACPI General Purpose
Events (GPEs). Other possible functions include embedded access to other buses
such as the
iic(4).
The ACPI specific events range from user initiated events to events triggered by
the hardware. When such an event occurs, typically either a System Management
Interrupt (SMI) or a System Control Interrupt (SCI) is raised. The latter is
an active, visible, shareable, level interrupt. On most Intel chipsets SCI is
hardwired to the interrupt number 9. The main task of an EC is to raise a
system control interrupt.
All GPEs generate SCIs. A typical example of the internal wiring of GPEs could
involve
gpio(4): when, e.g., the
AC adapter is connected, a certain GPIO line becomes active, a given GPE is
flagged, and a SCI interrupt is raised by the EC, leading to execution of ACPI
machine code in order to locate the handler associated with the event. A
corresponding driver,
acpiacad(4) in this case, will
finally finish the processing of the event.
Due to the reasons described above, majority of ACPI specific drivers are
dysfunctional without
acpiec. It is therefore recommended
that
acpiec is always enabled, even though it may not be
required on some older systems.
SEE ALSO
acpi(4)
HISTORY
The
acpiec driver appeared in
NetBSD
1.6.
CAVEATS
Many machines depend on early attachment of
acpiec. In such
cases the information required by
acpiec should be available
as a separate and optional Embedded Controller Descriptor Table (ECDT). If an
ECDT is not available or early attachment can not be carried out due other
reasons, the initialization of the whole
acpi(4) subsystem may be
problematic.