While booting a 64bit kernel, there is a small timeframe where OF and
the kernel communicate with each other. Within that timeframe, DSI/ISI
interrupts may occur, because some memory is not mapped yet.
Right now in case that happens, we jump into the DSI/ISI interrupt
handler which clobbers the high 32 bits of the kernel's registers. In
order to circumvent that, let's save/restore all 64 bits of all kernel
registers when we get a DSI/ISI interrupt.
In order to make use of this patch in qemu, a separate patch is
required that makes qemu not run the interrupt handlers from ROM, but
from RAM. It will follow on the qemu list shortly.
This patch enables a PPC64 Linux kernel to boot up to the point where
it tries to set up the SLB entries (slbmte), which is not yet
implemented in qemu.
Signed-off-by: Alexander Graf <alex(a)csgraf.de>
Show replies by date