[PATCH 1/2] arch/ppc/qemu: Moved exception handlers from beginning of RAM

Do not put exception handler routines between 0x00-0xff as some OSes use this area for their own purposes and can corrupt them. (In particular MorphOS writes to 0x80 during boot). This patch frees up this area by moving the routines that were there higher. Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> --- openbios-devel/arch/ppc/qemu/start.S | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/openbios-devel/arch/ppc/qemu/start.S b/openbios-devel/arch/ppc/qemu/start.S index db8e860..ae2fd53 100644 --- a/openbios-devel/arch/ppc/qemu/start.S +++ b/openbios-devel/arch/ppc/qemu/start.S @@ -280,20 +280,8 @@ GLOBL(__vectors): 1: nop // b 1b -call_dsi_exception: - LOAD_REG_FUNC(r3, dsi_exception) - mtctr r3 - bctrl - b exception_return - -call_isi_exception: - LOAD_REG_FUNC(r3, isi_exception) - mtctr r3 - bctrl - b exception_return - -exception_return: - EXCEPTION_EPILOGUE +VECTOR( 0x100, "SRE" ): + b _entry trap_error: lis r1, 0x8000 /* r1=0x80000000 */ @@ -309,9 +297,6 @@ trap_error: mtctr r4 bctr -VECTOR( 0x100, "SRE" ): - b _entry - ILLEGAL_VECTOR( 0x200 ) VECTOR( 0x300, "DSI" ): @@ -373,11 +358,20 @@ VECTOR( 0x2200, "ISI_64" ): real_dsi: EXCEPTION_PREAMBLE - b call_dsi_exception + LOAD_REG_FUNC(r3, dsi_exception) + mtctr r3 + bctrl + b exception_return real_isi: EXCEPTION_PREAMBLE - b call_isi_exception + LOAD_REG_FUNC(r3, isi_exception) + mtctr r3 + bctrl + b exception_return + +exception_return: + EXCEPTION_EPILOGUE GLOBL(__vectors_end): -- 1.8.1.5
participants (1)
-
BALATON Zoltan