Page MenuHomeFreeBSD

Fix bootloader relocations on arm64
ClosedPublic

Authored by andrew on Oct 7 2016, 3:04 PM.
Tags
None
Referenced Files
F109527806: D8177.diff
Thu, Feb 6, 6:55 AM
Unknown Object (File)
Fri, Jan 31, 11:03 AM
Unknown Object (File)
Sat, Jan 25, 8:19 PM
Unknown Object (File)
Sun, Jan 19, 12:10 PM
Unknown Object (File)
Dec 19 2024, 3:46 PM
Unknown Object (File)
Dec 12 2024, 3:01 AM
Unknown Object (File)
Nov 24 2024, 4:23 AM
Unknown Object (File)
Nov 23 2024, 2:59 PM
Subscribers
None

Details

Summary

The bootloader self relocation code was slightly wrong for the
R_AARCH64_RELATIVE relocation found on arm64. It would try to add the
contents of the memory location being relocated to the base address and
the relocation addend. This worked when the contents was zero, however
this now seems to be set to the value of the addend so we add this twice.
Fix this by just setting the memory to the computed value.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 5495
Build 5720: arc lint + arc unit

Event Timeline

andrew retitled this revision from to Fix bootloader relocations on arm64.
andrew updated this object.
andrew edited the test plan for this revision. (Show Details)
andrew added a reviewer: emaste.
This revision was automatically updated to reflect the committed changes.