Page MenuHomeFreeBSD

RISC-V: fix global symbol lookups for mpentry with lld
ClosedPublic

Authored by mhorne on Jan 11 2020, 11:46 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Apr 17, 11:26 AM
Unknown Object (File)
Dec 23 2023, 3:07 AM
Unknown Object (File)
Nov 15 2023, 1:28 PM
Unknown Object (File)
Nov 15 2023, 8:20 AM
Unknown Object (File)
Nov 14 2023, 2:34 PM
Unknown Object (File)
Nov 13 2023, 8:22 AM
Unknown Object (File)
Oct 14 2023, 12:27 PM
Unknown Object (File)
Oct 13 2023, 1:33 PM
Subscribers

Details

Summary

This is a follow up to r356481. In locore.S, before virtual memory is
set up, we should avoid using indirect address lookups through the GOT.
Therefore we need to convert uses of the la instruction to lla, which
always generates an auipc/addi pair of instructions. This conversion was
done for the BSP case, but not the AP case, resulting in a fault
somewhere before mpva and a failure to bring APs online.

Reported by: lwhsu

Test Plan

Kernel build with clang + lld boots in qemu with -smp 2

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 28611
Build 26645: arc lint + arc unit

Event Timeline

Ah yes, good point, looks good to me.

Thanks for the patch and this works in my staging CI env.

This revision is now accepted and ready to land.Jan 12 2020, 7:45 AM