figure out way to reset Core1 from SDRAM #24
Loading…
Reference in New Issue
There is no content yet.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?
Eventually we want to run everything from the SDRAM. I have some dirty proof-of-concept code that does that, but I'm having trouble with Core1 resets, which seem to always go to the OCM regardless of the VBAR value.
Is there a way to remap the reset vector that would persist when Core0 resets Core1? If not, maybe instead of a reset we should use a IRQ or similar?
Current implementation is a hack where the first-stage OCM code stays, and jumps to the SDRAM when executed by Core1.
It seems Core1 will always execute from OCM after a reset.
Maybe the simplest reliable solution is for the runtime to write a "branch to DDR" instruction at the beginning of OCM.
4e1f46b3e2
Doesn't seem like there's a better way. Other people do very complicated things like this: https://www.osti.gov/servlets/purl/1499223
Okay that didn't work very well, now kernels crash with "PrefetchAbort"...
Note: kernels were already broken in the preceding commit
Unrelated libdyld bug fixed in
d08f4552ab