superio/common: Add more ACPI methods
* Make use of introduced SSDT config mode access * Make use of introduced SSDT mutex * Provide ACPI functions to safely access SIO config space * Implement method to query LDN enable state * Implement method to set LDN enable state * Use introduced functions to implement _DIS and _STA in the device * Update documentation Tested on Aspeed AST2500 and Linux 5.2. Manually verified ACPI code that generates no errors in Linux. Change-Id: I520b29de925f368cd71ff8f1f58d2d57d72eff8d Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/37640 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
committed by
Felix Held
parent
7db16ddc88
commit
95bff2e17e
@@ -45,12 +45,33 @@ chip superio/common
|
||||
end
|
||||
```
|
||||
|
||||
## Automatically generated methods
|
||||
|
||||
The following methods are generated for each SuperIO:
|
||||
## AMTX()
|
||||
Acquire the global mutex and enter config mode.
|
||||
It's called this at the begining of an atomic operation to make sure
|
||||
no other ACPI code messes with the config space while working on it.
|
||||
|
||||
## RMTX()
|
||||
Exit config mode and release the global mutex.
|
||||
It's called at the end of an atomic operation.
|
||||
|
||||
## SLDN(Arg0)
|
||||
Selects the (virtual) LDN given as Arg0.
|
||||
This method isn't guarded with the global mutex.
|
||||
|
||||
## DLDN(Arg0)
|
||||
Disables the (virtual) LDN given as Arg0.
|
||||
This method aquires the global mutex.
|
||||
|
||||
## QLDN(Arg0)
|
||||
Queries the state of the (virtual) LDN given as Arg0.
|
||||
This method quires the global mutex.
|
||||
|
||||
## TODO
|
||||
|
||||
1) Add ACPI HIDs to every SuperIO driver
|
||||
2) Don't guess ACPI HID of LDNs if it's known
|
||||
3) Add "enter config" and "exit config" bytes
|
||||
4) Generate support methods that allow
|
||||
2) Generate support methods that allow
|
||||
* Setting resource settings at runtime
|
||||
* Getting resource settings at runtime
|
||||
* Disabling LDNs at runtime
|
||||
|
Reference in New Issue
Block a user