summaryrefslogtreecommitdiff
path: root/src/soc/intel/common/block/scs/ufs.c
diff options
context:
space:
mode:
authorMeera Ravindranath <meera.ravindranath@intel.com>2022-09-22 14:33:36 +0530
committerNick Vaccaro <nvaccaro@google.com>2022-10-04 18:31:09 +0000
commit598c0dda158bd2062442cbf0b42214d5ed95006f (patch)
treec56c67e95e8d4238750efd75907ecd03b7dc437a /src/soc/intel/common/block/scs/ufs.c
parentd49c3f278eb77faff098dceb5e7767b53950cd5d (diff)
soc/intel/alderlake: Fix UFS OCP fabric timeout
The delayed return of certain fetch instruction from memory to the UFS causes the OCP fabric to timeout on the transaction and become non-responsive. As recommended by the SoC and IP teams,program the OCP fabric register to avoid the timeout in the OCP fabric. This patch adds the following changes 1. Program the OCP fabric registers in the PS0 routine. 2. Move the ssdt contents of UFS to dsdt asl code to avoid duplication of UFS device creation BUG=b:240222922 TEST=Build and boot Nirwen UFS board, observe no system hang during Chrome PLT test. Signed-off-by: Meera Ravindranath <meera.ravindranath@intel.com> Change-Id: I949a4538ea5c5c378a4e8ff7bb88546db1412df2 Reviewed-on: https://review.coreboot.org/c/coreboot/+/67770 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Diffstat (limited to 'src/soc/intel/common/block/scs/ufs.c')
-rw-r--r--src/soc/intel/common/block/scs/ufs.c47
1 files changed, 0 insertions, 47 deletions
diff --git a/src/soc/intel/common/block/scs/ufs.c b/src/soc/intel/common/block/scs/ufs.c
deleted file mode 100644
index e70c87bfff..0000000000
--- a/src/soc/intel/common/block/scs/ufs.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-#include <acpi/acpi_device.h>
-#include <acpi/acpigen.h>
-#include <acpi/acpigen_pci.h>
-#include <device/pci.h>
-#include <device/pci_ids.h>
-
-#if CONFIG(HAVE_ACPI_TABLES)
-static void ufs_fill_ssdt(const struct device *dev)
-{
- struct acpi_dp *dsd;
-
- const char *scope = acpi_device_scope(dev);
-
- acpigen_write_scope(scope);
- acpigen_write_device("UFS");
- acpigen_write_ADR_pci_device(dev);
- acpigen_write_name_string("_DDN", "UFS Controller");
-
- dsd = acpi_dp_new_table("_DSD");
- acpi_dp_add_integer(dsd, "ref-clk-freq", CONFIG_SOC_INTEL_UFS_CLK_FREQ_HZ);
- acpi_dp_write(dsd);
- acpigen_write_device_end();
- acpigen_pop_len();
-}
-#endif
-
-static struct device_operations dev_ops = {
- .read_resources = pci_dev_read_resources,
- .set_resources = pci_dev_set_resources,
- .enable_resources = pci_dev_enable_resources,
-#if CONFIG(HAVE_ACPI_TABLES)
- .acpi_fill_ssdt = ufs_fill_ssdt,
-#endif
- .ops_pci = &pci_dev_ops_pci,
-};
-
-static const unsigned short pci_device_ids[] = {
- PCI_DID_INTEL_ADP_UFS,
- 0
-};
-
-static const struct pci_driver pch_ufs __pci_driver = {
- .ops = &dev_ops,
- .vendor = PCI_VID_INTEL,
- .devices = pci_device_ids
-};