« 玄箱ProとPCI Express | トップページ | 玄箱ProのMarvel社製ARMのJTAGデバッグ »

2007.03.19

玄箱ProのPCI Express(続き)

玄箱Proの起動時におけるPCI Expressパケットを解析してみました。

まず驚いたことは、Configレジスタのアクセスがすべて32bit単位で行われてくることです。
たとえば、PCIのコマンドレジスタを読み出す場合は、04番地から2バイトを読み出すわけですが、PCIやPCI Expressは基本的に32bit単位でのアクセスなので、バイトイネーブルという機能を使って目的の2バイトを取り出すのが普通です。

ところが、玄箱Proでは、書き込みも含めて、すべてのコンフィグレジスタアクセスが32bitで送られてくるのです。
読み出しならば32bit単位で読み出してもそれほど問題はありませんが、書き込みを32bit単位でやるのは少々抵抗を感じます。
また、Messageパケットというものが1つも送られてこなかったのも特徴的です。

さて、昨日のブログでは、玄箱Proの起動画面で、
 pexBarOverlapDetect: winNum 2 overlap current 0
 mvPexInit:Warning :Bar 2 size is illigal
 it will be disabled
というメッセージが出ている、と書きましたが、BAR2のレジスタを実装しても、このメッセージは消えませんでした。

ですが、その前後のPCI Expressパケットを解析しても、特に問題になりそうなところは見つかりません。
このエラーっぽいメッセージは、どうやらハード的な問題ではなさそうです。

詳しくはわかりませんが、玄箱Proに入っている「Linux version 2.6.12.6-arm1」が、何か特定のPCI Expressカードを対象にコンパイルされてしまっているのではないかと思われます。
とにかく、PCI Expressは正しく認識されて、すべてが起動したあとに、BAR0空間がアドレス0xE0000000に割り当てられたところまでは確認できました。

あまり役に立つ情報ではありませんが、玄箱ProのPCI Expressパケットを解析した結果を、ここにアップロードしておきます。ご興味のある方は参考にしてください。内容の保証はいたしません。

|

« 玄箱ProとPCI Express | トップページ | 玄箱ProのMarvel社製ARMのJTAGデバッグ »

コメント

苦節2年、玄箱ProのPCI Expressを自作機器で使えるようになりました。
https://nahitafu.cocolog-nifty.com/nahitafu/2009/04/propci-express-.html

投稿: なひたふ | 2009.04.20 23:33

コメントを書く



(ウェブ上には掲載しません)




« 玄箱ProとPCI Express | トップページ | 玄箱ProのMarvel社製ARMのJTAGデバッグ »