From d0959dc800657efea4906ea5509a41ac3ca6d99a Mon Sep 17 00:00:00 2001 From: Felix Held Date: Wed, 10 May 2023 15:07:47 +0200 Subject: [PATCH] soc/amd/*/root_complex: reserve PCI config IO ports This makes sure that the resource allocator won't use those ports for anything else. Signed-off-by: Felix Held Change-Id: Ie42260902ee2b383dd5867ac813cae029f706f2d Reviewed-on: https://review.coreboot.org/c/coreboot/+/75556 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber Reviewed-by: Raul Rangel --- src/soc/amd/cezanne/root_complex.c | 2 ++ src/soc/amd/glinda/root_complex.c | 2 ++ src/soc/amd/mendocino/root_complex.c | 2 ++ src/soc/amd/phoenix/root_complex.c | 2 ++ src/soc/amd/picasso/root_complex.c | 2 ++ 5 files changed, 10 insertions(+) diff --git a/src/soc/amd/cezanne/root_complex.c b/src/soc/amd/cezanne/root_complex.c index 6bef915085..a4134ef699 100644 --- a/src/soc/amd/cezanne/root_complex.c +++ b/src/soc/amd/cezanne/root_complex.c @@ -115,6 +115,8 @@ static void read_resources(struct device *dev) /* The root complex has no PCI BARs implemented, so there's no need to call pci_dev_read_resources for it */ + fixed_io_range_reserved(dev, idx++, PCI_IO_CONFIG_INDEX, PCI_IO_CONFIG_PORT_COUNT); + /* 0x0 - 0x9ffff */ ram_resource_kb(dev, idx++, 0, 0xa0000 / KiB); diff --git a/src/soc/amd/glinda/root_complex.c b/src/soc/amd/glinda/root_complex.c index a8b54e2fa6..9cb758a4cc 100644 --- a/src/soc/amd/glinda/root_complex.c +++ b/src/soc/amd/glinda/root_complex.c @@ -130,6 +130,8 @@ static void read_resources(struct device *dev) /* The root complex has no PCI BARs implemented, so there's no need to call pci_dev_read_resources for it */ + fixed_io_range_reserved(dev, idx++, PCI_IO_CONFIG_INDEX, PCI_IO_CONFIG_PORT_COUNT); + /* 0x0 - 0x9ffff */ ram_resource_kb(dev, idx++, 0, 0xa0000 / KiB); diff --git a/src/soc/amd/mendocino/root_complex.c b/src/soc/amd/mendocino/root_complex.c index 53a245b609..11f111f69f 100644 --- a/src/soc/amd/mendocino/root_complex.c +++ b/src/soc/amd/mendocino/root_complex.c @@ -158,6 +158,8 @@ static void read_resources(struct device *dev) /* The root complex has no PCI BARs implemented, so there's no need to call pci_dev_read_resources for it */ + fixed_io_range_reserved(dev, idx++, PCI_IO_CONFIG_INDEX, PCI_IO_CONFIG_PORT_COUNT); + /* 0x0 - 0x9ffff */ ram_resource_kb(dev, idx++, 0, 0xa0000 / KiB); diff --git a/src/soc/amd/phoenix/root_complex.c b/src/soc/amd/phoenix/root_complex.c index 83fb047952..3c754c6ce5 100644 --- a/src/soc/amd/phoenix/root_complex.c +++ b/src/soc/amd/phoenix/root_complex.c @@ -130,6 +130,8 @@ static void read_resources(struct device *dev) /* The root complex has no PCI BARs implemented, so there's no need to call pci_dev_read_resources for it */ + fixed_io_range_reserved(dev, idx++, PCI_IO_CONFIG_INDEX, PCI_IO_CONFIG_PORT_COUNT); + /* 0x0 - 0x9ffff */ ram_resource_kb(dev, idx++, 0, 0xa0000 / KiB); diff --git a/src/soc/amd/picasso/root_complex.c b/src/soc/amd/picasso/root_complex.c index 5ea8b79710..65021a3f55 100644 --- a/src/soc/amd/picasso/root_complex.c +++ b/src/soc/amd/picasso/root_complex.c @@ -115,6 +115,8 @@ static void read_resources(struct device *dev) /* The root complex has no PCI BARs implemented, so there's no need to call pci_dev_read_resources for it */ + fixed_io_range_reserved(dev, idx++, PCI_IO_CONFIG_INDEX, PCI_IO_CONFIG_PORT_COUNT); + /* 0x0 - 0x9ffff */ ram_resource_kb(dev, idx++, 0, 0xa0000 / KiB);