GPIO30-GPIO37 というラベルの付いた 8 つの I/O ラインを提供するヘッダーを持つ Jetway NF81-T56 マザーボードがあります。私の CentOS6 インストールには GPIO ドライバーがなく、ドライバーを作成しようとしています。Fintek F71869 Super IO チップは、GPIO およびその他の I/O 機能を提供します。0x2e/0x2f ポート経由で GPIO3 レジスタにアクセスして変更できますが、F71869 GPIO レジスタに設定された GPIO BASE_ADDR を使用してデータ ポートにアクセスできませんでした。これらのレジスタを読み取ったところ、GPIO BASE_ADDR が 0x0a00 に設定されています。チップのマニュアルページには次のように記載されています。
インデックス ポートは BASE_ADDR[15:2] + 5 で、データ ポートは BASE_ADDR[15:2] + 6 です。
データ ポートを 0x0f (接続された LED で表示) に設定し、ポート 0x0a00-0x0a7f を読み取ろうとしました。すべてが 0x0f ではなく 0xff を返しました。「BASE_ADDR[15:2]」表記構文を解釈する方法を知っている人はいますか? インターネットで調べたり、メーカーに問い合わせたりしましたが、だめでした。