diff options
author | Ard Biesheuvel <ardb@kernel.org> | 2025-01-28 11:26:04 +0100 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2025-01-30 13:07:05 +0000 |
commit | fb7497cbf9dc6c1b20976dd0abe724166c463a56 (patch) | |
tree | d2d774ac2c85d9afb9a2c48821a297a11813414a /BaseTools/Source/Python/FirmwareStorageFormat/Common.py | |
parent | 0422dd0669b9e6f50c4d07e3496a2173b8eb611f (diff) | |
download | edk2-fb7497cbf9dc6c1b20976dd0abe724166c463a56.tar.gz edk2-fb7497cbf9dc6c1b20976dd0abe724166c463a56.tar.bz2 edk2-fb7497cbf9dc6c1b20976dd0abe724166c463a56.zip |
ArmPkg/CpuDxe: Replace DEPEX on h/w protocol with event notification
Currently, ArmPkg's CpuDxe DEPEXes on the hardware interrupt protocol,
to ensure that it is not dispatched before the GIC driver. This way, the
CpuDxe driver is guaranteed not to enable interrupts on the CPU side
before the GIC driver has had the opportunity to configure the
interrupts on the distribution side.
However, this prevents the GIC driver from using any of the CPU arch
protocol interfaces, such as mapping memory, which it may need to do on
platforms where the GIC MMIO regions are not mapped yet when the driver
is started.
So instead, use a protocol notification on the hardware interrupt
protocol, which is installed by the GIC driver (as well as other
existing interrupt controller drivers for platforms that do not
implement a GIC) after it starts up and deasserts and disables all
incoming interrupts. Manipulate the interrupt state as usual only after
this notification has been received. Before that, keep track of the
caller's intent regarding the interrupt enabled state in a shadow
variable, but do not actually enable interrupt delivery to the CPU just
yet.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Diffstat (limited to 'BaseTools/Source/Python/FirmwareStorageFormat/Common.py')
0 files changed, 0 insertions, 0 deletions