summaryrefslogtreecommitdiffstats
path: root/drivers/watchdog
diff options
context:
space:
mode:
authorAhmad Fatoum <ahmad@a3f.at>2021-04-16 08:24:35 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2021-05-03 14:06:30 +0200
commitffdb6a435e7ed5576f37d6cea14157d6ce51e16b (patch)
treed53a4d9175c919fca307f45190b9d17e960f9f3f /drivers/watchdog
parentc3a53742f3ae16443ee80dfe3c525a863c577e40 (diff)
downloadbarebox-ffdb6a435e7ed5576f37d6cea14157d6ce51e16b.tar.gz
barebox-ffdb6a435e7ed5576f37d6cea14157d6ce51e16b.tar.xz
pci: add EFI PCI root bridge IO protocol driver
UEFI specifies two protocols for abstracting both the PCI host bus controller and for PCI devices. The protocol for PCI devices provides function pointers for accessing IO Port, Memory and PCI configuration space, among others. The protocol for bus controllers provides the ability to read the root bridge's PCI configuration space and to query resources. In barebox, we would want to reuse existing PCI drivers unmodified, so we utilize the root bridge protocol, unlike most other EFI payloads. We still utilize the PCI (device) IO protocol, but not for core functionality: EFI has already enumerated the bus for us and allocated the EFI handles. It thus makes sense to have the new pci device have the EFI handle as parent and the controller as grand parent instead of being sibling with the EFI handles. This is done with an early PCI fixup that patches the device's parent pointer after consulting the PCI IO GetLocation. Driver is written from scratch and hasn't seen heavy usage yet, so it should be used with care. It was written while consulting the UEFI 2.1D specification. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Link: https://lore.barebox.org/20210416062436.332665-4-ahmad@a3f.at Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/watchdog')
0 files changed, 0 insertions, 0 deletions