一覧 検索 最終更新 改名 | ヘルプ | 最終更新のRSS |

BUFFALO Hack/AT90S2313-4SC のバックアップソース(No.10)

 LinkStationシリーズ並びに、玄箱シリーズの、PowerPC版で使われているAVRについてのページ。
 AVRは汎用マイコンであるが、上記シリーズにおいては、出荷時にプログラムが書き込まれ、PowerPCからのコマンドをシリアル経由で送受し、電源管理、LED、リセット、ファンの制御、並びに管理を行っている。
 ライトプロテクトは解除されているため、書き込みも可能だが、本体のみでは書き換える事は出来ない。
 プログラムメモリは2KB(うち1KB使用)、データメモリ128バイト、EEPROM128バイト(中身は書き込まれていない)。ロックビットは1になっているため読み込みも行える模様。
 PowerPCの板でも一部ロットや、MIPS、TeraStationについては、同様の処理にMC68HC908JL8が使われている。

*空冷ファン [#ua1f3529]

 AVRはファンが回転していない事を検出すると、システムをシャットダウンするようになっている。
 ロックセンサータイプのファンを想定しているため、三線のファンを買ってきても、パルスセンサーの回転センサーの場合は、そのタイミングにより、ファンの故障と判断される事がある。
 ロックセンサータイプは、回転時には信号がLowになっているため、停止は検出できなくなってしまうものの、センサの信号を、GNDに落としてやることで、シャットダウンはされなくなる。
 単純にファンへの供給電源の切り替えにより、回転数の強弱を制御しているだけである。
 突然の故障により、とりあえず、システムは動かしたい場合は、AVRを止めてやる事でどうさするが、冷却が行われないため、長期運用は薦められない。

*LED[#j6bdaed6]
AVRへのコマンドと、ファームにより、初期状態では下記の様な状態を示す。
-POWER LED(緑) 
|LEDの状態|内容|
|点灯|通常動作。|
|点滅|電源投入後、起動処理中。厳密にはppc_uartdが起動するまでの間。ならびに、FLASHROM書き込み時。|
|ゆっくり点滅|タイマー設定時|

-LINK/ACT LED
|LED状態|内容|
|オレンジ|10BASE-T|
|緑|100BASE-TX|
|青(GbE対応機のみ)|1000BASE-T|

-DISK FULL LED(赤)
|LED状態|内容|
|点灯|DISK FULL|
|点滅|Flash書き込み作業中。|

-DIAG LED(赤)
|LED状態|内容|シャットダウンの有無|
|3回点滅|パーティションエラー。/dev/hda3 を /mnt にマウントしていない場合に発生。警告のみであり、動作は続行される|無|
|4回点滅|冷却ファンの異常を検出。|有|
|5回点滅|FLASH ROM異常。放電により回復の可能性あり。|有(電源断)|
|6回点滅|ハードディスクの異常、若しくは、ppc_uartdを起動していない場合に発生。|有|
|7回点滅|RAM若しくは、LAN/HDDコントローラの異常を検出。|有|
|点滅を続ける|Flash 書き込み中。|無|

*AVR用ISP端子 [#n2ba18a3]
|ISPピン番号|信号|AVRピン番号|
|1|MISO|18|
|2|Vcc(3.3V)|20|
|3|SCK|19|
|4|MOSI|17|
|5|RESET|1|
|6|GND|10|
-位置はCN4。
-6PinのAVRプログラマが使える。
-電源プラグをコンセントに挿すだけで電源は供給されるため、プログラマからの電源供給は必要ない。

*コマンド一覧 [#m909febb]

-主に情報は[[こちら:http://linkstation.yi.org/index.php?AVR]]から。
サイトが放置されている可能性があり、情報の消失の防止のため転載しておきます。
収拾できた部分については、補完されています。
-コマンド列は、ファームでは、4バイト1セットで送信されている。

|CENTER:50|CENTER:80|CENTER:80|CENTER:80|CENTER:20|LEFT:500|c
|コード|文字|(bit7-4) - 2|bit3-1|bit0|CENTER:意味|h
|0x20|(SP)|0|0|0|次回起動までの時間(分)を2バイトでセット|
|0x21|!|0|0|1|次回起動までの時間(分)を2バイトでセット|
|0x22|"|0|1|0|次回起動までの時間(分)を2バイトでセット|
|0x23|#|0|1|1|次回起動までの時間(分)を2バイトでセット|
|0x24|$|0|2|0|次回起動までの時間(分)を2バイトでセット|
|0x25|%|0|2|1|次回起動までの時間(分)を2バイトでセット|
|0x26|&|0|3|0|次回起動までの時間(分)を2バイトでセット|
|0x27|'|0|3|1|次回起動までの時間(分)を2バイトでセット|
|0x28|(|0|4|0|次回起動までの時間(分)を2バイトでセット|
|0x29|)|0|4|1|次回起動までの時間(分)を2バイトでセット|
|0x2A|*|0|5|0|次回起動までの時間(分)を2バイトでセット|
|0x2B|+|0|5|1|次回起動までの時間(分)を2バイトでセット|
|0x2C|,|0|6|0|次回起動までの時間(分)を2バイトでセット|
|0x2D|-|0|6|1|次回起動までの時間(分)を2バイトでセット|
|0x2E|.|0|7|0|次回起動までの時間(分)を2バイトでセット|
|0x2F|/|0|7|1|次回起動までの時間(分)を2バイトでセット|
|0x30|0|1|0|0|次回起動までの時間(分)を2バイトでセット|
|0x31|1|1|0|1|次回起動までの時間(分)を2バイトでセット|
|0x32|2|1|1|0|次回起動までの時間(分)を2バイトでセット|
|0x33|3|1|1|1|次回起動までの時間(分)を2バイトでセット|
|0x34|4|1|2|0|次回起動までの時間(分)を2バイトでセット|
|0x35|5|1|2|1|次回起動までの時間(分)を2バイトでセット|
|0x36|6|1|3|0|次回起動までの時間(分)を2バイトでセット|
|0x37|7|1|3|1|次回起動までの時間(分)を2バイトでセット|
|0x38|8|1|4|0|次回起動までの時間(分)を2バイトでセット|
|0x39|9|1|4|1|次回起動までの時間(分)を2バイトでセット|
|0x3A|:|1|5|0|次回起動までの時間(分)を2バイトでセット|
|0x3B|;|1|5|1|次回起動までの時間(分)を2バイトでセット|
|0x3C|<|1|6|0|次回起動までの時間(分)を2バイトでセット|
|0x3D|=|1|6|1|次回起動までの時間(分)を2バイトでセット|
|0x3E|>|1|7|0|起動タイマーの無効|
|0x3F|?|1|7|1|起動タイマーの有効|
|0x40|@|2|0|0|AVR内部状態リセット。|
|0x41|A|2|0|1|AVR内部状態リセット。|
|0x42|B|2|1|0||
|0x43|C|2|1|1|リブートshutdown -r now / reboot 実行前に送信|
|0x44|D|2|2|0||
|0x45|E|2|2|1|シャットダウン shutdown -h now 実行前に送信|
|0x46|F|2|3|0|システム再起動|
|0x47|G|2|3|1|システム再起動(カーネル内でhalt/rebootの最終状態)|
|0x48|H|2|4|0||
|0x49|I|2|4|1|ブートローダがカーネル起動直前に送信|
|0x4A|J|2|5|0|ウォッチドッグの有効|
|0x4B|K|2|5|1|ウォッチドッグの無効|
|0x4C|L|2|6|0||
|0x4D|M|2|6|1||
|0x4E|N|2|7|0||
|0x4F|O|2|7|1||
|0x50|P|3|0|0||
|0x51|Q|3|0|1|タイマ設定時に送信|
|0x52|R|3|1|0|Flash クリア終了|
|0x53|S|3|1|1|Flash クリア開始|
|0x54|T|3|2|0|Flash 更新終了 POWER, DISK FULL, DIAG の各 LED の点滅が止まる UUUU とペア|
|0x55|U|3|2|1|Flash 更新開始 POWER, DISK FULL, DIAG の各 LED が点滅する TTTT とぺア|
|0x56|V|3|3|0|DISK FULL LED 消灯 WWWWW とペア|
|0x57|W|3|3|1|DISK FULL LED 点灯 VVVV とペア|
|0x58|X|3|4|0|DISK FULL LED 消灯 YYYY とペア|
|0x59|Y|3|4|1|DISK FULL LED 点滅 XXXX とペア|
|0x5A|Z|3|5|0|POWER LED のゆっくり点滅解除?|
|0x5B|[|3|5|1|POWER LED がゆっくり点滅(スリープ設定時)|
|0x5C|\|3|6|0|ファンの低速回転|
|0x5D|]|3|6|1|ファンの高速回転|
|0x5E|^|3|7|0||
|0x5F|_|3|7|1||
|0x60|`|4|0|0||
|0x61|a|4|0|1||
|0x62|b|4|1|0||
|0x63|c|4|1|1||
|0x64|d|4|2|0||
|0x65|e|4|2|1||
|0x66|f|4|3|0||
|0x67|g|4|3|1|DIAG LEDが3回点滅(パーティションエラー)を繰り返す。|
|0x68|h|4|4|0||
|0x69|i|4|4|1|DIAG LEDが4回点滅(ファン異常)を繰り返し、シャットダウンされる。|
|0x6A|j|4|5|0||
|0x6B|k|4|5|1|DIAG LEDが5回点滅(FLASH ROM 異常)を繰り返し、電源断される。シャットダウンではないので、要注意。|
|0x6C|l|4|6|0||
|0x6D|m|4|6|1|DIAG LEDが6回点滅(ハードディスク異常)を繰り返し、 シャットダウンされる。|
|0x6E|n|4|7|0||
|0x6F|o|4|7|1|DIAG LEDが7回点滅(RAM/LAN/HDD コントローラ異常)を繰り返し、 シャットダウンされる。|
|0x70|p|5|0|0|内部処理の問題から、AVR誤動作。|
|0x71|q|5|0|1|内部処理の問題から、AVR誤動作。|
|0x72|r|5|1|0|内部処理の問題から、AVR誤動作。|
|0x73|s|5|1|1|内部処理の問題から、AVR誤動作。|
|0x74|t|5|2|0|内部処理の問題から、AVR誤動作。|
|0x75|u|5|2|1|内部処理の問題から、AVR誤動作。|
|0x76|v|5|3|0|内部処理の問題から、AVR誤動作。|
|0x77|w|5|3|1|内部処理の問題から、AVR誤動作。|
|0x78|x|5|4|0|内部処理の問題から、AVR誤動作。|
|0x79|y|5|4|1|内部処理の問題から、AVR誤動作。|
|0x7A|z|5|5|0|内部処理の問題から、AVR誤動作。|
|0x7B|{|5|5|1|内部処理の問題から、AVR誤動作。|
|0x7C|||5|6|0|内部処理の問題から、AVR誤動作。|
|0x7D|}|5|6|1|内部処理の問題から、AVR誤動作。|
|0x7E|〜|5|7|0|内部処理の問題から、AVR誤動作。|
|0x7F|(DEL)|5|7|1|内部処理の問題から、AVR誤動作。|
 
*AVR->ttyS1 へのコマンド [#xfce8a39]
 
|CENTER:50|CENTER:80|LEFT:500|c
|コード|文字|CENTER:意味|h
|0x20|(SP)|power push|
|0x21|!|power release|
|0x22|"|reset push|
|0x23|#|reset release|
|0x24|$|rear fan becomes work|
|0x25|%|rear fan becomes stop|
|0x31|1|Reboot request from AVR|
|0x33|3|AVR init complete|
|0x41|A||

*タイマ関連 [#cb868b57]

(HTML conversion costs 0.005 sec.)