[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: L-router / L-board
以前書いたメモに対する補足です。
Takao Shinohara <shin@sm.sony.co.jp> writes:
> /* -*- Indented-Text -*- */
>
> L-RouterでNetBSDを起動する方法
> [工場出荷状態への戻し方]
>
> マニュアルに書いてあるとおり、スイッチを押しながら電源を入れると工場出荷
> 状態に戻る。やっていることは、/dev/mtd_config_monitorの領域をクリアして
> いるらしい。
この方法でもいいのですが、Flash ROMの消去に時間がかかるので以下の方法を
お勧めします。
1. ROMモニタを起動する
起動時にスペースを入力する。
2. 工場出荷時のlinuxカーネルをFlash ROMからRAMにコピーする
cコマンドを使用。
3. RAMにコピーしたlinuxカーネルを起動する
gコマンドを使用。
[1〜3の実行例]
------------------------------------------------------------------------
ICW1_1:11ICW2_1:00ICW3_1:04ICW4_1:01OCW1_1:00OCW1_2:00OCW1_3:4aend
Boot monitor Ver1.33
Data translating...
If you use monitor program then push SP key.
L-Board monitor program. Ver1.33
Main function menu.
c: Copy to DRAM memory.
d: Display memory dump list.
e: Erase flash memory.
g: Execute program.
l: Download program file.
r: RTC set up.
v: Verify program file.
w: Write to flash memory.
x: Execute Linux.
----------------------------------
Command?:c
<< Copy Mode >>
Source address(HEX)? :bf000000
ROM2 address select.
Destination address(HEX)? :a0020000
Data size(HEX)? :600000
Copy OK?(y/n) :y
Now copying...
Main function menu.
c: Copy to DRAM memory.
d: Display memory dump list.
e: Erase flash memory.
g: Execute program.
l: Download program file.
r: RTC set up.
v: Verify program file.
w: Write to flash memory.
x: Execute Linux.
----------------------------------
Command?:g
<< Execute Program Mode >>
Entry address(HEX)? :a0020000
Program start?(y/n) :y
------------------------------------------------------------------------
[最近の状況]
2台も壊した私を哀れんだ竹村さんがL-Routerを貸してくださったので、開発を
再開できる状態になりました。
これ以上壊さないためにはどうすればよいか悩んでいたところ、Flash ROMの内
容が不用意に壊されないようにするためにはchipのwrite protect機能が使える
のではないかと助言をいただいたので、(泥縄で)調べてみました。
L-Routerに使われているのはIntelの28F640J5なのですが、このチップにはblock
単位で書き込みや消去を禁止する機能があります(Set Block Lock-Bitコマンド)。
これを使えば、Lock-Bitをクリアしてから消去なり書き込みなりのコマンドを発
行するという手順を経ないと書き換えができなくなるので、何もしない状態より
はかなり(65536倍?)安全になるはずです。
いきなり実機で試すのは危険なので、たまたま手元にあった評価ボードのFlash
ROMを使って実験したところ、簡単なプログラムで設定できることがわかりまし
た。
そこで、L-Routerでも工場出荷時のlinuxカーネルの部分とROMモニタの部分に
lockを設定してみたところ、うまく行ったようです。
ということで、ようやく安心して(?)開発が進められるようになりました。
# これだけ対策しても壊れたらどうしよう......
篠原