
Hi all,
I've got some problem when booting mips32 in kernel.
I know this is uboot maillist , but I think people here may be more famililar with booting,so I post here for your help :D
I got a No.23 trap when calling start_kernel ---> local_irq_enable :
irq 23, desc: 802a98a0, depth: 1, count: 0, unhandled: 0 ->handle_irq(): 80148c6c, handle_bad_irq+0x0/0x2b4 ->chip(): 8029f738, 0x8029f738 ->action(): 00000000 IRQ_DISABLED set unexpected IRQ # 23
No.23 trap is a Watch trap, which means that, when
"Physical address of load/store matched enabled value in
WatchLo/ WatahHi registers."---<see mips sun> happened, a No.23 trap was triggered by cpu.
So I used macro
__u32 watch_regh0= read_c0_watchhi0(); __u32 watch_regl0= read_c0_watchlo0();
to retrieve value from WatchHi and WatchLo register, found them 0x1 and 0x0
respectively,which mean that ,'r' together with 'w' bits were set to zero and no trap should be triggered.
But now , I got a 23 trap, why ?
At last , I used to set WatchHi to 0x0, but failed , and found it still 0x1 after
calling write_c0_watchhi0(0)
Any suggestion would be grateful.
regards