[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を設定してみたところ、うまく行ったようです。

ということで、ようやく安心して(?)開発が進められるようになりました。

# これだけ対策しても壊れたらどうしよう......

篠原