summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Held <felix-coreboot@felixheld.de>2022-10-12 16:42:00 +0200
committerFelix Held <felix-coreboot@felixheld.de>2022-10-13 19:41:46 +0000
commit6e1fb6ae9f0cc2b37d2cbd127e0723789b0f7f3e (patch)
tree7d85a0b56b5a50be7ab2939a46236660b68d665f
parent6a5d770536758c75f05d53aed9302f21843c93a6 (diff)
soc/amd/morgana: Use devicetree ops over pci driver
Morgana is a SoC so it makes sense to statically use ops instead of matching them to PCI DID/VID at runtime. Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Change-Id: I67362ae4a32bc9b1dd19ee5e4caf42db8f5dd1bd Reviewed-on: https://review.coreboot.org/c/coreboot/+/68311 Reviewed-by: Paul Menzel <paulepanter@mailbox.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com> Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
-rw-r--r--src/soc/amd/morgana/chipset.cb18
-rw-r--r--src/soc/amd/morgana/data_fabric.c20
-rw-r--r--src/soc/amd/morgana/root_complex.c9
3 files changed, 11 insertions, 36 deletions
diff --git a/src/soc/amd/morgana/chipset.cb b/src/soc/amd/morgana/chipset.cb
index 75e9778c3e..052b5fcba1 100644
--- a/src/soc/amd/morgana/chipset.cb
+++ b/src/soc/amd/morgana/chipset.cb
@@ -6,7 +6,7 @@ chip soc/amd/morgana
end
device domain 0 on
ops morgana_pci_domain_ops
- device pci 00.0 alias gnb on end
+ device pci 00.0 alias gnb on ops morgana_root_complex_operations end
device pci 00.2 alias iommu off end
device pci 01.0 on end # Dummy Host Bridge
@@ -74,14 +74,14 @@ chip soc/amd/morgana
device pci 14.0 alias smbus on end # primary FCH function
device pci 14.3 alias lpc_bridge on 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
+ device pci 18.0 alias data_fabric_0 on ops morgana_data_fabric_ops end
+ device pci 18.1 alias data_fabric_1 on ops morgana_data_fabric_ops end
+ device pci 18.2 alias data_fabric_2 on ops morgana_data_fabric_ops end
+ device pci 18.3 alias data_fabric_3 on ops morgana_data_fabric_ops end
+ device pci 18.4 alias data_fabric_4 on ops morgana_data_fabric_ops end
+ device pci 18.5 alias data_fabric_5 on ops morgana_data_fabric_ops end
+ device pci 18.6 alias data_fabric_6 on ops morgana_data_fabric_ops end
+ device pci 18.7 alias data_fabric_7 on ops morgana_data_fabric_ops end
end
device mmio 0xfedc2000 alias i2c_0 off ops soc_amd_i2c_mmio_ops end
diff --git a/src/soc/amd/morgana/data_fabric.c b/src/soc/amd/morgana/data_fabric.c
index 0249b8a426..2f72e3a654 100644
--- a/src/soc/amd/morgana/data_fabric.c
+++ b/src/soc/amd/morgana/data_fabric.c
@@ -127,27 +127,9 @@ static const char *data_fabric_acpi_name(const struct device *dev)
return NULL;
}
-static struct device_operations data_fabric_ops = {
+struct device_operations morgana_data_fabric_ops = {
.read_resources = noop_read_resources,
.set_resources = noop_set_resources,
.acpi_name = data_fabric_acpi_name,
.acpi_fill_ssdt = acpi_device_write_pci_dev,
};
-
-static const unsigned short pci_device_ids[] = {
- PCI_DID_AMD_FAM17H_MODELA0H_DF0, /* TODO: Update for Morgana */
- PCI_DID_AMD_FAM17H_MODELA0H_DF1,
- PCI_DID_AMD_FAM17H_MODELA0H_DF2,
- PCI_DID_AMD_FAM17H_MODELA0H_DF3,
- PCI_DID_AMD_FAM17H_MODELA0H_DF4,
- PCI_DID_AMD_FAM17H_MODELA0H_DF5,
- PCI_DID_AMD_FAM17H_MODELA0H_DF6,
- PCI_DID_AMD_FAM17H_MODELA0H_DF7,
- 0
-};
-
-static const struct pci_driver data_fabric_driver __pci_driver = {
- .ops = &data_fabric_ops,
- .vendor = PCI_VID_AMD,
- .devices = pci_device_ids,
-};
diff --git a/src/soc/amd/morgana/root_complex.c b/src/soc/amd/morgana/root_complex.c
index 5dd5d79579..88bcca75d2 100644
--- a/src/soc/amd/morgana/root_complex.c
+++ b/src/soc/amd/morgana/root_complex.c
@@ -13,7 +13,6 @@
#include <cpu/amd/msr.h>
#include <device/device.h>
#include <device/pci.h>
-#include <device/pci_ids.h>
#include <fsp/util.h>
#include <soc/iomap.h>
#include <stdint.h>
@@ -236,7 +235,7 @@ static const char *gnb_acpi_name(const struct device *dev)
return "GNB";
}
-static struct device_operations root_complex_operations = {
+struct device_operations morgana_root_complex_operations = {
.read_resources = read_resources,
.set_resources = noop_set_resources,
.enable_resources = pci_dev_enable_resources,
@@ -244,9 +243,3 @@ static struct device_operations root_complex_operations = {
.acpi_name = gnb_acpi_name,
.acpi_fill_ssdt = root_complex_fill_ssdt,
};
-
-static const struct pci_driver family17_root_complex __pci_driver = {
- .ops = &root_complex_operations,
- .vendor = PCI_VID_AMD,
- .device = PCI_DID_AMD_17H_MODEL_A0AF_NB, /* TODO: Update for Morgana */
-};