[parisc-linux] Boot error on C200+

John Marvin jsm@udlkern.fc.hp.com
Sat, 2 Sep 2000 21:29:57 -0600 (MDT)


Bob Pflederer wrote:

> I see this on C180.  It goes away if you modify entry.S to use
> PA2.0-style tlb inserts instead of the PA1.1-style tlb inserts.
> Try the attached patch.  It modifies the tlb miss handlers at startup to
> use PA2.0 tlb inserts if you have a PA2.0 cpu.  PA-8000 docs claim
> that PA1.1 tlb inserts are not supported, so I suspect we're hitting
> a case that doesn't work.
>
> Would someone who has CVS write access be willing to commit this
> patch?  It's the last thing I need to make C180 work.

Please don't anyone do this.  I've got another fix in progress.  Bob is
correct that we shouldn't be using the PA1.1 inserts.  But he was fooled
by redundant code in trap_init(), thinking that we haven't gone virtual
yet.  Code in trap_init() sets the iva, but it should be removed (which I
will do).  We actually set the iva (and install a small set of mappings)
very early in real/head.S and go virtual before calling start_parisc().
We never run any C code in real mode.  Bob's patch means that we would
still run 1.1 inserts for a while, and then it would be patching the tlb
miss handlers WHILE THEY ARE POTENTIALLY BEING USED!

My fix will do a simple 3-4 assembly instruction test for PA2.0 in
head.S, and then install the appropriate iva. This wastes 2K of memory
having two iva's, but is a lot simpler to do in assembly very early
in the boot process. I'll try to get this done by Tuesday morning
(I work throughout the night Monday).

John Marvin
jsm@fc.hp.com