http://www.cqpub.co.jp/hanbai/books/35/35231.htm
[絶版1999.10.20] SCSI-2詳細解説
ご覧になればわかると思いますが、SCSIコマンドにファームウェアを直接書き換えるコマンドはありません
http://konicaminolta.jp/products/consumer/mo/column/report.html
MOドライブ-オプト製品 | コニカミノルタ
どういうことかというと、ファームウェアはデータ転送コマンドによって転送されて書き換えられます
ですから、ファームウェアのアップデートなどのユーティリティでROMデータを書き換えてから転送する必要があります
ただし、CheckSUMなどのチェックがあるはずなので、そのまま書き換えただけでは転送プログラムにはじかれてしまうと思います
まず、そこを解析しないと無理でしょうね
なお、SCSIコマンドによるファームウェアの書き換えは、SCSI機器によってアクセスするアドレスが固有ですから、そのアクセスするためのアドレスを自分で解析しないと無理だと思います
妙なアドレスを書き換えてしまうと、SCSI機器自体が二度と使えなくなってしまうので気をつけてください
ファームウェアのフラッシュメモリの内容をROMライターなどで取り出して、バックアップして書き戻せるような環境を準備しておいてから、ROMライターで直接書き換えるほうが現実的だと思います
>ファームウェアの読み書きに関しては、READ BUFFER コマンドと WRITE BUFFERコマンドですでに出来るのですが、BufferIDを256種類変えても目的のデータが出てこなかったので
もしかしたら試されてるかもしれませんが、Flashのデバイス固有データがバッファの先頭にあるとは限りませんから、Buffer IDだけでなく Buffer Offsetを変えてみないと駄目なのではないでしょうか?
こちら SCSIコマンドの詳細リファレンスです
ROMアドレスなので、実際のBufferオフセットのかなり後ろにモデル名などのデータが入ってる可能性があるというのはいかがでしょうか?
ありがとうございます。やってみます。
http://www.hitachigst.com/tech/techlib.nsf/techdocs/6BB69573F9D1...
Technical Library - Specification - OEM - Ultrastar 146Z10 OEM Specification v2.2
ベンダーユニークなコマンドでそのような機能があって、製造工程中にそのコマンドを使うという話を聞いたことがありますが、おそらく見つけることは不可能だろうと思います。
一応、URLのページから日立GSTの製品のインターフェース仕様と、他にSeagateの製品についても見てみましたが、それらしきコマンドはなかったです。
RAIDメーカーなどがHDDメーカーからHDDを購入するとき、HDD内のモデル名などの情報をそのRAIDメーカーに固有の情報に変えて出荷するようにと注文をつけることがよくあります。
この固有の情報は、RAIDのエンドユーザが、RAID内のHDDを自分で買ってきたHDDと勝手に交換してしまうことを防ぐため、RAIDのコントローラがHDDをチェックするために使っています。
もし、この情報を簡単に書き換えることができるのならば、チェックの仕組みをくぐり抜けてHDDを交換できることになってしまうので、簡単な方法では書き換えを行えないようになっていると思います。
やはり、公開されいるドキュメントには無いですよね。ですが、今回のターゲットがIBMの機械なので参考になります。非公開のコマンドを探してみます。
ファームウェアの読み書きに関しては、READ BUFFER コマンドと WRITE BUFFERコマンドですでに出来るのですが、BufferIDを256種類変えても目的のデータが出てこなかったので、何か他の方法があるのではないかと思ったのですが。デバイス認識のコマンドが分かればわかりますかねぇ。