soc/intel/cannonlake: Add ACPI workaround for EMMC
Two W/A had been added here for EMMC to make it working properly. 1. Enable power gating after D3 entry, disable power gating before D0 entry. 2. Add 50 ms delay to ensure Rcomp calibration done before EMMC out of D3. BUG=b:69323943 TEST=Run multiple ACPI S3 cycles on cannonlake u LPDDR4 platform. Change-Id: Ic6e98264521fb02b911a8c157a7982afa35fe20c Signed-off-by: Lijian Zhao <lijian.zhao@intel.com> Reviewed-on: https://review.coreboot.org/22390 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
afd03d8a28
commit
21573e9f4e
|
@ -14,6 +14,26 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Scope (\_SB.PCI0) {
|
Scope (\_SB.PCI0) {
|
||||||
|
/* EMMC */
|
||||||
|
Device(PEMC) {
|
||||||
|
Name(_ADR, 0x001A0000)
|
||||||
|
|
||||||
|
OperationRegion(SCSR, PCI_Config, 0x00, 0x100)
|
||||||
|
Field(SCSR, WordAcc, NoLock, Preserve) {
|
||||||
|
Offset(0xA2), // 0xA2, Device PG config
|
||||||
|
, 2,
|
||||||
|
PGEN, 1 // [BIT2] PGE - PG Enable
|
||||||
|
}
|
||||||
|
|
||||||
|
Method(_PS0, 0, Serialized) {
|
||||||
|
Stall (50) // Sleep 50 ms
|
||||||
|
Store(0, PGEN) // Disable PG
|
||||||
|
}
|
||||||
|
|
||||||
|
Method(_PS3, 0, Serialized) {
|
||||||
|
Store(1, PGEN) // Enable PG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* SD CARD */
|
/* SD CARD */
|
||||||
Device (SDXC)
|
Device (SDXC)
|
||||||
|
|
Loading…
Reference in New Issue