[ TOP | Recently ]

1999-07-11 NVRAM


ふと、newsmips/newsmips/clockreg.h に書いてある

/*
 * Mostek MK48T02 clock.
 */

というコメントが目にとまる。そう、これは NVRAM。
いや、NVRAM が載ってるのは知ってんだけど。
(以前 フタを あけて 掃除した )

というわけで、altavista で検索...発見。

 The Mostek MK48T02 2k nvram chip has been used in Sun3/80, sun4 and sun4c
systems.  In sun4m systems they use the 8k version -but these are
not dying yet.
Sun is selling the MK48T02 for $70.
In Germany they cost DM 45 / piece or DM 20 in larger quantities.
From this I think that they might be between $10 and $25 in the US.

sun のやつと同じなのね。size は 2kbyte。

ROM monitor でごそごそと調べる。

> ss -d
atr name/vendor    ctlr mu ab sl h/w base    softc rev   driver slave
co- bitmap           
c-- clock             0  0  0  - bf881fe0        -   0        - 
c-- console           0  0  0  -   pseudo ffff3fc0   0        - esccf(0,0)     
c-- dmac3             0  0  0  - be200000 ffff3f80   0        - 
                      1  0  0  - be300000 ffff3f40              

clock (RTC) が 0xbf881fe0 からなので、NVRAM はこの領域を含むはず。

> md bf880000
bf880000: 0000ff41 0000ff50 0000ff32 0000ff00 ...A...P...2....
bf880010: 0000ff66 0000ff64 0000ff64 0000ff69 ...f...d...d...i
bf880020: 0000ff00 0000ff00 0000ff20 0000ff20 ........... ... 
bf880030: 0000ff20 0000ff03 0000ff02 0000ff73 ... ...........s
bf880040: 0000ff6f 0000ff6e 0000ff69 0000ff63 ...o...n...i...c
bf880050: 0000ff00 0000ff00 0000ff20 0000ff21 ........... ...!
bf880060: 0000ff21 0000ff03 0000ff02 0000ff01 ...!............
bf880070: 0000ff00 0000ff00 0000ff00 0000ff00 ................
bf880080: 0000ff00 0000ff00 0000ff00 0000ff00 ................
bf880090: 0000ff00 0000ff00 0000ff00 0000ff00 ................
bf8800a0: 0000ff00 0000ff00 0000ff00 0000ff00 ................
bf8800b0: 0000ff00 0000ff00 0000ff00 0000ff00 ................

これっぽい。

> md bf881000
bf881000: 0000ff00 0000ff07 0000ff55 0000ffa1 ...........U....
bf881010: 0000ff00 0000ff00 0000ff00 0000ff15 ................
bf881020: 0000ff6e 0000ff65 0000ff74 0000ff77 ...n...e...t...w
bf881030: 0000ff6f 0000ff72 0000ff6b 0000ff00 ...o...r...k....
bf881040: 0000ff65 0000ff74 0000ff68 0000ff65 ...e...t...h...e
bf881050: 0000ff72 0000ff6e 0000ff65 0000ff74 ...r...n...e...t
bf881060: 0000ff00 0000ff00 0000ff00 0000ff00 ................
bf881070: 0000ff16 0000ff62 0000ff6f 0000ff6f .......b...o...o
bf881080: 0000ff74 0000ff64 0000ff65 0000ff76 ...t...d...e...v
bf881090: 0000ff00 0000ff73 0000ff63 0000ff73 .......s...c...s
bf8810a0: 0000ff69 0000ff28 0000ff30 0000ff2c ...i...(...0...,
bf8810b0: 0000ff30 0000ff29 0000ff00 0000ff00 ...0...)........
bf8810c0: 0000ff00 0000ff00 0000ff15 0000ff6d ...............m
bf8810d0: 0000ff61 0000ff63 0000ff68 0000ff69 ...a...c...h...i
bf8810e0: 0000ff6e 0000ff65 0000ff00 0000ff6e ...n...e.......n
bf8810f0: 0000ff65 0000ff77 0000ff73 0000ff35 ...e...w...s...5
bf881100: 0000ff30 0000ff30 0000ff30 0000ff00 ...0...0...0....
bf881110: 0000ff00 0000ff00 0000ff00 0000ff12 ................
bf881120: 0000ff63 0000ff70 0000ff75 0000ff74 ...c...p...u...t
bf881130: 0000ff79 0000ff70 0000ff65 0000ff00 ...y...p...e....
bf881140: 0000ff72 0000ff34 0000ff30 0000ff30 ...r...4...0...0

間違いないようだ。

NEWS5000 の rom monitor は環境変数みたいなものが使えて、

> set 
network=ethernet
bootdev=scsi(0,0)
machine=news5000
cputype=r4000
model=NWS-5000
mon=2

このように任意の変数を定義できる。当然電源を切ってもこれは保持されてる。
この内容がそのまま入ってるので、上の領域は間違いなく NVRAM がそのまま map
されてるんだろう。

#ちなみに、ここも 32bit 中 8bit しか使ってない変な bus。
#つっても、busspace 関数はもうちゃんと作ってあるので、
#bus_space_map あーんど bus_space_read_region_1 で何も考えず領域 copy できるけど :-)

size は 2kbyte なので、0x800。
NVRAM の 8bit が NEWS5000 では 32bit に map されてるので、
0xbf880000 〜 0x800*4 で、
0xbf880000 〜 0xbf882000 が NVRAM。そのうちの、
0xbf881fe0 〜 0xbf882000 が RTC と。

ROM monitor は、NVRAM を boot 情報の保持(default で scsi(0,0)からbootしろとか)
くらいにしか使ってないので
(だから電池が切れても時計が狂うくらいで別に支障はない)、
unix から見えてもあんまり嬉しくないんだけど、
やっぱり sparc みたいに /dev/ の下に見えるとかっこいいよなぁ、
とか思いつつ(思っただけ)、sonic の attach のつづきをやる。

#どうやらattach まではいったらしい
#まだ ether_ifattach() してないし割り込みは影も形も、だけど :P


EOF