>Instead of copying the exception vectors from ROM
to page zero use the
>Interrupt Prefix bit of the CPU to use the vectors at the ROM address.
>This simplifies the startup routine a little bit and avoids using
>addresses that can be overwritten by clients. In particular MorphOS
>writes to address 0x80 during boot which corrupted the exception
>return code causing a crash.
Many OSes use 0000..00ff for their own purposes. OpenBIOS should
not use that area for anything, for its own good.
MSR[IP] is optional. OpenBIOS should not use it if it wants to run
on more than just 970.
Just as a general comment: I know that some OSs using
Sun's PROM expect
to be able to write to the trap table (which is why it is copied to RAM)
so you'd need to check this thoroughly. Or, if MSR_IP uses virtual
addresses you could do some MMU twiddling so that the virtual address
actually points into a safe area of RAM rather than ROM.
All exceptions are taken with translation off ("real mode").