device: Add helper to identify PCI IOAPICs

Add a helper function to identify PCI IOAPICs.
Will be used in the following commits.

Change-Id: Ibe50934260b025575440fd52eace73fe2327a193
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84849
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
This commit is contained in:
Patrick Rudolph 2024-10-24 12:49:02 +02:00 committed by Lean Sheng Tan
commit 4dcda853fd
2 changed files with 9 additions and 0 deletions

View file

@ -5,6 +5,7 @@
#include <console/console.h>
#include <device/device.h>
#include <device/pci_def.h>
#include <device/pci_ids.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -969,3 +970,10 @@ bool is_pci_bridge(const struct device *pci)
{
return is_pci(pci) && ((pci->hdr_type & 0x7f) == PCI_HEADER_TYPE_BRIDGE);
}
bool is_pci_ioapic(const struct device *pci)
{
return is_pci(pci) && ((pci->class >> 16) == PCI_BASE_CLASS_SYSTEM) &&
((pci->class >> 8) == PCI_CLASS_SYSTEM_PIC) &&
((pci->class & 0xff) >= 0x10);
}

View file

@ -195,6 +195,7 @@ bool is_pci(const struct device *pci);
bool is_enabled_pci(const struct device *pci);
bool is_pci_dev_on_bus(const struct device *pci, unsigned int bus);
bool is_pci_bridge(const struct device *pci);
bool is_pci_ioapic(const struct device *pci);
bool is_domain0(const struct device *dev);
bool is_dev_on_domain0(const struct device *dev);