On 30-Sep-97 Ralf Baechle wrote:
>> [swapper 0] Illegal instruction at Address <somewhere>.
>> The instruction that causes this exception is:
>> > ...
>> >#endif /* CONF_DEBUG_TLB */
>> > /* Load missing pair of entries from the pgd and return. */
>> > mfc0 k1,CP0_CONTEXT
>> > nop
>> > lw k0,(k1) #Never causes nested exception
>> > ^^^^^^^^^^^^^^^
>> > mfc0 k1,CP0_EPC # get the return PC
>> > ...
>> in arch/mips/kernel/r2300_misc.S.
>Ok, I was suspecting something like that. That particular TLB exception
>handler has to be pretty different from the R4000 version. It's
>doing a very trivial piece of work. The only thing that makes it
>a bit more complicated is the fact that the TLB exception handlers
>have to be even more optimized than Microsoft's hype. In fact the
>current handlers are all far to bulky.
>I'm not shure which source tree you're using. Could you post the
>TLB exception handler from that tree?
I am still hacking Paul's 188.8.131.52.dec kernel. After messing around with head.S
yesterday I restored to Paul's original head.S this evening and now I am getting
a different error message:
About to init memory
mem_init called with start_mem: 8018a018, end_mem: 82fff000
mem_init now has start_mem: 8018b000, end_mem: 82fff000
Memory: 47568k/49148k available (524k kernel code, 864k data)
About to init buffers
memsize is: 2fff000
about to vmalloc hash table
vmalloc'd hash table, addr is: c0000000
about to clear hash table
[swapper:0:00000822:1:8003aab8]do_page_fault() #2: sending SIGSEGV to swapper fo
r illegal writeaccess to
00000822 (epc == 8003aab8, ra == 80070e54)
which makes a *little* bit more sense to me. Strange, even the smallest changes
seem to produce very different effects. Uhmmm... isn't that characteristic for
chaotical behaviour? ;-)
I don't want to bother this list with kBytes of listings. If you are really
interested in the version of head.S I am presently using, you can download
it from http://ww.netcologne.de/~nc-koerfgha/head.S.
Thanks in advance.
(switched back to my 5000/133, this thing boots via tftp :-))