Module Name: src Committed By: thorpej Date: Wed Feb 24 16:53:00 UTC 2021
Modified Files: src/sys/arch/powerpc/oea: ofw_subr.S ofwoea_machdep.c Log Message: Don't save the firmware's copy of SPRG[0-3], and don't fiddle with SPRG[0-3] in the firmware trampoline. Section 7.1 of the OpenFirmware PowerPC CPU bindings says that firmware "client interface shall not modify" when in virtual-mode, and "client interface shall preserve" in real-mode. This is important because in vritual-mode, DSI exceptions will land in the kernel's DSI exception handler, and that handler depends on the kernel's SPRG0 value (it contains the pointer to the cpu_info for that CPU). Additionally, in the firmware trampoline, point curcpu at an empty ofw_battable. This ensures that the DSI exception handler won't load a BAT register with a kernel block translation that clobbers a segment translation owned by the firmware. Eventually, this ofw_battable might contain some of the larger translations owned by the firmware. To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/arch/powerpc/oea/ofw_subr.S cvs rdiff -u -r1.53 -r1.54 src/sys/arch/powerpc/oea/ofwoea_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.