Difference between revisions of "ACPI/Board-EC interaction"

From coreboot
Jump to: navigation, search
(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.

The mainboard handler method