CAT709, CAT760 シリアルEEPROM

解説

カーネル linux-2.6.15_20070227.tgz 以降にて、CAT709,CAT760 オンボード シリアルEEPROMの リード/ライト をサポートしました。本ドライバを使用することにより CAT709,CAT760 内蔵 シリアルEEPROM の読み書きが可能になります。

本EEPROMドライバは次の目的として使用できます。

  1. ユーザが自由に使える256バイトの領域として使用できます
  2. 動作しているLinux上から、Linuxカーネル起動パラメータの書き換えができるようになります

CAT709,CAT760には 合計 512バイトの容量のシリアルEEPROMを実装しています。 EEPROMは0〜3の4つの領域に別れていて、それぞれ下の表のように使用しています。

ドライバマイナ番号アドレス区域使用目的ドライバパーミッション
000 - FFユーザ開放R/W
1100 - 1EFカーネル起動パラメータR/W
21F0 - 1F5MACアドレスRead Only
31F6 - 1FFCATBOOTパラメータR/W

マイナー番号3の MACアドレス部 は書き込みが不可になっています。

本ドライバはメジャー番号246、マイナー番号0〜3のキャラクタ型ドライバです。

コンパイル&インストール方法

コンパイル

linux-2.6.15-cat_20070227.tgz 以降の日付のカーネルを展開し、コンパイルして zImage を書き換えることで対応します。

例) 開発機にて
  $ tar xzvf linux-2.6.15-cat_20070224.tgz
  $ cd linux-2.6.15-cat
  $ make cat709_defconfig     もしくは
    make cat760_defconfig
  $ make

  arch/sh/boot/zImage がカーネルになります。

インストール方法

zImage をコンパクトフラッシュメモリに保存し、CATBOOT上で以下のようにタイプすることでカーネルのアップデートが出来ます。

 CAT709, CAT760 CATBOOTにて
 >> admin
 passwd:    パスワードについては「組み込みLinuxガイド」を参照ください
 #> cp cf0:zImage rom:kernel

CAT709, CAT760上にデバイスファイルを作る

EEPROMを読み書きするためのデバイスファイルを作ります。以下の作業はCAT709, CAT760で一度だけ実行します。

CAT709, CAT760にて
  # rommode rw
  # mkdev /dev/eeprom0  c  246 0
  # mkdev /dev/eeprom1  c  246 1
  # mkdev /dev/eeprom2  c  246 2
  # mkdev /dev/eeprom3  c  246 3
  # rommode ro

EEPROM領域の使い方

EEPROMデータの読み出し

EEPROM0のデータを data.bin にコピーする

CAT709, CAT760にて
  # cp /dev/eeprom0 data.bin

その他のアクセス例

CAT709, CAT760にて
  # hex /dev/eeprom0        EEPROM0領域のの16進ダンプ
  # cat /dev/eeprom0        EEPROM0領域のテキスト表示

EEPROMデータの書き込み

data.bin のデータを EEPROM0にコピーする

CAT709, CAT760にて
  # cp data.bin /dev/eeprom0

その他のアクセス例

CAT709, CAT760にて
  # echo 1234 > /dev/eeprom0

実践的な使用例

ユーザ開放 /dev/eeprom0 を活用する

/dev/eeprom0 はユーザに解放された 256 バイトのメモリ空間です。

簡単なデータであれば rommode コマンドを使用して FLASH ROM を一旦 Read Write な状態にせずに /dev/eeprom0 に保存することができます。

書き込み

# echo 1234 > /dev/eeprom0

読み出し

# cat /dev/eeprom0

ただし、EEPROMの書き換え寿命は10万回です。頻繁に書き換えを行うと書き換え寿命に達しますのでそのような目的には使用できません。(ちなみに1年=52万5千分ですので1分毎に書き換えるような目的には使用できません)

CAT709, CAT760のデュプリケート(複製)

CAT709, CAT760 のROMデータを他のCAT709, CAT760にコピーする際、カーネルとrootfsだけではなくて EEPROMのデータもコピーしなければなりません。

CAT709 のCATBOOTの設定を他の CAT709 へパラメータコピーする際の使用例は下 記の通りです。

領域0/dev/eeprom0ユーザ開放必要に応じてコピーします
領域1/dev/eeprom1カーネル起動パラメータコピーします
領域2/dev/eeprom2MACアドレスコピーしません
領域3/dev/eeprom3BIOSパラメータコピーします

転送元の CAT709, CAT760で

CAT709, CAT760にて
  # cp  /dev/eeprom0  data0.bin
  # cp  /dev/eeprom1  data1.bin
  # cp  /dev/eeprom3  data3.bin

転送先の CAT709, CAT760で

CAT709, CAT760にて
  # cp  data0.bin  /dev/eeprom0
  # cp  data1.bin  /dev/eeprom1
  # cp  data3.bin  /dev/eeprom3

リンク