[parisc-linux] Re: Getting up and running

Jochen Friedrich jochen@scram.de
Mon, 17 Sep 2001 23:25:30 +0200 (CEST)


Hi John,

> I thought for a second that the patch might work anyway, since the
> unaligned fault handler has exception table support, so even though
> the instruction might be unecessarily emulated, it would still
> successfully bring the page in, but the unaligned fault handler
> uses ldb, which would just cause an infinite loop ...

init started:  BusyBox v0.51 (2001.06.27-21:43+0000) multi-call binary
rcS(14): unaligned access to 0x000411e5 at ip=0x0001a04f
Not-handled unaligned insn 0x60a0002a
Unaligned handler failed, ret = -1 #
# ps -ax
<4>sh(16): unaligned access to 0x000411e5 at ip=0x0001a04f
Not-handled unaligned insn 0x60a0002a
Unaligned handler failed, ret = -1 Bus error
# ls -la
<4>sh(17): unaligned access to 0x000411e5 at ip=0x0001a04f
Not-handled unaligned insn 0x60a0002a
Unaligned handler failed, ret = -1 Bus error

I had more success using the old suggested patch:

"Our" CPUs are very old. So there must be a line added in
the arch/parisc/kernel/trap.c file. In the handle_interruption()
you must add the line
        `case 18:'
where
        `case 15:'
        `case 26:'
is in the code, because these old CPUs use an older method of
"reporting" page faults, etc...

It looks like the expression "if (regs->ior & 3)" might be wrong here...

Cheers,
Jochen