Exceptionはハンドル出来てるぽ

hw_cpu_hatch()で割り込み有効にしてbreakかけてddbが上がるかどうか確かめればExceptionをハンドルしてtrap出来てるか分かるという単純極まりない事実に気づいて早速試してみる。

        /*
         * Build proper TLB refill handler trampolines.
         */
        extern void xtlb_miss;
        xtlb_handler = (vaddr_t)&xtlb_miss;

        build_trampoline(TLB_MISS_EXC_VEC, xtlb_handler);
        build_trampoline(XTLB_MISS_EXC_VEC, xtlb_handler);
        
        /*
         * Turn off bootstrap exception vectors.
         */
        setsr(getsr() & ~SR_BOOT_EXC_VEC);
        
        /*
         * Clear out the I and D caches.
         */
        Mips10k_ConfigCache(ci);
        Mips_SyncCache(ci);
        
//      cpu_startclock(ci);

//      ncpus++;
//      cpuset_add(&cpus_running, ci);
 
//      mips64_ipi_init();
        /* XXX: setintrmask(0) here */

        spl0();
        (void)updateimask(0);
 
        Debugger();
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
boot device: sd0
root on sd0a swap on sd0b dump on sd0b
clock_int5
Stopped at      0xa800000000439064:     jr      ra
0xa800000000439068:      nop
ddb{1}> 

おk。ちゃんと動いとる。