serenity/Kernel/PCI
Liav A 8abbb7e090 Kernel/PCI: Introduce a new ECAM access mechanism
Now the kernel supports 2 ECAM access methods.
MMIOAccess was renamed to WindowedMMIOAccess and is what we had until
now - each device that is detected on boot is assigned to a
memory-mapped window, so IO operations on multiple devices can occur
simultaneously due to creating multiple virtual mappings, hence the name
is a memory-mapped window.

This commit adds a new class called MMIOAccess (not to be confused with
the old MMIOAccess class). This class creates one memory-mapped window.
On each IO operation on a configuration space of a device, it maps the
requested PCI bus region to that window. Therefore it holds a SpinLock
during the operation to ensure that no other PCI bus region was mapped
during the call.

A user can choose to either use PCI ECAM with memory-mapped window
for each device, or for an entire bus. By default, the kernel prefers to
map the entire PCI bus region.
2021-04-03 19:34:52 +02:00
..
Access.cpp Revert "Kernel/PCI: Allow to set the PCI IRQ line of a device" 2021-04-03 11:57:23 +02:00
Access.h Kernel/PCI: Introduce a new ECAM access mechanism 2021-04-03 19:34:52 +02:00
Definitions.h Kernel/PCI: Introduce a new ECAM access mechanism 2021-04-03 19:34:52 +02:00
Device.cpp
Device.h
DeviceController.cpp Kernel: Add various methods to handle interrupts in the PCI subsystem 2020-12-21 00:19:21 +01:00
DeviceController.h Kernel: Use default con/de-structors 2021-02-28 18:09:12 +01:00
Initializer.cpp Kernel/PCI: Introduce a new ECAM access mechanism 2021-04-03 19:34:52 +02:00
Initializer.h
IOAccess.cpp Kernel: Convert klog() => AK::Format in PCI 2021-03-12 15:22:35 +01:00
IOAccess.h Kernel/PCI: Introduce a new ECAM access mechanism 2021-04-03 19:34:52 +02:00
MMIOAccess.cpp Kernel/PCI: Introduce a new ECAM access mechanism 2021-04-03 19:34:52 +02:00
MMIOAccess.h Kernel/PCI: Introduce a new ECAM access mechanism 2021-04-03 19:34:52 +02:00
WindowedMMIOAccess.cpp Kernel/PCI: Introduce a new ECAM access mechanism 2021-04-03 19:34:52 +02:00
WindowedMMIOAccess.h Kernel/PCI: Introduce a new ECAM access mechanism 2021-04-03 19:34:52 +02:00