1 /* SPDX-License-Identifier: GPL-2.0-only */
3 /* TODO: Update for Phoenix */
5 #include <acpi/acpigen_pci.h>
6 #include <amdblocks/acpi.h>
7 #include <amdblocks/data_fabric.h>
8 #include <amdblocks/fsp.h>
9 #include <amdblocks/root_complex.h>
10 #include <console/console.h>
11 #include <device/device.h>
12 #include <device/pci.h>
14 #include <soc/pci_devs.h>
15 #include <soc/southbridge.h>
17 #include <vendorcode/amd/opensil/opensil.h>
20 static const char *soc_acpi_name(const struct device
*dev
)
22 if (dev
->path
.type
== DEVICE_PATH_DOMAIN
)
25 if (dev
->path
.type
!= DEVICE_PATH_PCI
)
28 printk(BIOS_WARNING
, "Unknown PCI device: dev: %d, fn: %d\n",
29 PCI_SLOT(dev
->path
.pci
.devfn
), PCI_FUNC(dev
->path
.pci
.devfn
));
33 struct device_operations phoenix_pci_domain_ops
= {
34 .read_resources
= amd_pci_domain_read_resources
,
35 .set_resources
= pci_domain_set_resources
,
36 .scan_bus
= amd_pci_domain_scan_bus
,
37 .init
= amd_pci_domain_init
,
38 .acpi_name
= soc_acpi_name
,
39 .acpi_fill_ssdt
= pci_domain_fill_ssdt
,
42 static void soc_init(void *chip_info
)
44 default_dev_ops_root
.write_acpi_tables
= soc_acpi_write_tables
;
46 if (CONFIG(PLATFORM_USES_FSP2_0
)) {
47 amd_fsp_silicon_init();
50 opensil_xSIM_timepoint_1();
53 data_fabric_print_mmio_conf();
58 static void soc_final(void *chip_info
)
63 struct chip_operations soc_amd_phoenix_ops
= {
64 .name
= "AMD Phoenix SoC",