Interface増刊テックアイ Vol.3

PCIデバイス設計入門

本書掲載記事内容の
訂正&補足説明


●第1章
▲p.7 表2中
I/Oサイクル  I/Oライト “L”“L”“H”“H”

●第3章
▲p.69 図11右上 矢印の位置

●第5章
▲p.86 リスト3 CFG_Int_Lineの代入部分

    (中略)
  when "001111" =>   -- 割り込み関連レジスタ
    PCIAD_Port(31 downto 16) <= (others => '0');
    PCIAD_Port(15 downto  8) <= CFG_Int_Pin;
    PCIAD_Port( 7 downto  4) <= (others => '0'); ←この行削除
    PCIAD_Port( 3 7 downto  0) <= CFG_Int_Line;  ←7 downto 0に

●特別講座2
▲p.116 リスト10 (b) 矢印の位置

●第7章
▲p.129 表1
・5VシステムのサイドAの8番ピンは“+5V(I/O)”ではなくて“+5V
・3.3VシステムのサイドAの8番ピンは“+3.3V(I/O)”ではなくて“+5V

●第10章
▲p.189 表11(a)
 表11(a)は5V品のDCスペックのみ掲載されている。
(a-1)5V品のDCスペック


(a-2)3.3V品のDCスペック

●第11章
▲p.194 図2左下 CPUメモリ空間の上位部分

▲p.201 右側上から2行目以下の部分の文章中の(リスト1のA)の位置

 まずそのマシンがコンフィグレーションメカニズム1に対応しているかを調べます.コンフィグレーション情報表示ツールREDPCI.COMを実行すればわかります(リスト1のA)
 次にIO.COMを起動して,0CF8hに読み出したいPCIデバイスのコンフィグレーションアドレスを設定します.リスト1の例でバス番号0,デバイス番号7,ファンクション番号3のデバイスのベンダIDを読む場合は,80003B00hを設定します.
  IO>CF8 L 80003B00[リターン]
そして0CFChをワードサイズで読み出すと,ベンダIDが取得できます(リスト1のA)←ここに追加
  IO>CFC W[リターン]
  0CFC=8086
インテル製チップセットのデバイスなので,インテルのベンダIDを示す8086hが読み出せました.

▲p.202 リスト1 Aの指示部分を追加

  C:\>REDPCI
  Special Cycle Generation on Configuration Mechanism #2 : Not Supported
  Special Cycle Generation on Configuration Mechanism #1 : Not Supported
  Configuration Mechanism #2 : Not Supported
  Configuration Mechanism #1 : Supported
  PCI BIOS Interface Level Version : 02.10
  Number of Last PCI bus :   1
  Bus Dev Fnc VendorID DevID Rev
    0   0   0   8086h  7180h 03h Intel 82443LX PCI System Controller
    0   1   0   8086h  7181h 03h Intel 82443LX PCI-PCI(AGP) bridge
    +1
    0   7   0   8086h  7110h 01h Intel 82371AB PIIX4 PCI-ISA bridge
    0   7   1   8086h  7111h 01h Intel 82371AB PIIX4 IDE Controller
    0   7   2   8086h  7112h 01h Intel 82371AB PIIX4 USB Controller
    0   7   3   8086h  7113h 01h Intel 82371AB PIIX4 Power management Controller
    0  10   0   104Eh  0611h B3h Oak Technology Inc Audio 3D OTI610 Audio Device
    0  20   0   8086h  1229h 04h Intel 82557 100/10Base Ethernet Controller
    1   0   0   12D2h  0018h 10h Nvidia/SGS Thomson Riva128 (AGP) VGA Controller

  C:\>IO
  I/O INDEX ACCESS version 1.30 1997/07/25 by SUGAWARA
  IO>CF8 L 80003B00
  0CF8=8000_3B00
  IO>CFC W
  0CFC=8086 ←A    ←ここにAを追加
  IO>

▲p.208 リスト2(a)と(b) PCIバスバージョンチェック部分

    MOV     AX,0B101H
    INT     1AH
    JB      (PCI BIOSが無い場合の処理へ)
    CMP     AH,0
    JNE     (PCI BIOSが無い場合の処理へ)
    CMP     EDX,20494350H  ;'PCI 'ASCII文字列
    JNE     (PCI BIOSが無い場合の処理へ)
    CMP     BX,3230H       ;'0200'
    CMP     BX,0200H       ; Ver 02.00  ←ASCIIコードではなくBCDで
    JB      (PCIバス仕様 Rer2.0より前の場合の処理へ)
    〜      (PCIバス仕様 Rev2.0以降の場合の処理)

      (a)PCI BIOSの存在確認(32ビット対応アセンブラ)


    MOV     AX,0B101H
    INT     1AH
    JB      (PCI BIOSが無い場合の処理へ)
    CMP     AH,0
    JNE     (PCI BIOSが無い場合の処理へ)
    DB      66h            ;以下3行で CMP EDX,20494350H
    CMP     DX,4350h
    DW      2049h
    JNE     (PCI BIOSが無い場合の処理へ)
    CMP     BX,3230H       ;'0200'
    CMP     BX,0200H       ; Ver 02.00  ←ASCIIコードではなくBCDで
    JB      (PCIバス仕様 Rer2.0より前の場合の処理へ)
    〜      (PCIバス仕様 Rev2.0以降の場合の処理)

      (b)PCI BIOSの存在確認(16ビット対応アセンブラ)

●第12章
▲p.217 リスト4 ダンプ表示コマンド

       (中略)
  IO>0-FF L    ←I/Oポート00h〜FFhまでダブルワードでダンプ表示  ←ダンプ表示はバイトサイズのみ
       +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
  0000 00 7F 64 05 D0 FF 80 80 06 00 00 00 00 00 00 00
  0010 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  0020 00 B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  0030 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
       (中略)


ページを戻る