soc/amd/phoenix/include/soc/pci_devs: update defines to match the PPR
Parts of this file were still a copy of the file from the Mendocino SoC,
so update the file to match the PPR #57019 Rev 3.03 and the chipset
devicetree of the Phoenix SoC. Phoenix has 4 GFX/GPP PCIe bridges/ports,
the numbering scheme of the GPP PCIe bridges/ports was changed so that
the numbers match the device and function numbers, and there are new
device functions for the IPU and the USB4 controller and router devices.
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ie9429c03839bb0199a04cd6cafe9a955ebdacc91
Reviewed-on: https://review.coreboot.org/c/coreboot/+/74565
Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/soc/amd/phoenix/include/soc/pci_devs.h b/src/soc/amd/phoenix/include/soc/pci_devs.h
index efe84bc..0dde0ba 100644
--- a/src/soc/amd/phoenix/include/soc/pci_devs.h
+++ b/src/soc/amd/phoenix/include/soc/pci_devs.h
@@ -1,7 +1,5 @@
/* SPDX-License-Identifier: GPL-2.0-only */
-/* TODO: Update for Phoenix */
-
#ifndef AMD_PHOENIX_PCI_DEVS_H
#define AMD_PHOENIX_PCI_DEVS_H
@@ -20,36 +18,52 @@
#define IOMMU_DEVFN PCI_DEVFN(IOMMU_DEV, IOMMU_FUNC)
#define SOC_IOMMU_DEV _SOC_DEV(IOMMU_DEV, IOMMU_FUNC)
-/* PCIe GFX/GPP Bridge device 1 with no ports */
+/* PCIe GFX/GPP Bridge device 1 with 4 ports */
#define PCIE_GPP_BRIDGE_1_DEV 0x1
+#define PCIE_GPP_1_1_FUNC 1
+#define PCIE_GPP_1_1_DEVFN PCI_DEVFN(PCIE_GPP_BRIDGE_1_DEV, PCIE_GPP_1_1_FUNC)
+#define SOC_GPP_1_1_DEV _SOC_DEV(PCIE_GPP_BRIDGE_1_DEV, PCIE_GPP_1_1_FUNC)
+
+#define PCIE_GPP_1_2_FUNC 2
+#define PCIE_GPP_1_2_DEVFN PCI_DEVFN(PCIE_GPP_BRIDGE_1_DEV, PCIE_GPP_1_2_FUNC)
+#define SOC_GPP_1_2_DEV _SOC_DEV(PCIE_GPP_BRIDGE_1_DEV, PCIE_GPP_1_2_FUNC)
+
+#define PCIE_GPP_1_3_FUNC 3
+#define PCIE_GPP_1_3_DEVFN PCI_DEVFN(PCIE_GPP_BRIDGE_1_DEV, PCIE_GPP_1_3_FUNC)
+#define SOC_GPP_1_3_DEV _SOC_DEV(PCIE_GPP_BRIDGE_1_DEV, PCIE_GPP_1_3_FUNC)
+
+#define PCIE_GPP_1_4_FUNC 4
+#define PCIE_GPP_1_4_DEVFN PCI_DEVFN(PCIE_GPP_BRIDGE_1_DEV, PCIE_GPP_1_4_FUNC)
+#define SOC_GPP_1_4_DEV _SOC_DEV(PCIE_GPP_BRIDGE_1_DEV, PCIE_GPP_1_4_FUNC)
+
/* PCIe GPP Bridge device 2 with up to 6 ports */
#define PCIE_GPP_BRIDGE_2_DEV 0x2
-#define PCIE_GPP_2_0_FUNC 1
-#define PCIE_GPP_2_0_DEVFN PCI_DEVFN(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_0_FUNC)
-#define SOC_GPP_2_0_DEV _SOC_DEV(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_0_FUNC)
-
-#define PCIE_GPP_2_1_FUNC 2
+#define PCIE_GPP_2_1_FUNC 1
#define PCIE_GPP_2_1_DEVFN PCI_DEVFN(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_1_FUNC)
#define SOC_GPP_2_1_DEV _SOC_DEV(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_1_FUNC)
-#define PCIE_GPP_2_2_FUNC 3
+#define PCIE_GPP_2_2_FUNC 2
#define PCIE_GPP_2_2_DEVFN PCI_DEVFN(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_2_FUNC)
#define SOC_GPP_2_2_DEV _SOC_DEV(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_2_FUNC)
-#define PCIE_GPP_2_3_FUNC 4
+#define PCIE_GPP_2_3_FUNC 3
#define PCIE_GPP_2_3_DEVFN PCI_DEVFN(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_3_FUNC)
#define SOC_GPP_2_3_DEV _SOC_DEV(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_3_FUNC)
-#define PCIE_GPP_2_4_FUNC 5
+#define PCIE_GPP_2_4_FUNC 4
#define PCIE_GPP_2_4_DEVFN PCI_DEVFN(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_4_FUNC)
#define SOC_GPP_2_4_DEV _SOC_DEV(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_4_FUNC)
-#define PCIE_GPP_2_5_FUNC 6
+#define PCIE_GPP_2_5_FUNC 5
#define PCIE_GPP_2_5_DEVFN PCI_DEVFN(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_5_FUNC)
#define SOC_GPP_2_5_DEV _SOC_DEV(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_5_FUNC)
+#define PCIE_GPP_2_6_FUNC 6
+#define PCIE_GPP_2_6_DEVFN PCI_DEVFN(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_6_FUNC)
+#define SOC_GPP_2_6_DEV _SOC_DEV(PCIE_GPP_BRIDGE_2_DEV, PCIE_GPP_2_6_FUNC)
+
/* PCIe Bridges to Bus A, Bus B and Bus C devices */
#define PCIE_ABC_BRIDGE_DEV 0x8
@@ -85,13 +99,29 @@
#define PCIE_GPP_B_DEVFN PCI_DEVFN(PCIE_ABC_BRIDGE_DEV, PCIE_ABC_B_FUNC)
#define SOC_PCIE_GPP_B_DEV _SOC_DEV(PCIE_ABC_BRIDGE_DEV, PCIE_ABC_B_FUNC)
+#define GFX_IPU_DEV 0x0
+#define GFX_IPU_FUNC 1
+#define GFX_IPU_DEVFN PCI_DEVFN(GFX_IPU_DEV, GFX_IPU_FUNC)
+
#define PCIE_ABC_C_FUNC 3
#define PCIE_GPP_C_DEVFN PCI_DEVFN(PCIE_ABC_BRIDGE_DEV, PCIE_ABC_C_FUNC)
#define SOC_PCIE_GPP_C_DEV _SOC_DEV(PCIE_ABC_BRIDGE_DEV, PCIE_ABC_C_FUNC)
-#define XHCI2_DEV 0x0
-#define XHCI2_FUNC 0
-#define XHCI2_DEVFN PCI_DEVFN(XHCI2_DEV, XHCI2_FUNC)
+#define USB4_XHCI0_DEV 0x0
+#define USB4_XHCI0_FUNC 3
+#define USB4_XHCI0_DEVFN PCI_DEVFN(USB4_XHCI0_DEV, USB4_XHCI0_FUNC)
+
+#define USB4_XHCI1_DEV 0x0
+#define USB4_XHCI1_FUNC 4
+#define USB4_XHCI1_DEVFN PCI_DEVFN(USB4_XHCI1_DEV, USB4_XHCI1_FUNC)
+
+#define USB4_ROUTER0_DEV 0x0
+#define USB4_ROUTER0_FUNC 5
+#define USB4_ROUTER0_DEVFN PCI_DEVFN(USB4_ROUTER0_DEV, USB4_ROUTER0_FUNC)
+
+#define USB4_ROUTER1_DEV 0x0
+#define USB4_ROUTER1_FUNC 6
+#define USB4_ROUTER1_DEVFN PCI_DEVFN(USB4_ROUTER1_DEV, USB4_ROUTER1_FUNC)
/* SMBUS */
#define SMBUS_DEV 0x14