mb/system76: TGL-U: Disable AER for CPU PCIe RP

Disable PCIe Advanced Error Reporting on the CPU root port to prevent
some SSDs from timing out on S0ix suspend. AER results in the drive not
being able to switch from D3 back to D0.

    nvme 0000:01:00.0: can't change power state from D3cold to D0 (config space inaccessible)

Known to affect at least the following SSD models:

- ADATA XPG SX8200 Pro
- Samsung 970 EVO Plus (FW version: 2B7QCXE7)

Change-Id: I79da6b08ef1949f3bf1c6111aaa7e658bd29c0e2
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64080
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Tim Crawford
2022-05-18 16:00:34 -06:00
committed by Felix Held
parent 44ef2123b0
commit 59e03ebf4c
3 changed files with 18 additions and 0 deletions

View File

@@ -3,6 +3,12 @@
#include <mainboard/gpio.h>
#include <soc/ramstage.h>
void mainboard_silicon_init_params(FSP_S_CONFIG *params)
{
// Disable AER to fix suspend failing with some SSDs.
params->CpuPcieRpAdvancedErrorReporting[0] = 0;
}
static void mainboard_init(void *chip_info)
{
mainboard_configure_gpios();

View File

@@ -3,6 +3,12 @@
#include <soc/ramstage.h>
#include "gpio.h"
void mainboard_silicon_init_params(FSP_S_CONFIG *params)
{
// Disable AER to fix suspend failing with some SSDs.
params->CpuPcieRpAdvancedErrorReporting[0] = 0;
}
static void mainboard_init(void *chip_info)
{
gpio_configure_pads(gpio_table, ARRAY_SIZE(gpio_table));

View File

@@ -3,6 +3,12 @@
#include <mainboard/gpio.h>
#include <soc/ramstage.h>
void mainboard_silicon_init_params(FSP_S_CONFIG *params)
{
// Disable AER to fix suspend failing with some SSDs.
params->CpuPcieRpAdvancedErrorReporting[0] = 0;
}
static void mainboard_init(void *chip_info)
{
mainboard_configure_gpios();