casaroli opened a new pull request, #20727:
URL: https://github.com/apache/nuttx/pull/20727
## Summary
For an `ADRP` at page offset 0xff8 or 0xffc, the arm64 relocation code
rewrites it as `ADR` to avoid Cortex-A53 erratum 843419. `ADR` reaches only 1
MB, so a module with more than about 1 MB between an instruction and its data
failed to load with `EINVAL` ("Out of range for ADR").
This PR keeps the `ADRP` in that case; it reaches 4 GB. (Linux emits a
veneer instead; here only that one instruction keeps the erratum exposure.)
## Impact
arm64 module loading only: large modules load instead of failing.
## Testing
Builds: `qemu-armv8a:nsh`, `qemu-armv8a:knsh`, `lm3s6965-ek:qemu-flat`.
`tools/checkpatch.sh -c -u -m -g` passes.
On `qemu-armv8a:knsh`, a module with more than 1 MB between an instruction
and its data failed to load with `EINVAL`; with the change it loads and runs.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]