[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