-
Notifications
You must be signed in to change notification settings - Fork 94
Add support for BCM2712/Raspberry Pi 5B #200
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Ivan-Velickovic
wants to merge
3
commits into
seL4:master
Choose a base branch
from
Ivan-Velickovic:bcm2712
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or 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
5a4565a to
831f110
Compare
Indanz
reviewed
Oct 8, 2025
33b97e6 to
80dec9e
Compare
Ivan-Velickovic
commented
Oct 8, 2025
80dec9e to
58718fc
Compare
I had this line: READ_CELL(num_size_cells, curr_range, x + y)); which ended up being evaluated to addr + (x + y * sizeof(uint32_t)) which gave the completely wrong thing. Now the macros should work if addr or offset are expressions. Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
58718fc to
5013240
Compare
The Device Tree nodes for devices on certain platforms does not describe the actual MMIO address in the 'reg' field. Instead, it can be an offset of the parent bus address. Rather than taking the values of 'reg' as the MMIO registers directly, we have to check that the 'ranges' field exists on the parent and then use it to potentially translate the child node's address. I ran into this when porting the Raspberry Pi 5 to sel4test, where the timer peripheral is allocated via the DTB node unlike other platform support where the device address/IRQs are hard-coded. See section 2.3.8 of v0.4 of the Device Tree specification for more details. Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
My main goal with this patch is to allow for sel4test to work on the Raspberry Pi 5B, for this reason I have not supported as many peripherals as there is for BCM2711. Mainly GPIO is not supported. My understanding is that the default UART, unlike previous BCM SoCs supported, is not on the GPIO pins anymore. The BCM2712 does still have support for the BCM mini UART however it is now placed on the PCIe bus rather than being directly connected to the SoC. The default UART for BCM2712 is instead the PL011 so I've added support for that. Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
5013240 to
137e14e
Compare
Contributor
Author
|
@Indanz I believe I've addressed all the feedback now. |
Indanz
approved these changes
Oct 14, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See commit messages for details.