-
Notifications
You must be signed in to change notification settings - Fork 714
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
doc: TRD: start non-XIP flash info document #4081
Conversation
People who were there (and who's Github handle I know): @LawrenceEsswood, @lschuermann. Note that I don't think it's necessary to get all the details in this document down now, but an opportunity to add or correct some stuff before we merge this initial draft. |
To clarify: do we want to have this merged in the current form (i.e., skeleton + some context + motivation + concerns) or do we want to add actual technical details in this first iteration? |
I would like to add more. I think once this PR is merged the TRD is unlikely to change. |
doc/reference/trd-non-xip.md
Outdated
- Non-xip platforms have less RAM that traditional platforms have XIP flash. | ||
Further, this RAM on non-xip platforms must (at runtime) store both the | ||
executable code and the conventional memory items (e.g., the stack and heap). | ||
This results in significantly less room for program code than on traditional | ||
platforms. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not universally true -- for example, TI sells the popular AM263x / AM263Px line of chips which have 2MB and 3MB of RAM, respectively.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Non-xip platforms have less RAM that traditional platforms have XIP flash. | |
Further, this RAM on non-xip platforms must (at runtime) store both the | |
executable code and the conventional memory items (e.g., the stack and heap). | |
This results in significantly less room for program code than on traditional | |
platforms. | |
- Non-xip platforms store (at runtime) both the | |
executable code and the conventional memory items (e.g., data, stack and heap). | |
This results in significantly less room for program code than on traditional | |
platforms. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can confirm that understanding of one of the real use cases in question has order of MBs of RAM (another has 100s of KB so, again, both are correct).
I think what I'm learning from this discussion (and perhaps exactly why I think we need this document) is that "non-XIP" is too broad in practice to be meaningful. I don't think we can effectively design solutions for all non-XIP MCUs. This is no different than Tock not being designed for all "traditional" MCUs (eg 8 bit cores, multi cores, arm A, etc). I think we need to start with narrowing down non-XIP to a subset for this document. My understanding, from the breakout, is that there is a need to support the small RAM, untrusted nonxip flash use case. |
I took the liberty of updating the doc. Happy to bikeshed the name at some point. |
This is blocked on feedback from relevant stakeholders either using or planning to use non-XIP platforms: |
@ZhekaS it sounds like this may also be relevant to your use case — we welcome any feedback you may have here as well! |
It is very relevant indeed. Rather than providing concrete feedback, I'd rather describe the use-case. |
This was discussed on the core team call today. While we would still like more feedback from downstream users, this is also version 1 of a draft document, and should not linger as a PR forever. I'm going to attempt to resolve all of the open discussion threads now, and then ping folks for a merge. |
Done — this should be good to go. Will let it sit for a few hours in case anyone sees anything in my edits here they don't like. |
Merge this? |
Huh, I thought that I removed the litex-sim-ci checks from being required. |
Co-authored-by: Amit Levy <amit@amitlevy.com>
Co-authored-by: Amit Levy <amit@amitlevy.com>
Co-authored-by: Amit Levy <amit@amitlevy.com>
Rebased to pick up CI config changes. |
Pull Request Overview
From our breakout at TW7, one item that came up was creating a document to overview what Tock might look like on platforms that do not support executing code stored in flash. The hope was to 1) clarify the goals and constraints so everyone is on the same page, and 2) to have some public documentation about this goal that others who might be interested can find.
This is a start towards such a document. This reflects a very basic understanding that I took away from the breakout session; I am by no means an expert on what these platforms look like.
Testing Strategy
n/a
TODO or Help Wanted
Ideally others would contribute text to expand this document.
Documentation Updated
/docs
, or no updates are required.Formatting
make prepush
.