Difference between revisions of "ACPI/Board-EC interaction"
(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...") |
|||
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.