-
-
Notifications
You must be signed in to change notification settings - Fork 175
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
aarch64: implement new Interrupt Controller abstractions (#972)
* Implements the basic set of two interrupt controller abstractions for aarch64: 1. `LocalInterruptController`: an interrupt controller local to each CPU. 2. `SystemWideInterruptController`: the system-wide interrupt controller that is responsible for redirecting interrupts to local CPUs. * These are not yet used, since they haven't been implemented for x86_64. * Make `BOARD_CONFIG` const so that it can be used in other const contexts. * Add board-specific fixed interrupt numbers to `BOARD_CONFIG`. * Temporarily remove the aarch64-specific distinction between various types of interrupt numbers, e.g., local, IPI, shared peripheral, etc. * `InterruptDestination` correspondingly no longer uses a local number. * Once we determine an appropriate abstraction for this that is also compatible with x86, we will restore the `InterruptNumber` type with its constructor-checked correctness conditions. * Device specific: for the PL011 UART device, we no longer enable timer interrupts in `interrupts::init()` because they are better off enabled later. * Remove the `get_int_ctlr` macro in favor of regular accessor code. This will be updated again once we redesign the interrupt controller structs to contain actual owned MMIO objects that offer access to the interrupt chip device. 5c351a2
- Loading branch information
1 parent
03507c3
commit 50bfe6b
Showing
32 changed files
with
176 additions
and
178 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.