soc/amd/sata.c: Hook up directly in devicetree
Cezanne has two SATA controllers, but doesn't select
SOC_AMD_COMMON_BLOCK_SATA, so it's not added to the SATA devices in the
Cezanne chipset devicetree.
Change-Id: If7f0a9638151cf981d891464a2c3a0ec5fc9c780
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/68142
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>
diff --git a/src/soc/amd/common/block/sata/sata.c b/src/soc/amd/common/block/sata/sata.c
index 19a7d3e..6a27168 100644
--- a/src/soc/amd/common/block/sata/sata.c
+++ b/src/soc/amd/common/block/sata/sata.c
@@ -3,7 +3,6 @@
#include <acpi/acpigen.h>
#include <device/device.h>
#include <device/pci.h>
-#include <device/pci_ids.h>
#include <amdblocks/sata.h>
static const char *sata_acpi_name(const struct device *dev)
@@ -11,7 +10,7 @@
return "STCR";
}
-static struct device_operations sata_ops = {
+struct device_operations amd_sata_ops = {
.read_resources = pci_dev_read_resources,
.set_resources = pci_dev_set_resources,
.enable_resources = pci_dev_enable_resources,
@@ -20,19 +19,3 @@
.acpi_name = sata_acpi_name,
.acpi_fill_ssdt = acpi_device_write_pci_dev,
};
-
-static const unsigned short pci_device_ids[] = {
- PCI_DID_AMD_CZ_SATA,
- PCI_DID_AMD_CZ_SATA_AHCI,
- PCI_DID_AMD_FAM17H_SATA_AHCI_VER0,
- PCI_DID_AMD_FAM17H_SATA_AHCI_VER1,
- PCI_DID_AMD_FAM17H_SATA_AHCI_RAID_VER0,
- PCI_DID_AMD_FAM17H_SATA_AHCI_RAID_VER1,
- 0
-};
-
-static const struct pci_driver sata0_driver __pci_driver = {
- .ops = &sata_ops,
- .vendor = PCI_VID_AMD,
- .devices = pci_device_ids,
-};
diff --git a/src/soc/amd/picasso/chipset.cb b/src/soc/amd/picasso/chipset.cb
index b4479d7..ab286de 100644
--- a/src/soc/amd/picasso/chipset.cb
+++ b/src/soc/amd/picasso/chipset.cb
@@ -30,7 +30,7 @@
end
device pci 08.2 alias internal_bridge_b off # internal bridge to bus B
ops amd_internal_pcie_gpp_ops
- device pci 0.0 alias sata off end
+ device pci 0.0 alias sata off ops amd_sata_ops end
device pci 0.1 alias xgbe_0 off end
device pci 0.2 alias xgbe_1 off end
end
diff --git a/src/soc/amd/stoneyridge/chipset_cz.cb b/src/soc/amd/stoneyridge/chipset_cz.cb
index dc510e1..dbbbd4d 100644
--- a/src/soc/amd/stoneyridge/chipset_cz.cb
+++ b/src/soc/amd/stoneyridge/chipset_cz.cb
@@ -26,7 +26,7 @@
device pci 09.0 alias hda_bridge off end # host audio bridge
device pci 09.2 alias hda off end # main HD Audio Controller
device pci 10.0 alias xhci off ops stoneyridge_usb_ops end
- device pci 11.0 alias sata off end
+ device pci 11.0 alias sata off ops amd_sata_ops end
device pci 12.0 alias ehci off ops stoneyridge_usb_ops end
device pci 14.0 alias smbus on ops amd_smbus_ops end # primary FCH function
device pci 14.3 alias lpc_bridge on ops amd_lpc_ops end
diff --git a/src/soc/amd/stoneyridge/chipset_st.cb b/src/soc/amd/stoneyridge/chipset_st.cb
index 4d9af90..4c244d0 100644
--- a/src/soc/amd/stoneyridge/chipset_st.cb
+++ b/src/soc/amd/stoneyridge/chipset_st.cb
@@ -20,7 +20,7 @@
device pci 09.0 alias hda_bridge off end # host audio bridge
device pci 09.2 alias hda off end # main HD Audio Controller
device pci 10.0 alias xhci off ops stoneyridge_usb_ops end
- device pci 11.0 alias sata off end
+ device pci 11.0 alias sata off ops amd_sata_ops end
device pci 12.0 alias ehci off ops stoneyridge_usb_ops end
device pci 14.0 alias smbus on ops amd_smbus_ops end # primary FCH function
device pci 14.3 alias lpc_bridge on ops amd_lpc_ops end