-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Add support for using XIP cache as SRAM #2660
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
Draft
will-v-pi
wants to merge
15
commits into
raspberrypi:develop
Choose a base branch
from
will-v-pi:xip-sram
base: develop
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.
Draft
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
Allows creating binaries using an existing binary type & linker script, but with modified RAM/SCRATCH addresses For example, to only use SRAM1 so you can power down SRAM0 in your binary you could use `pico_set_modified_binary_type(<my_exe> no_flash RAM "0x20040000" "256k"`
New template flash and sram linker scripts, to avoid need for parsing the file Adds a test to kitchen_sink that these new linker scripts produce the same defaults, to ensure modifications to linker scripts are propogated
Use spinlock IDs that are unaffected by E2
…ash builds Also modify linker scripts to add templating additional regions, and callback to pico_set_modified_binary_type to set additional variables
On RP2040 they are copy to xip sram, as the bootrom doesn't support direct entry into xip sram
Time critical functions are placed in xip sram for those types
Parse addressmap.h for sram locations, and set them as target properties on pico_standard_link for storage
More DMA, and check the cycles after - now works on RP2040 and RP2350
Add pico_read_addressmap_value function to do actual reading, called by pico_get_addressmap_value when not found
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.
Draft for now, as it includes changes from #2645 and #2137, requires the
xip-sram
branch of picotool (otherwise UF2 creation and signing fails), and is still WIP - just raising so it can be viewed early, and maybe some of these bits can be added to #2137This should fix #2653 for both RP2040 and RP2350
This adds new binary types
xip_sram
(whole binary in XIP SRAM), andcopy_to_ram_using_xip_ram
/no_flash_using_xip_ram
(time critical functions placed in XIP SRAM)Also adds parsing of
addressmap.h
so variables in it can be accessed by usingpico_get_addressmap_value
, to remove hardcoded SRAM addresses from the CMake