[parisc-linux] arch/parisc/kernel/realmode_setup.c Question
bame@verinet.com
bame@verinet.com
Mon, 15 Nov 1999 11:33:28 -0700
I don't work Mondays, but I saw this by chance and thought I should
respond as the culprit :-)
Don't knock yourself out figuring out where a C3000 is dying now
(this can be a TREMENDOUS time sink!). If you want to get a better PIM
dump of the problem, comment out the 'mtctl ??, %cr14' in head.S.
But logic is all that's required here. The RFI attempts to
"resume" executaion at 0xC<something> which isn't mapped, and there's
no TLB handler (that I know of, haven't studied it yet though), so this
will generate an immediate fault.
I'm glad folks are finding the C setup code easier to grok, but I
warn that the most innocent-seeming change can cause the compiler to
generate something which will lead to a mysterious death while booting!
This fragility is unacceptable.
The "best" solution to this which I've come up with is to segregate the
realmode code like Phillip suggests, and link it into a small separate
executable, so that vmlinux is logically two executables in one. This
design is a bit twisted and will mainly impact a couple of Makefiles as well
as head.S, realmode_setup.c, setup.c, and cosmetic changes to traps.c
However once it's done it'll be easy to understand, change, and maintain
the realmode startup code.
I'm planning to start this tomorrow so somebody stop me if it seems stupid.
Very rough notes -- very rough -- about the twisted design can be found at
http://puffin.external.hp.com/~bame/boot.html I'd like to be shown there's
an easier way...
-Paul Bame