Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO ■NESA-FOレジスタ 対象 PC-H98 チップ NESA-FO 解説 o PC-H98シリーズは、NESA(New Extended Standard Architecture)と名付けら れたアーキテクチャを採用している。NESAはおもにバスアーキテクチャであ るが、資源を統一的に管理する機構を有している。 o NESA搭載機の拡張スロット(NESAスロット)には、従来オプションボードを 使用するためのCバスコネクタ、およびNESA対応オプションボードを使用する ためのEバスコネクタを持つ。 図1: NESAスロットの構造 -------------------------------------------------------------- +--------------------+ +--------------------+ | Eバス | | Eバス | +--------------------+ +--------------------+ +--------------------------------------------+ -- | Cバス | -- -- +--------------------------------------------+ --ボード面 * NESAスロットのEバスコネクタとCバスコネクタは、ボード面からの 物理的な高さが異なり、Cバスのオプションボードはカードエッヂ コネクタに挿さり、NESA対応ボードはEバスコネクタに接続される。 * 通常、単にNESAバスと言う場合はEバスコネクタ側に出てきている 信号の方を指す。 -------------------------------------------------------------- o NESA-FO(NewExtendedStandardArchitecture-FlexibleOption)とはNESAバスに 接続される各種ハードウェアの環境などを、ソフトウェアから統一的に設定 するための機構である。NESA-FOはディップスイッチ等による設定を廃し、 SSP(SystemSetupProgram)やASP(AutoSetupProgram)で自動的にハードェア環境 を設定するための機能を提供する。 o NESA-FOレジスタは、CPUのI/O空間にマッピングされる。マッピングアドレス は、各拡張スロットやハードディスク専用スロット、本体内蔵デバイスごとに 一意的に決められ、NESA-FOレジスタ自体の衝突はおきない。同種のNESA対応 ボードを複数枚実装した場合にも、確実に目的のボードに対してアクセスを 行う事が可能である。なお、NESA-FOレジスタ自体はI/O空間の8xDnhおよび 8xEnh、すなわちユーザー解放I/Oアドレス空間を使用している。 表1: NESA-FOレジスタのマッピング ------------------------------------------------------------------- 15 8 7 0 I/Oアドレス 1000 nnnn mmmm xxxx | | | | | +-------- レジスタ番号 | +------------- 物理スロットに対応 +------------------ デバイス種別に対応 ------------------------------------------------------------------- 表2: 物理スロット番号とスロットの対応 ----------------+---------------------------------- 物理スロット番号|スロット名 ----------------+---------------------------------- 00h |欠番 01h |拡張スロット#1 02h |拡張スロット#2 03h |拡張スロット#3 04h |拡張スロット#4 05h |リザーブ 06h |HDC専用スロット 07h |CRTC専用スロット 08〜0Eh |リザーブ 0Fh |I/O拡張ユニット(Undocumented) ----------------+---------------------------------- 表3: デバイス種別値とデバイス種別の対応 ----------------+---------------------------------- デバイス種別値 |デバイス種別 ----------------+---------------------------------- 1101b |本体内蔵システム専用スロット 1110b |拡張ボックス内オプションスロット ----------------+---------------------------------- o NESAアーキテクチャでは、Cバスの従来オプションボードのI/Oスレーブ、 およびNESAバス(Eバス)のオプションボードのために以下のI/O空間の使用 を許している。 表4: NESA搭載機でCバスI/Oスレーブとして使用可能なI/Oアドレス ---------------------------- xnD0〜xnDFh xnE0〜xnEFh * nは0000〜0111b * xはDon't care ---------------------------- 表5: NESAオプションボードのI/Oスレーブとして使用可能なI/Oアドレス ---------------------------- mnD0〜mnDFh mnE0〜mnEFh * nは1001〜1111b * mは0000〜0111b ---------------------------- o NESAアーキテクチャにおける各種オプションボードのための解放I/Oアドレス を以下に列挙する。 表6: I/Oスレーブとして使用可能なI/Oアドレス ------------------------------------------------------------- xnD0〜xnDFh CバスI/Oスレーブのために解放 xnE0〜xnEFh CバスI/Oスレーブのために解放 8mD0〜8mDFh NESA-FOレジスタ 8mE0〜8mEFh NESA-FOレジスタ 9nD0〜9nDFh NESAバスI/Oスレーブのために解放 9nE0〜9nEFh NESAバスI/Oスレーブのために解放 AnD0〜AnDFh NESAバスI/Oスレーブのために解放 AnD0〜AnDFh NESAバスI/Oスレーブのために解放 BnD0〜BnDFh NESAバスI/Oスレーブのために解放 BnD0〜BnDFh NESAバスI/Oスレーブのために解放 CnD0〜CnDFh NESAバスI/Oスレーブのために解放 CnD0〜CnDFh NESAバスI/Oスレーブのために解放 DnD0〜DnDFh NESAバスI/Oスレーブのために解放 DnD0〜DnDFh NESAバスI/Oスレーブのために解放 EnD0〜EnDFh NESAバスI/Oスレーブのために解放 EnD0〜EnDFh NESAバスI/Oスレーブのために解放 FnD0〜FnDFh NESAバスI/Oスレーブのために解放 FnD0〜FnDFh NESAバスI/Oスレーブのために解放 * xはDon't care * nは0000〜0111b * mは基本的に0000〜0111b。ただし、オプションボード以外のNESA デバイスのNESA-FOレジスタのインタフェースも同様であるため、 mは1000〜1111bの値も取りうる。 ------------------------------------------------------------- 関連 0000:0458h bit 7 INT 1Fh - Functions C0h INT 1Fh - Functions C1h INT 1Fh - Functions C2h INT 1Fh - Functions C3h INT 1Fh - Functions C4h INT 1Fh - Functions C5h INT 1Fh - Functions C6h INT 1Fh - Functions C7h I/O 8nm0h 名前 NESA-FOレジスタ0 機能 ■[E^2PROM,PROM,FD媒体] [READ] レジスタ0リード(機能ID1) bit 7〜0: ボードメーカ・コード1 [WRITE] なし ■[PAL] [READ] なし [WRITE] レジスタ0ライト(機能ID1) 解説 o NESA-FOレジスタ0の読み書きを行う。 o ボードメーカコードの下位8bitを示す。 関連 I/O 8nm2h I/O 8nm1h 名前 NESA-FOレジスタ1 機能 ■[E^2PROM] [READ] レジスタ1リード(データロードレジスタ) bit 7: EDO E^2PROMからのデータ出力 bit 6: ECL E^2PROMのクロック入力 bit 5: ECS チップセレクト bit 4: EDI データ入力 bit 3〜0: 未使用(0000b) [WRITE] レジスタ1ライト(データロードレジスタ) bit 7: 0 bit 6: ECL E^2PROMのクロック入力 bit 5: ECS チップセレクト bit 4: EDI データ入力 bit 3〜0: 未使用(0000b) ■[PROM] [READ] レジスタ1リード(データロードレジスタ) bit 7〜0: ROM/PALリードデータ [WRITE] レジスタ1ライト(データロードレジスタ) bit 7: ACC NESA-FOのアドレスカウンタリセット 1= カウンタにリセットパルスが出る 0= 通常 bit 6〜0: 未使用(000000b) ■[FD媒体] [READ] レジスタ1リード(データロードレジスタ) [WRITE] レジスタ1ライト(データロードレジスタ) ■[PAL] [READ] レジスタ1リード(セットアップデータリードバイト1) [WRITE] なし[PAL] 解説 o NESA-FOレジスタ1の読み書きを行う。 関連 I/O 8nm0h I/O 8nm2h 名前 NESA-FOレジスタ2 機能 ■[E^2PROM,PROM,FD媒体] [READ] レジスタ2リード(機能ID2) bit 7〜0: ボードメーカ・コード2 * ボードメーカ・コード1,2は、ボードメーカ名(大文字アルファベット 3文字)をアスキーコードにし、それを2バイトに圧縮したもの 一般ユーザー用のボードメーカーコード6C00h〜6FFFh [WRITE] なし ■[PAL] [READ] なし [WRITE] レジスタ2ライト(機能ID2) 解説 o NESA-FOレジスタ2の読み書きを行う。 o ボードメーカコードの上位8bitを示す。 関連 I/O 8nm0h I/O 8nm3h 名前 NESA-FOレジスタ3 機能 ■[E^2PROM,PROM,FD媒体] [READ] なし [WRITE] レジスタ3ライト ■[PAL] [READ] レジスタ3リード(セットアップデータリードバイト2) [WRITE] なし 解説 o NESA-FOレジスタ3に読み書きを行う。 関連 I/O 8nm4h 名前 NESA-FOレジスタ4 機能 ■[E^2PROM,PROM,FD媒体] [READ] レジスタ4リード(機能ID3) bit 7〜0: 製品コード ボードに一対一で対応する製品コード NEC製のNESAデバイスの製品コードは以下の通りである。 表 製品コードと製品名の対応例(Undocumented) ----------+----------------------------- 製品コード|製品名 ----------+----------------------------- 02h |PC-H98/70-E02(ESDI 100MB HDD) 03h |PC-H98S/8-E02(SCSI 100MB HDD) 04h |PC-H98-B02(2MBメモリボード) ----------+----------------------------- [WRITE] なし ■[PAL] [READ] なし [WRITE] レジスタ4ライト(機能ID3) 解説 o NESA-FOレジスタ4に読み書きを行う。 o ボードに対応した製品コードを示す。 関連 I/O 8nm5h 名前 NESA-FOレジスタ5 機能 ■[E^2PROM,PROM,FD媒体] [READ] なし [WRITE] レジスタ5ライト ■[PAL] [READ] レジスタ5リード(セットアップデータリードバイト3) [WRITE] なし 解説 o NESA-FOレジスタ5に読み書きを行う。 関連 I/O 8nm6h 名前 NESA-FOレジスタ6 機能 ■[E^2PROM,PROM,FD媒体] [READ] レジスタ6リード(機能ID4) bit 7〜4: コンプ・コード * ボードの改版による版数 bit 3,2 :ボード区分 11b= 未実装 10b= リザーブ 01b= 新ボード(NESAボード) 00b= 従来ボード(Cバス) bit 1,0: セットアップ情報タイプ 11b= E^2PROM 10b= PROM 01b= PAL 00b= FD媒体または情報なし [WRITE] なし ■[PAL] [READ] なし [WRITE] レジスタ6ライト(機能ID4) 解説 o NESA-FOレジスタ6に読み書きを行う。 関連 I/O 8nm7h 名前 NESA-FOレジスタ7 機能 ■[E^2PROM,PROM,FD媒体] [READ] なし [WRITE] レジスタ7ライト ■[PAL] [READ] レジスタ7リード(セットアップデータリードバイト4) [WRITE] なし 解説 o NESA-FOレジスタ7に読み書きを行う。 関連 I/O 8nm8h 名前 NESA-FOレジスタ8 機能 [READ] レジスタ8リード(ボードコントロール) bit 7,6: EINT1,EINT0 割り込みレベルセンス bit 5,4: INT1,INT0 割り込みレベルセンス(外付け用) 1= レベル割り込み発生時 0= レベル割り込み未発生状態(リセット時) * オプションボード側のデバイスから入力される割り込み要求信号 IN<1,0>の各チャンネルに対するレベルをセンスする。 bit 3: NMI NMIセンス 0= 通常(リセット時NMI未発生状態) 1= NMI発生中 bit 2,1: WAIT1,0 NESA-FOレジスタウェイト設定 00= 0ウェイト(リセット時) 01= 1ウェイト 10= 2ウェイト 11= 3ウェイト * ウェイトサイクルの追加を指定する。ただしBIOS ROMへのウェイト 指定は除く。 bit 0: BDE ボードイネーブル 0= Disable(リセット時) 1= Enable [WRITE] レジスタ8ライト(ボードコントロール) bit 7〜4: 未使用 bit 3: NMI NMIセンス 0= NMIクリア 1= NMI保存 bit 0: BDE ボードイネーブル 0= Disable 1= Enable * NESA-FOレジスタへのアクセスを除くボードの機能の有効/無効 を設定する。 解説 o NESA-FOレジスタ8に読み書きを行う。 関連 I/O 8nm9h 名前 NESA-FOレジスタ9 機能 ■[E^2PROM,PROM,FD媒体] [READ] なし [WRITE] レジスタ9ライト ■[PAL] [READ] レジスタ9リード(セットアップデータリードバイト5) [WRITE] なし 解説 o NESA-FOレジスタ9に読み書きを行う。 関連 I/O 8nmAh 名前 NESA-FOレジスタA 機能 ■[E^2PROM,PROM,FD媒体] [READ] なし [WRITE] レジスタ10ライト ■[PAL] [READ] なし [WRITE] レジスタ10ライト(DMA,割り込み,ウェイト数) bit 7〜5: A2〜0 不明 * 折り返し用のポートでNESA-FOチップでは機能しない bit 4: INTE/L 割り込み要求方法 0= レベル(リセット時) 1= エッジ * オプションボード側のデバイスから入力される割り込み要求信号 IN<1,0>を、エッジ/レベルどちらの方法で要求するのか設定する。 bit 3,2: INTCH11,INTCH10 bit 1,0: INTCH01,INTCH00 00b= IR0(リセット時,2チャンネルとも) 01b= IR1 10b= IR2 11b= IR3 * オプションボード側のデバイスから入力される割り込み要求信号 IN<1,0>をNESAバス側へ出力する割り込み要求信号群IR<3〜0>の どの端子に出力するのかを設定する。 解説 o NESA-FOレジスタ10に読み書きを行う。 関連 I/O 8nmBh 名前 NESA-FOレジスタB 機能 ■[E^2PROM,PROM,FD媒体] [READ] なし [WRITE] レジスタ11ライト ■[PAL] [READ] レジスタ11リード(セットアップデータリードバイト6) [WRITE] なし 解説 o NESA-FOレジスタ11に読み書きを行う。 I/O 8nmCh 名前 NESA-FOレジスタC 機能 ■[E^2PROM,PROM,FD媒体] [READ] なし [WRITE] レジスタ12ライト ■[PAL] [READ] なし [WRITE] bit 7: IOCS 0= PA/ADEデコード(リセット時)  (アドレス0nmXh X:0〜F→ICSアクティブ) 1= PAF/ADEデコード  (アドレスinmXh i:0〜7,X:0〜F→ICSアクティブ) * オプションボード側のI/Oデバイスに出力するI/Oチップセレクト 信号(ICS)のデコード条件を設定する。 bit 6,5: BWAIT1,BWAIT0 00b= 0ウェイト 01b= 1ウェイト 10b= 2ウェイト 11b= 3ウェイト(リセット時) * BIOS ROM読みだし時のウェイトサイクルの追加を指定する。 bit 4: DMAIORW 0= Enable(リセット時) 1= Disable * DMA時のIOR/IOWの出力の許可/禁止を指定する。 bit 3,2: DMATR11,DMATR10 DMA転送モード(DMA ch#1用) bit 1,0: DMATR01,DMATR00 DMA転送モード(DMA ch#0用) 00b= バイト転送モード(リセット時) 01b= ワード転送モード 10b= ダブルワード転送モード 11b= 禁止(DMA転送は行なわれない) * オプションボード側のデバイスから入力されるDMA要求信号DR<1,0> の各チャネルに対する転送モード(バイト/ワード/ダブルワード) を設定する。 DMA要求をしないチャネルの転送モードは、DMA要求をするチャ ネルの転送モードと一致させること。 解説 o NESA-FOレジスタ12に読み書きを行う。 I/O 8nmDh 名前 NESA-FOレジスタD 機能 ■[E^2PROM,PROM,FD媒体] [READ] なし [WRITE] レジスタ13ライト ■[PAL] [READ] レジスタ13リード(セットアップデータリードバイト7) [WRITE] なし 解説 o NESA-FOレジスタ13に読み書きを行う。 I/O 8nmEh 名前 NESA-FOレジスタE 機能 ■[E^2PROM,PROM,FD媒体] [READ] なし [WRITE] レジスタ14ライト ■[PAL] [READ] なし [WRITE] なし bit 7,6 :B1,B0 不明 * 折り返し用のポートでNESA-FOチップでは機能しない bit 5〜3: DMACH12〜10 bit 2〜0: DMACH02〜00 000b= RQ0 001b= RQ1 010b= RQ2 011b= RQ3 100b= RQ4 101b= RQ5 110b= RQ6 111b= 設定禁止 * オプションボード側のデバイスから入力されるDMA要求信号DR<1,0> をNESAバス側へ出力するDMA要求信号群RQ<6〜0>のどの端子に接続 するか設定する。 解説 o NESA-FOレジスタ14に読み書きを行う。 関連 I/O 8nmFh 名前 NESA-FOレジスタF 機能 ■[E^2PROM,PROM,FD媒体] [READ] なし [WRITE] レジスタ15ライト ■[PAL] [READ] レジスタ15リード(セットアップデータリードバイト8) [WRITE] なし 解説 o NESA-FOレジスタ15に読み書きを行う。 関連