玄人志向のクローゼットNAS(KURO-Z/NAS-KIT)を買ってみた

先日ネットで面白そうな物を見つけたので買ってみました。クローゼットNASというPCの中にNASを組み込んでしまおう!!という素敵なキットです。

玄人志向のHPにも載っていますけど・・・使うPCの消費電力が110W以下と条件が付いています。このNASカードはNASとして動かす為に居候するPCの電源は切る事が出来ません。その為搭載PCをシャットダウンしたときにNASカードだけ電源が供給される様に電源コントロール基板が付いています。仕組みは簡単でマザーボードから出力されるスタンバイ信号をこの電源コントロール基板が受けて搭載しているFETをOFFするだけです。そしてPC電源本体にはこのスタンバイ信号を送らずずっとONさせておく事でNASカードの電源を確保するわけです。z

・・・でこの電源コントロール基板は単なるFETを搭載したスイッチ基板なんです。PCのマザーボードに供給する電源は全てこの基板を通過するので、この基板のFETの限界点以上の電流を必要とするマザーボードだとFETが壊れちゃうんですね。上の写真の電源コントロール基板の大きなFETはANPECのAPM3020が使われていました。このFETをより大きな物にすればもう少し消費電力の大きいマザーボードでも組み込む事が可能になりますネ。

このボードをN-Tecでは適度に解析・改造を施して最終的には玄箱みたいにサーバー機能を自由に追加できれば・・・って思っています。そもそもリナックスが全くの素人でこの前やっとインストールしたばかりなのでどうなるか不明ですけどね(笑)

ひとまず、ファイルサーバーだけそのまま動かしてみました。普通に動きます。ftp、プリンターサーバーが動くのでひとまずやりたい事は出来るようになるでしょう。

また調べていくと販売元はMRT COMMUNICATION LTDという台湾の会社で、設計しているのはBifferosという会社みたいです。Bifferosが作っているというのは推測にしか過ぎません。MACアドレスとかから調べれば分かるのですけど・・・HPに載っているBifferboardの雰囲気が似ているのと、KURO-Z/NAS-KITと使っている放熱板が同じ事、メモリのメーカーが同じ事などから判断しました。

本体の解析

それじゃ本体を解析して行きます。お約束のデバイス調査から始めましょう。放熱板はひとまず外しました。

コレが基板です。この基板を見るとPCI-Exスロットは固定の為のみに使っているのがわかります。電源もPCI-Exからは供給していません。

電源は上にある4ピンの電源端子から供給します。フロッピーディスクとかで使っている小さい4pinコネクターですので5Vと12Vを供給すればこのボードを動かす事が出来そうです。

@CPU:RDCセミコンダクターというメーカーのS3282というチップを使っています。

このチップは調べてみると色々なNAS等で使っているx86互換のチップみたいです。ググって調べると海外の掲示板とかでもいじっている人がいる。アチコチ見てるとこのS3282はSOCで、内部コアはR8610というCPUを使っているらしい・・・って事が分かりました。確かにデータシートもネット上に存在しますね。

さらに、色々ググって調べていくとftpサーバーへのリンクがあってそこにR8610のDEMOボードやJTAGツールに関する資料があります。そのDEMOボードではLinuxもWINCEも動いているみたいです。ひとまず、いつリンクが切れるか分かりませんからダウンロード出来るデータはダウンロードしておきます

ADRAM:NANYANT5SV16M16BS-75BというDRAMを使っています。

調べてみると256Mb(16bit*16M)のSDRAMでした。速度はPC133/166みたいです。

BFlashメモリ:EONEN29LV800BBを使っています。

EONのHPを見ると同じ型番のデータシートは見つかりませんでしたが、EN29LV800Cのデータシートは有りました。しかし、ネット上にはそのものズバリのデータシートが落ちていました。8MbitのNOR型Flashメモリで x8 or x16として使用出来ます。富士通(SPANSION)とかインテル(Numonyx)でも探せば同等品は有るはずです。

CLAN:IC+(ICプラス)IP101Aを使っています。

CPUとはMIIというLAN用のインターフェースで接続されているみたいです。CPUのデータシートに記述が有りました。

DIDE:IDEインターフェースはJmicronJM20337を使っています。

このICの先にATA HDDもしくはSATA HDDが接続されます。CPUとHDDはUSBで接続されていました。

EJ1ピンヘッダ:JTAGってシルク印刷のあるJ1というリファレンス番号のピンヘッダーが実装されています。ピン配置はまだ不明ですが・・・

ひとまず、MACアドレスのシールも剥がしてみました。(MACアドレスのシールを剥がしたからこのピンヘッダーがJ1で有る事が判明しました。)

 

システム構成と各デバイスの接続を考えてみる

S3282の資料はネットを探してみましたがそのものズバリという物は有りませんでした。海外の掲示板でもこのチップの情報はなかったです。ただ、R8610が元のチップって話が掲示板に載っていましたので、それを元にR8610の資料を探すと結構沢山見つかります。データシートも見つかりました。一応ここからの話はR8610=S3282として進めます。データシートを見るとR8610のブロック図が載っています。

このブロック図のUSB部にUSBーIDEブリッジがぶら下がっていて、更にもう一つのUSBがコネクターとして外部に出ています。MACコントローラーの先にLANが接続されています。MACコントローラーは2ポート有るウチ の1つは余っているのでここにLANを増設する気になれば増設も出来ます。

CPUにはUARTが実装されているので、この端子をPCに接続すれば、何かわかるかもしれません。BGAなのでパターンとして引っ張り出してなければなにも出来ませんが。ただ、基板上のJ1というピンヘッダーにJTAG用のツールを接続出来るであろう6本のピンヘッダーがあり、その隣にCONSOLEとシルク表示されている3本ピンが有ります。よく見るとそのうち2本が信号線でこれがCPUに接続されているので、こいつがシリアルかなぁ・・・って思っているところです。

SDRAMはそのままSDRAMインターフェースに接続されているはずです。FLASHメモリはX-Busに接続されているみたいです。X-Bus=ISABusらしいです。LPCはよく分かりません。一応LPCインターフェース自体を詳しく知らないので調べました。(調べた結果はココ

シリアル接続を試みる

ひとまず、CPUからUARTが出力されている事が分かりましたので、あのUARTっぽい2本のPinをオシロで当たってみました。右から2Pin目にぱらぱらと波形が出力されています。こいつがTXDの可能性があります。ってことはもう一つ隣のPinはRXDって事になります。

ココまできたらUARTとPCをつないでみるしか有りません。ひとまず部品箱をごそごそ・・・RS232C用のドライバーICが・・・有りませんでした(泣)。

仕方ないので秋月でFT232RLを搭載したUSBシリアル変換モジュールを買ってきました。このモジュールはシリアル側のI/Oの電圧レベルを3.3Vと5Vとジャンパー設定で切り替えられ、結構便利に使えるモジュールです。

こいつとKURO-Z/NAS-KITを接続してみましょう。このUSBシリアル変換モジュールのTXD,RXDをそれぞれKURO-Z/NAS-KITのRXD,TXDポートと思われるJ1コネクターとワイヤーで接続します。また、レベル安定化の為にGNDも接続します。

写真の一番左からの1PinがTXD、5pinがRXD、7pinがGND

こいつにワイヤーを取り付け・・・

コネクターで合体でOK。ちなみに右から数えて
1pin:3.3V,2pin:TXD,3pin:RXD,空きPin,5pin:GNDとなっています

特に注意する事も無いですが、KURO-Z/NAS-KITのTXDはUSB変換モジュールのRXDに接続し、KURO-Z/NAS-KITのRXDはUSB変換モジュールのTXDに接続します。ボケーッとしてると同じ信号名で接続してしまいますから注意。

接続するとこんな感じです。

ケーブルが完成したら一度KURO-Z/NAS-KITと切り離し、ドライバーのインストールを行います。USBシリアル変換モジュールの取説にドライバーのDL出来るサイトとインストール方法が記載されているので困る事はないでしょう。

インストールが完了したらTera Termで接続してみます。全てを接続し、KURO-Z/NAS-KITの電源をON・・・ログが出てこない・・・そんなに甘くなかったかと思いつつ通信速度を変えて地道に接続レートを調べていきます。データシート見るとレートは調整可能で38400以下みたいに書いてあるのですが・・・うまく動きません。が!!!レートを115200にして再度KURO-Z/NAS-KITの電源を入れると・・・

キタ━━━━━━━━━━━━━━━━(゚∀゚)━━━━━━━━━━━━━━━━!!!!!!

Tera TermからBootログが出力されました!!!BifferboardのシリアルConsoleが115200で接続するので、いよいよBifferboardがベース回路の可能性が高そうです。

シリアルの設定は以下になります。

ボーレート:115200
データ:8bit
パリティ:none
ストップ:1bit
フロー制御:none

コレでOK。

って事でログをコピペしました。

-==================================-
Boot Loader [LOADER32 1.20e]
Press <ESC> to enter extra mode
-==================================-

SB PCI reg 0x48 = 00078006
GPIO18 = 0
Active to LAN Disk.
CPU ID: 0x0
Default MAC: 00:B3:F6:00:11:56
Initialize MAC & PHY...OK.
Default IP: 169.254.0.1

Boot the kernel from 0x00F51000 ...




==========================================
CodeTek R32XX [NET Disk] R3282-1.54e
Hardware Version : 1007 Speed 150MHz
==========================================
System running!....
PPP software module initialization
HTTPS_Task(): HTTPS Initial done, port 80.
Line print server listening at port 515...
SEARCH_Task(): SEARCH Initial done.
Wait IDE device ready...ppp0 New Phase[INITIALIZE]
PPPOE send PADI...
DHCPS_Start:Detect another DHCP Server!
DHCPC: Bind IP (192.168.1.17) OK.
High Speed Device Attach
USB Mass Storage device found at addr 1
LUN 0, IDE 0 ,Partition 0 ,Mount C: OK
FS_OpenDir: device not found!

<UPNP> UPNPAV is UP.
CMD>ITUNES_Task: Initial done.
SOAP_Task(): SOAP Initial done.
UPNP_Task(): UPNP AV Initial done.
SMB_Task(): SMB Initial done.
retry! PPPOE send PADI...
retry! PPPOE send PADI...
retry! PPPOE send PADI...
Timeout waiting for PADO packets
ppp0 New Phase[DEAD]
NET_PppEvent(): lower layer device down!
ppp0 Same Phase[DEAD]

ひとまずシリアル通信するところまで出来ました。

ログが出力された後にEnterを押すと「CMD>」とコマンドプロンプトが現れます。ココで色々試してみたのですが、「help」コマンドで出力されるコマンドがサポートされているコマンドみたいです。

Linuxのログイン画面とか何かが出てくるのかな?って思っていたのですが、甘くありませんね。

BifferboardのHPを見てるとOSをDebian化したりしているみたいです。Linuxがそもそも分かってないのでこの先は???って感じです。勉強しながら進めるしかないですね。

JTAG接続を試みる

ひとまずシリアル端子でログ取りが出来るようになったので、次はJTAG端子に接続してみます。

ネット上に落ちている、R8610のDEMOボードの資料を見てるとその資料の中にJTAG関連の中に「RDC Loader」というJTAG接続用のデバックツールも入っていました。このツールが有るとFlashメモリの内容を吸い出せるかも・・・まだ詳しくは読んでいません。

BifferboardのHPにJTAGについて記載が有り、そこにパラレル端子に接続するアダプターの回路図が載っています。この回路図はBifferboardのJTAG接続ツール用みたいですが、R8610のJTAGアダプターの標準回路図みたいです。また、XILINXのDLC5というケーブルも使用可能らしいです。さらにXILINXのHPにはJTAG Programmer Guideが有りココにはXilinxの標準JTAG接続用のケーブル回路図があります。

さらに、Embedded Linux Systems consulting にR8610上でLinuxを動かす為の記載があります。ココを見るとこのSOCはチョット時代遅れのICって書いてありますね・・・まぁきにしないで解析を進めましょう。どちらにしてもR8610でLinuxを走らせていますので、KURO-Z/NAS-KITもLinuxの入れ替えが出来そうですね。

また、ページの下部にDLC5の内部回路図が載っています。この回路図を見るとBifferboardのJTAG回路図と殆ど同じでした。D-SUB25ピンコネクターの15ピンのエラー端子の処理が異なるようです。

で、N-Tecで作った回路は下記になります。

基本的にXILINXのDLC5の内部回路をフルコピーしてあります。ただ、JTAG接続ソフトがDsub25pinのERROR端子(15pin)を監視しているか不明の為、基本はERROR端子も動作するように回路を作りダメだったらGNDに落とせるようにしました(*1の部分)。BifferboardのJTAG接続ソフトはERROR端子を監視していないみたいです。

で完成したのがコレです。

こんな感じでPCのプリンターポートに直接接続しその先からケーブルをKURO-Z/NAS-KITに接続します。

接続用のケーブルも今回はフラットケーブルで作ってみました。

ケーブルが完成する為にはKURO-Z/NAS-KITがわのJ1pinヘッダー上のpin配置が分からないとどうにもなりません。今回はデータシートでJTAG端子のpin位置を調べその周りから出てきているパターンを追っかけて推測しました。下記のようになります。

pin配置を決めたところでひとまず、KURO-Z/NAS-KITとJTAGアダプタ基板を接続してみます。

電源を入れ、JTAG接続ソフトを起動してみると・・・うっ・・・デバイスを認識できません。

やっぱり・・・って思いながらも少しずつ動かない原因探しをします。

最初はパラレルポートで使っている端子が動いているか調べました。オシロで調べてみるとデータ線から何も出力していない事が分かりました。全く動いてないように見えます。・・・OSがパラレルポートへのアクセスを止めているのかな?って思いGIVEIO.sysも入れてみましたがダメでした。パラレルポートに関してはWIN98の方が有利って事で、試しましたが同様に動きません(RDCのJTAGソフトはWINXP用とWIN98用があったので全ての組み合わせ試してみたけどダメでした)。

基板改造が必要なのか?って思い、R8610のデータシートを調べてみました。JTAGモードでCPUを動かす為にはSTARAP11というpinをHレベルにプルアップしてやらないといけないみたいです。このpinはメモリバスのアドレスラインSA11と共用です。そこでKURO-Z/NAS-KITのU2 FLASHメモリのアドレスラインA11で調べてみるとこのpinはプルアップされていました。基板はJTAGが使えるように設計されているみたいです。

結局・・・この動かないところで数日はまってしまいました。

最後に回路図のERROR端子をGNDに落としてみました。基板がBifferboardと同様とするとJTAGアダプターもBifferboard用と同じにすれば動くかな?って思ったのです。そしてKURO-Z/NAS-KITの電源を入れてJTAG接続ソフトを起動してみると・・・

おおお!!見事にデバイスを認識しました。レジスターの中身を見る事が出来ました(正しく接続されているという保証は無しですが・・・)。これでフラッシュメモリにアクセス出来そうです。

・・・ただ、この後ERROR端子を元に戻しても起動するので、結局何が原因かは特定できていませんw

RDC Loaderの中にはFLASHメモリにデータを書き込む機能があります。ここでLinuxのバイナリデータがあれば見事にLinuxとして動くはずです。DEMOボードデータ一式の中にはLinuxのカーネルデータもあるみたいなのですが・・・よく分かりません。

ただ、現実問題として現状KURO-Z/NAS-KITが搭載しているFlashメモリは8Mbitです。Linuxを搭載するにはギリギリの容量みたいですのでメモリの拡張工事が必要になると考えています。

難航JTAG接続!!

JTAG接続がチョット難航しております。ひとまず、RDC Loaderとボードの接続は完了して通信が出来る状態にはなっているのですが・・・Flashへのアクセスがうまく行きません。xp用のツールだとFlash→PCへのFlashデータの移動が出来ません。(メニューとして選択できない)。PC→Flashでバイナリデータ送ることは可能です。しかしデータが途中でこけるみたいでベリファイで失敗しています。小さい容量のデータだとうまく書き込める時も有ります。DEMOボードデータの中にRedBoot.binというバイナリファイルもあったのですが、こいつは見事に読み込めて動作しました。98用のRDC LoaderだとFlash→PCも可能でした。しかしN-Tecで作った基板の性能が悪いのか・・・原因はまだ不明ですが、正しくデータを吸い上げる事が出来ていません。更に98用はメニュー等全ての表記が中国語?台湾語?表記で使いにくいのです。メニューとソフト自体の動作は全く同じなのでN-Tecではメニューの変換表を作って何とか踏ん張っております。

ただし、実際問題として怪しい点が有るんのも事実なのです。

@通信回路

通信波形は一見問題なさそうにも見えるのですが、もうチョット基板をちゃんと作ってみないとダメかもしれません。PCのパラレルポートのHレベルとLレベルの閾値(特にHレベル)の規格値が未だにハッキリしていないのでもしかしたらHレベルをまともに認識できていない可能性も有るのです。

現状はKURO-Z/NAS-KITからJTAG基板に電源を供給しているのですが、このKURO-Z/NAS-KITのI/O電圧が3.3Vです。実はパラレルポートは5Vで駆動して、データがまともに受けることが出来ない可能性もあります。

・・・ってことでひとまず5Vを供給してもう少しキレイにしっかり動くように基板を作り直してみようかと思っています。

AFlashが対応品ではない

コレは根本原因になり得る問題かもしれません。KURO-Z/NAS-KITに搭載されているEN29LV800BBは実はRDC LoaderのFlashメモリ対応リストに載っていないのです。RDC Loaderを起動してFlashツールでみるとFlashがUnknownになっているのです。ですので書き込み動作がうまく行かないのはこいつが原因なのかもしれません。

デバイスコードもメーカコードも読めていません。FlashSizeだけはOKと表示されました(チョット切れて見えていませんが・・・)

Flashメモリに関してはこの先容量アップも必要なのは間違い有りませんので使えそうなFlashメモリを注文することにしました。

RDC Loaderで制御できそうなメモリ最大容量は64Mbitとなっています。Flashメモリ対応リストで最大容量が64Mbitになっているのです。さらに、KURO-Z/NAS-KITが元々搭載していたEON製だったので同じメーカーなら相性問題も少ないはずです。こんな安易な発想でEN29LV640を注文しました。

Flashメモリ対応リストだとEN29LV640は640xxxと末尾の型番が記載されていないので、何でもOKかも・・・と期待しての選択です。EN29LV640の次の文字がH or LでセクターのWriteProtect方法が異なるみたいなのです。まだ詳しくデータシートは読んでいないのですが、まぁ注文しちゃいましたw

Flashのデータを吸い出す

データの書き込み読み込みは、本来JTAG経由でFlashメモリへのアクセスが確立するまで行わないつもりだったのです。しかし、RDC Loaderをいじってて間違ってRedBootを書き込んでしまい、その後グチャグチャやっていたのですが全く話が進まないので、別に準備したKURO-Z/NAS-KIT基板からFlashをはがしてROMライターで読ませてみました。

ひとまずコテ2本で地道にはがしました。パターンが浮き気味ですがひとまず切れたりしていません。

基板からはがしたFlashメモリをROMライターで吸い出すと接触とかでうまく吸い出せないことが多いのですが、今回はうまくいきました。念のため数回吸い出してデータ比較しましたが問題なかったです。

(バイナリデータを公開したいのですが、著作権的にNGでしょうから公開はしません。玄人志向ってCFD販売が親会社ですからそっちに直接問い合わせて公開OKを貰ったら公開しようと思います。・・・多分無理でしょうねぇ。ソフトはソフトで別会社に委託しているみたいです。バイナリデータの中に会社名が入っていました。)・・・てか、玄人志向のHPにもCFD販売のHPにもメールでの問い合わせ先が載っていない。そもそもキワモノシリーズの商品だからどうにもならないのかも・・・

64M Flashが届きました

64MbitのFlashメモリが届いたのでひとまず写真を撮りました。

EONのマークが変わっていました。買収されちゃったのでしょうか?

Flashが届いたのでおもむろに実装しました。実装は今までずーっとやってるので得意です。もっともっと狭ピッチでもいけるぜw

・・・実装してRDC Loaderを動かしてみましたが、やはりデバイスを正しく認識しませんでした。RDCのデモ基板の回路図元に回路を追っかけているのですが・・・KURO-Z/NAS-KITの基板もフルコピーだと思うんですけどねぇ。

RedbootベースでLinuxをbootさせることを考える

Redbootってこの基板をいじるまで知りませんでした。フリーのブートローダーみたいです。PCで言うとBIOSですね。N-Tec的にはflashにRDC DTで自由に書き込み・読み出しが出来ればLinuxも一緒に書くことが出来る!!って考えていたのですが、イマイチFlashメモリへのアクセス動作が良くありませんので、チョット別のアプローチを試みてみます。

それでRedBootって物がどんな物か調べてみました。フリーのシステムブートローダーでこれだけでも色々出来るみたいです。ザザッと使えそうな項目をリストアップすると・・・IPアドレスを設定できる。PC上のファイルをDRAMに転送できる。DRAMのデータをFlashに書き込むことが出来る。

こんな感じで色々いじれるみたいです。そもそも組み込みLinuxの世界ではRedbootはよく使われているみたいです。PCのファイルをDRAMに展開出来ますから、Flashに書き込まなくても実験が出来る・・・って話みたいです。RDCのデモボードの資料の中にもRedbootについて記載されている物も有りますからこの辺をもう一回読んで見ないとダメです。

普段はブートローダーをいじってシステムを動かすような仕事はしたことが無かったのでついでに勉強しながら進めていこうと思っています。

 

 

 

 

TOPに戻る MENUに戻る electricalに戻る