ACPI/Board-EC interaction: Difference between revisions
(Created page with "This page details the required interface and implementation details for connecting embedded controller ASL files to mainboard ASL files. Implementing this specification is man...") |
No edit summary |
||
Line 2: | Line 2: | ||
<span style="background:red">WARNING! The rules presented here are still a work-in-progress and should not yet be taken as as mandatory.</span> However, if you are implementing a new EC, mainboard, or are interested in refactoring existing ASL files, you should join in the conversation and get this specification finalized. | <span style="background:red">WARNING! The rules presented here are still a work-in-progress and should not yet be taken as as mandatory.</span> However, if you are implementing a new EC, mainboard, or are interested in refactoring existing ASL files, you should join in the conversation and get this specification finalized. | ||
EC ASL files should be self-contained, and not depend on the specific chipset or mainboard. As a result all variables and methods which are used must be standardized to foster interoperability and modularity. This specification details how to achieve those points. | |||
== Hotkey event methods == | |||
Two proposals exist: | |||
=== The hammer method === | |||
Define a set of common ACPI method names which the mainboard code should define, and the EC code can always use. | |||
The mainboard must #define these to an existing method. The actual ASL methods must not use these long names in ASL. The "MB_" prefix indicates that the mainboard is providing these methods. | |||
Notice that these methods are only called on hotkey events. As such, unless the user has really fast fingers, there isn't a huge ACPI overhead as opposed to setting/clearing the needed bits directly in the caller. | |||
* MB_TOGGLE_WLAN() or MB_TOGGLE_WIRELESS() (TODO: only one method should be defined!!!) | |||
** Toggle wireless LAN on and off, or wireless LAN and bluetooth (respectively). EC calls this on hotkey events. | |||
* MB_INCREASE_BRIGHTNESS() and MB_DECREASE_BRIGHTNESS() | |||
** Increase or decrease screen brightness. EC calls this on hotkey events. | |||
* MB_SWITCH_DISPLAY() | |||
** Switch the active display. EC calls this on hotkey events. | |||
* MB_NOTIFY_POWER_EVENT() | |||
** Handle power state notifications and notify CPU device objects to re-evaluate their _PPC and _CST tables. | |||
=== The mainboard handler method === |
Revision as of 18:38, 8 April 2014
This page details the required interface and implementation details for connecting embedded controller ASL files to mainboard ASL files. Implementing this specification is mandatory for every new mainboard/EC added to the tree.
WARNING! The rules presented here are still a work-in-progress and should not yet be taken as as mandatory. However, if you are implementing a new EC, mainboard, or are interested in refactoring existing ASL files, you should join in the conversation and get this specification finalized.
EC ASL files should be self-contained, and not depend on the specific chipset or mainboard. As a result all variables and methods which are used must be standardized to foster interoperability and modularity. This specification details how to achieve those points.
Hotkey event methods
Two proposals exist:
The hammer method
Define a set of common ACPI method names which the mainboard code should define, and the EC code can always use.
The mainboard must #define these to an existing method. The actual ASL methods must not use these long names in ASL. The "MB_" prefix indicates that the mainboard is providing these methods.
Notice that these methods are only called on hotkey events. As such, unless the user has really fast fingers, there isn't a huge ACPI overhead as opposed to setting/clearing the needed bits directly in the caller.
- MB_TOGGLE_WLAN() or MB_TOGGLE_WIRELESS() (TODO: only one method should be defined!!!)
- Toggle wireless LAN on and off, or wireless LAN and bluetooth (respectively). EC calls this on hotkey events.
- MB_INCREASE_BRIGHTNESS() and MB_DECREASE_BRIGHTNESS()
- Increase or decrease screen brightness. EC calls this on hotkey events.
- MB_SWITCH_DISPLAY()
- Switch the active display. EC calls this on hotkey events.
- MB_NOTIFY_POWER_EVENT()
- Handle power state notifications and notify CPU device objects to re-evaluate their _PPC and _CST tables.