From c4eb45fa85d9860ce94829c6c977b9e28a297bf9 Mon Sep 17 00:00:00 2001 From: Felix Held Date: Sat, 13 Feb 2021 02:36:02 +0100 Subject: [PATCH] soc/amd/picasso: introduce and use chipset device tree The chipset devicetree only has the essential PCIe devices enabled that are needed for the SoC code to work. It also defines aliases for all PCIe devices that can be used to reference the devices in the mainboard- specific devicetrees and devicetree overrides. To make the change easier to review that part will be done in a follow-up patch. Despite missing in the PPR, device pci 18.7 exists on Picasso. Signed-off-by: Felix Held Change-Id: I6b7c3fd32579a23539594672593a243172c161c7 Reviewed-on: https://review.coreboot.org/c/coreboot/+/50626 Tested-by: build bot (Jenkins) Reviewed-by: Raul Rangel --- src/mainboard/amd/bilby/devicetree.cb | 16 ------- .../mandolin/variants/cereme/devicetree.cb | 16 ------- .../mandolin/variants/mandolin/devicetree.cb | 16 ------- .../variants/baseboard/devicetree_dalboz.cb | 21 --------- .../variants/baseboard/devicetree_trembyle.cb | 23 ---------- src/soc/amd/picasso/Kconfig | 4 ++ src/soc/amd/picasso/chipset.cb | 46 +++++++++++++++++++ .../google/trembyle/template/overridetree.cb | 2 - 8 files changed, 50 insertions(+), 94 deletions(-) create mode 100644 src/soc/amd/picasso/chipset.cb diff --git a/src/mainboard/amd/bilby/devicetree.cb b/src/mainboard/amd/bilby/devicetree.cb index 8adbaa2f50..7015185805 100644 --- a/src/mainboard/amd/bilby/devicetree.cb +++ b/src/mainboard/amd/bilby/devicetree.cb @@ -138,18 +138,12 @@ chip soc/amd/picasso register "pspp_policy" = "DXIO_PSPP_BALANCED" - device cpu_cluster 0 on - device lapic 0 on end - end device domain 0 on subsystemid 0x1022 0x1510 inherit - device pci 0.0 on end # Root Complex device pci 0.2 on end # IOMMU - device pci 1.0 on end # Dummy Host Bridge device pci 1.1 on end # GPP Bridge 0 device pci 1.2 on end # GPP Bridge 1 device pci 1.5 on end # NVMe - device pci 8.0 on end # Dummy Host Bridge device pci 8.1 on # Bridge to Bus A device pci 0.0 on end # Internal GPU device pci 0.1 on end # Display HDA @@ -165,20 +159,10 @@ chip soc/amd/picasso device pci 0.1 off end # integrated Ethernet MAC device pci 0.2 off end # integrated Ethernet MAC end - device pci 14.0 on end # SMBus device pci 14.3 on # D14F3 bridge chip superio/smsc/sio1036 # optional debug card end end - device pci 14.6 off end # SDHCI - device pci 18.0 on end # Data fabric [0-7] - device pci 18.1 on end - device pci 18.2 on end - device pci 18.3 on end - device pci 18.4 on end - device pci 18.5 on end - device pci 18.6 on end - device pci 18.7 on end end # domain device mmio 0xfedc9000 on end # UART0 diff --git a/src/mainboard/amd/mandolin/variants/cereme/devicetree.cb b/src/mainboard/amd/mandolin/variants/cereme/devicetree.cb index f82f95851b..d1e0241dcf 100644 --- a/src/mainboard/amd/mandolin/variants/cereme/devicetree.cb +++ b/src/mainboard/amd/mandolin/variants/cereme/devicetree.cb @@ -138,16 +138,10 @@ chip soc/amd/picasso register "pspp_policy" = "DXIO_PSPP_BALANCED" - device cpu_cluster 0 on - device lapic 0 on end - end device domain 0 on subsystemid 0x1022 0x1510 inherit - device pci 0.0 on end # Root Complex device pci 0.2 on end # IOMMU - device pci 1.0 on end # Dummy Host Bridge device pci 1.1 on end # Bridge to PCIe Ethernet chip - device pci 8.0 on end # Dummy Host Bridge device pci 8.1 on # Bridge to Bus A device pci 0.0 on end # Internal GPU device pci 0.1 on end # Display HDA @@ -163,20 +157,10 @@ chip soc/amd/picasso device pci 0.1 off end # integrated Ethernet MAC device pci 0.2 off end # integrated Ethernet MAC end - device pci 14.0 on end # SMBus device pci 14.3 on # D14F3 bridge chip superio/smsc/sio1036 # optional debug card end end - device pci 14.6 off end # SDHCI - device pci 18.0 on end # Data fabric [0-7] - device pci 18.1 on end - device pci 18.2 on end - device pci 18.3 on end - device pci 18.4 on end - device pci 18.5 on end - device pci 18.6 on end - device pci 18.7 on end end # domain device mmio 0xfedc9000 on end # UART0 diff --git a/src/mainboard/amd/mandolin/variants/mandolin/devicetree.cb b/src/mainboard/amd/mandolin/variants/mandolin/devicetree.cb index c82f38841a..1c2009502d 100644 --- a/src/mainboard/amd/mandolin/variants/mandolin/devicetree.cb +++ b/src/mainboard/amd/mandolin/variants/mandolin/devicetree.cb @@ -138,16 +138,10 @@ chip soc/amd/picasso register "pspp_policy" = "DXIO_PSPP_BALANCED" - device cpu_cluster 0 on - device lapic 0 on end - end device domain 0 on subsystemid 0x1022 0x1510 inherit - device pci 0.0 on end # Root Complex device pci 0.2 on end # IOMMU - device pci 1.0 on end # Dummy Host Bridge device pci 1.3 on end # Bridge to PCIe Ethernet chip - device pci 8.0 on end # Dummy Host Bridge device pci 8.1 on # Bridge to Bus A device pci 0.0 on end # Internal GPU device pci 0.1 on end # Display HDA @@ -163,20 +157,10 @@ chip soc/amd/picasso device pci 0.1 off end # integrated Ethernet MAC device pci 0.2 off end # integrated Ethernet MAC end - device pci 14.0 on end # SMBus device pci 14.3 on # D14F3 bridge chip superio/smsc/sio1036 # optional debug card end end - device pci 14.6 off end # SDHCI - device pci 18.0 on end # Data fabric [0-7] - device pci 18.1 on end - device pci 18.2 on end - device pci 18.3 on end - device pci 18.4 on end - device pci 18.5 on end - device pci 18.6 on end - device pci 18.7 on end end # domain device mmio 0xfedc9000 on end # UART0 diff --git a/src/mainboard/google/zork/variants/baseboard/devicetree_dalboz.cb b/src/mainboard/google/zork/variants/baseboard/devicetree_dalboz.cb index 252540093c..0d0e8299ca 100644 --- a/src/mainboard/google/zork/variants/baseboard/devicetree_dalboz.cb +++ b/src/mainboard/google/zork/variants/baseboard/devicetree_dalboz.cb @@ -252,17 +252,10 @@ chip soc/amd/picasso register "pspp_policy" = "DXIO_PSPP_POWERSAVE" - device cpu_cluster 0 on - device lapic 0 on end - end - # See AMD 55570-B1 Table 13: PCI Device ID Assignments. device domain 0 on subsystemid 0x1022 0x1510 inherit - device pci 0.0 on end # Root Complex device pci 0.2 on end # IOMMU - device pci 1.0 on end # Dummy Host Bridge, must be enabled - device pci 1.1 off end # GPP Bridge 0 device pci 1.2 on # GPP Bridge 1 - Wifi chip drivers/wifi/generic register "wake" = "GEVENT_8" @@ -270,9 +263,6 @@ chip soc/amd/picasso end end device pci 1.3 on end # GPP Bridge 2 - SD - device pci 1.4 off end # GPP Bridge 3 - device pci 1.5 off end # GPP Bridge 4 - device pci 8.0 on end # Dummy Host Bridge, must be enabled device pci 8.1 on # Internal GPP Bridge 0 to Bus A device pci 0.0 on end # Internal GPU device pci 0.1 on end # Display HDA @@ -363,10 +353,6 @@ chip soc/amd/picasso device pci 0.6 off end # HDA device pci 0.7 on end # non-Sensor Fusion Hub device end - device pci 8.2 off # Internal GPP Bridge 0 to Bus B - device pci 0.0 off end # AHCI - end - device pci 14.0 on end # SM device pci 14.3 on # - D14F3 bridge chip ec/google/chromeec device pnp 0c09.0 on @@ -398,13 +384,6 @@ chip soc/amd/picasso end end end - device pci 18.0 on end # Data fabric [0-7] - device pci 18.1 on end - device pci 18.2 on end - device pci 18.3 on end - device pci 18.4 on end - device pci 18.5 on end - device pci 18.6 on end end # domain device mmio 0xfedc5000 on diff --git a/src/mainboard/google/zork/variants/baseboard/devicetree_trembyle.cb b/src/mainboard/google/zork/variants/baseboard/devicetree_trembyle.cb index 89bca93d17..8d0abad076 100644 --- a/src/mainboard/google/zork/variants/baseboard/devicetree_trembyle.cb +++ b/src/mainboard/google/zork/variants/baseboard/devicetree_trembyle.cb @@ -245,17 +245,10 @@ chip soc/amd/picasso register "pspp_policy" = "DXIO_PSPP_POWERSAVE" - device cpu_cluster 0 on - device lapic 0 on end - end - # See AMD 55570-B1 Table 13: PCI Device ID Assignments. device domain 0 on subsystemid 0x1022 0x1510 inherit - device pci 0.0 on end # Root Complex device pci 0.2 on end # IOMMU - device pci 1.0 on end # Dummy Host Bridge, must be enabled - device pci 1.1 off end # GPP Bridge 0 device pci 1.2 on # GPP Bridge 1 - Wifi chip drivers/wifi/generic register "wake" = "GEVENT_8" @@ -263,11 +256,7 @@ chip soc/amd/picasso end end device pci 1.3 on end # GPP Bridge 2 - SD - device pci 1.4 off end # GPP Bridge 3 - device pci 1.5 off end # GPP Bridge 4 - device pci 1.6 off end # GPP Bridge 5 device pci 1.7 on end # GPP Bridge 6 - NVME - device pci 8.0 on end # Dummy Host Bridge, must be enabled device pci 8.1 on # Internal GPP Bridge 0 to Bus A device pci 0.0 on end # Internal GPU device pci 0.1 on end # Display HDA @@ -385,10 +374,6 @@ chip soc/amd/picasso device pci 0.6 off end # HDA device pci 0.7 on end # non-Sensor Fusion Hub device end - device pci 8.2 off # Internal GPP Bridge 0 to Bus B - device pci 0.0 off end # AHCI - end - device pci 14.0 on end # SM device pci 14.3 on # - D14F3 bridge chip ec/google/chromeec device pnp 0c09.0 on @@ -434,14 +419,6 @@ chip soc/amd/picasso end end end - device pci 14.6 off end # Non-Functional SDHCI - device pci 18.0 on end # Data fabric [0-7] - device pci 18.1 on end - device pci 18.2 on end - device pci 18.3 on end - device pci 18.4 on end - device pci 18.5 on end - device pci 18.6 on end end # domain chip drivers/generic/max98357a diff --git a/src/soc/amd/picasso/Kconfig b/src/soc/amd/picasso/Kconfig index 4bfd093d85..e9ed8458e4 100644 --- a/src/soc/amd/picasso/Kconfig +++ b/src/soc/amd/picasso/Kconfig @@ -71,6 +71,10 @@ config CPU_SPECIFIC_OPTIONS config SOC_AMD_COMMON_BLOCK_UCODE_SIZE default 3200 +config CHIPSET_DEVICETREE + string + default "soc/amd/picasso/chipset.cb" + config FSP_M_FILE string "FSP-M (memory init) binary path and filename" depends on ADD_FSP_BINARIES diff --git a/src/soc/amd/picasso/chipset.cb b/src/soc/amd/picasso/chipset.cb new file mode 100644 index 0000000000..906b18d0aa --- /dev/null +++ b/src/soc/amd/picasso/chipset.cb @@ -0,0 +1,46 @@ +# SPDX-License-Identifier: GPL-2.0-only + +chip soc/amd/picasso + device cpu_cluster 0 on + device lapic 0 on end + end + device domain 0 on + device pci 00.0 alias gnb on end + device pci 00.2 alias iommu off end + device pci 01.0 on end # Dummy Host Bridge, do not disable + device pci 01.1 alias gpp_bridge_0 off end + device pci 01.2 alias gpp_bridge_1 off end + device pci 01.3 alias gpp_bridge_2 off end + device pci 01.4 alias gpp_bridge_3 off end + device pci 01.5 alias gpp_bridge_4 off end + device pci 01.6 alias gpp_bridge_5 off end + device pci 01.7 alias gpp_bridge_6 off end + device pci 08.0 on end # Dummy Host Bridge, do not disable + device pci 08.1 alias internal_bridge_a off # internal bridge to bus A + device pci 0.0 alias gfx off end # internal GPU + device pci 0.1 alias gfx_hda off end # display HD Audio controller + device pci 0.2 alias crypto off end # cryptography coprocessor + device pci 0.3 alias xhci_0 off end + device pci 0.4 alias xhci_1 off end + device pci 0.5 alias acp off end # audio co-processor + device pci 0.6 alias hda off end # main HD Audio Controller + device pci 0.7 alias mp2 off end # sensor fusion hub (MP2) + end + device pci 08.2 alias internal_bridge_b off # internal bridge to bus B + device pci 0.0 alias sata off end + device pci 0.1 alias xgbe_0 off end + device pci 0.2 alias xgbe_1 off end + end + device pci 14.0 alias smbus on end # primary FCH function + device pci 14.3 alias lpc_bridge on end + device pci 14.6 alias sdhci off end + device pci 18.0 alias data_fabric_0 on end + device pci 18.1 alias data_fabric_1 on end + device pci 18.2 alias data_fabric_2 on end + device pci 18.3 alias data_fabric_3 on end + device pci 18.4 alias data_fabric_4 on end + device pci 18.5 alias data_fabric_5 on end + device pci 18.6 alias data_fabric_6 on end + device pci 18.7 alias data_fabric_7 on end + end +end diff --git a/util/mainboard/google/trembyle/template/overridetree.cb b/util/mainboard/google/trembyle/template/overridetree.cb index 6f545b2402..d09c942296 100644 --- a/util/mainboard/google/trembyle/template/overridetree.cb +++ b/util/mainboard/google/trembyle/template/overridetree.cb @@ -37,9 +37,7 @@ chip soc/amd/picasso # See AMD 55570-B1 Table 13: PCI Device ID Assignments. device domain 0 on subsystemid 0x1022 0x1510 inherit - device pci 1.6 off end # GPP Bridge 5 device pci 1.7 on end # GPP Bridge 6 - NVME - device pci 14.6 off end # Non-Functional SDHCI end # domain device mmio 0xfedc4000 on end