mirror of
https://github.com/opnsense/src.git
synced 2026-04-03 16:35:27 -04:00
In r361544, the pmap drivers were converted to ifuncs. When doing so, this changed the call type of pmap functions to be called via the secure-plt stubs. These stubs depend on the TOC base being loaded to r30 to run properly. On SMP AIM (i.e. a dual processor G4 or running 32-bit on G5), since the APs were being started up from the reset vector instead of going through __start, they had never had r30 initialized properly, so when the cpu_reset code in trap_subr32.S attempted to branch to pmap_cpu_bootstrap(), it was loading the target from the wrong location. Ensure r30 is set up directly in the cpu_reset trap code, so we can make PLT calls as normal. Fixes boot on my SMP G4. Reviewed by: jhibbits MFC after: 3 days Sponsored by: Tag1 Consulting, Inc. |
||
|---|---|---|
| .. | ||
| aim_machdep.c | ||
| locore.S | ||
| locore32.S | ||
| locore64.S | ||
| mmu_oea.c | ||
| mmu_oea64.c | ||
| mmu_oea64.h | ||
| mmu_radix.c | ||
| moea64_native.c | ||
| mp_cpudep.c | ||
| slb.c | ||
| trap_subr32.S | ||
| trap_subr64.S | ||