[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CASSIOPEIA report



週末カシオペアをいじってみました。
あんまり、進捗がないですが...

dev/btnmgr.c をちょっといじって

        if ((id == CONFIG_HOOK_BUTTONEVENT_APP0) && msg) {
                vrgiu_dump();
        }
        if ((id == CONFIG_HOOK_BUTTONEVENT_APP1) && msg) {
                static int st=0;
                st = !st;
                __vrgiu_out(26,st);
        }
        if ((id == CONFIG_HOOK_BUTTONEVENT_APP2) && msg) {
                static int st=0;
                st = !st;
                __vrgiu_out(38,st);
        }
こんな風に書き換えて、

1) ポート 38 の ON で シリアルが使え (OFF で使えなくなる) のを
確認しました。

pbsdboot.exe で対応してもらえると嬉しいです。

2) ポート 26 の ON でバックライトが点灯するのを確認しました。

ちなみに、これらは、サスペンドの実験のための準備。

   0) とりあえず、調査のためにダンプできるようにした。

   1) カーネルで シリアルを初期化できるようにする。

   2) バックライト をボタンで操作できることにより、カーネルが
   動いているかどうかを確認。
   ( バックライトは派手すぎるのですが、それ以外GIU だけで 操作できる
    表示デバイスがないみたい。--- アラームのLED は、別デバイスみたい)

という狙いがあります。 

肝心のサスペンドの実験は、なんだかうまくいっていません。

vrpmu.c で 次のようにしてみたんですが、
power ボタン押したら、それでハングアップするみたい。

        if (intstat1 & PMUINT_POWERSW) j
                vrpmu_pwstate = !vrpmu_pwstate;
            if (!vrpmu_pwstate) {
                //_spllower(~MIPS_INT_MASK_0);
                vrip_intr_suspend();
                /* SAVE */
                __asm(".set noreorder");
                __asm(__CONCAT(".word   ",___STRING(VR_OPCODE_STANDBY)));
                __asm("nop");
                __asm("nop");
                __asm("nop");
                __asm("nop");
                __asm("nop");
                __asm(".set reorder");
                /* RESUME */
                vrip_intr_resume();
            }

なにか、思い当たることがありましたら、コメントお願いします。

--
					鈴木 康司 @NECソリューションズ
					suz@hpc.bs1.fc.nec.co.jp
					TEL 042-333-6465