mb/google/zork: Reconfigure PCIE_RST1_L as GPO driven low on sleep path
commit1247616304ebf9a8839a6808be2f12912b1d98f8
authorFurquan Shaikh <furquan@google.com>
Tue, 23 Jun 2020 18:07:22 +0000 (23 11:07 -0700)
committerFurquan Shaikh <furquan@google.com>
Wed, 1 Jul 2020 17:54:34 +0000 (1 17:54 +0000)
tree9870e15580b478b53c44d126f922b6cb2ff94ab8
parent17c46042eb9350a1cdc0d6cb68bcfa1850abd0fd
mb/google/zork: Reconfigure PCIE_RST1_L as GPO driven low on sleep path

This change configures PCIE_RST1_L as GPO driven low on the sleep
path. This is required to keep PERST# asserted to devices until
coreboot deasserts it on S3 resume path. Without this change, on S3
resume, PCIE_RST1_L gets deasserted sooner than required resulting in
violation of PCIe reset timings.

With this change, the behavior of PCIE_RST1_L is as follows:
1. GPIO27 is configured as NF (PCIE_RST1_L) in coreboot
bootblock/romstage and driven high.
2. On S3 entry, GPIO27 is configured as GPO driven low.

* Boot out of G3: Timing should be met since GPIO_27 is pulled down by
  default until coreboot configures it.
* S3 resume: Timing should be met since GPIO_27 is configured as GPO
  low and it retains state across S3 entry/exit. So, should be low
  until coreboot configures it.
* Warm reset: Timing should be met since it is configured as NF. So,
  hardware guarantees the reset timing as seen in "warm reset.jpg" in
  #46.

BUG=b:152582706

Signed-off-by: Furquan Shaikh <furquan@google.com>
Change-Id: Ia0ad1522edc438fd054d927ef4a2ab5c27329c00
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/coreboot/+/2261116
Reviewed-by: Aaron Durbin <adurbin@google.com>
Commit-Queue: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/42934
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
src/mainboard/google/zork/variants/baseboard/gpio_baseboard_common.c