feat(non-unified-mem): introduce support for non unified memory platforms#218
Merged
Conversation
3b7f781 to
d467724
Compare
063a1b2 to
2f167aa
Compare
dbed9aa to
3b8f45e
Compare
3b8f45e to
d3eccd8
Compare
Member
|
In the PR description, alongside the other modifications, I also suggest adding that it is now possible to setup memory permissions to reflect platform's memory restrictions (e.g., flash is read-only) |
d3eccd8 to
22f719f
Compare
4b776b1 to
c0bc27a
Compare
7406f96 to
cc47c6a
Compare
b5d134b to
c058b4e
Compare
Member
|
@danielRep can we rebase this on ref/vmpu? |
91ac275 to
8e8c6a1
Compare
c0bc27a to
374e494
Compare
Member
Author
Done. |
8e8c6a1 to
658439b
Compare
josecm
requested changes
Aug 19, 2025
658439b to
44db8da
Compare
4 tasks
josecm
requested changes
Sep 9, 2025
Member
|
@danielRep please rebase on main and clean up commit history before proceeding |
Signed-off-by: Daniel Oliveira <drawnpoetry@gmail.com>
Signed-off-by: Daniel Oliveira <drawnpoetry@gmail.com>
Signed-off-by: Daniel Oliveira <drawnpoetry@gmail.com>
Signed-off-by: Daniel Oliveira <drawnpoetry@gmail.com>
These variables must be initialized in the boot.S of each arch. Both are global variables, therefore we removed the passing as argument of the load address throughout the internal APIs of Bao. Signed-off-by: Daniel Oliveira <drawnpoetry@gmail.com>
Signed-off-by: Daniel Oliveira <drawnpoetry@gmail.com>
josecm
approved these changes
Sep 10, 2025
Member
|
@DavidMCerdeira @miguelafsilva5 please give another pass when possible |
Member
@josecm I've given it another pass and rebased it to TC4. Everything is working and seems OK |
miguelafsilva5
approved these changes
Sep 10, 2025
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
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.
PR Description
This PR builds on top of PR #216 and adds support for platforms with non-unified memory architectures—i.e., platforms where code (e.g., flash) and data (e.g., SRAM) reside in separate memory regions. Previously, Bao only supported platforms with unified DRAM-based memory.
To support this architectural change, the following modifications were made:
load_addrargument from function calls withinmem.c, as it is now a constant global variable. Passing it explicitly no longer made sense in the context of non-unified memory platforms.Refactored LinkerScript
The following table details the difference between the memory layout of unified vs non-unified platforms. Unified platforms keep the same layout as expected while non-unified platforms split addresses between VMA and LMA addresses to cope with the typical separation of code and data memory architecture.
Unified Platforms
fvp-r-aarch32
qemu-aarch64-virt
Non-Unified Platform
tricore tc49