Right now, only a few examples of some registers are here. I have a lot to gather, and
it take a lot of time. I expect to type up some paper notes i have all over my room,
regarding the GPU.
今ちょうど、いくつかのレジスタの少数の例だけがここにあります。
私は非常に集まらなければなりません、そしてそれ、多くの時間をとる。
私はある程度の論文をタイプするつもりです、iに注意する、GPUに関して、私の部屋の至る所で持っている。
I don't have the faintest idea of what these do. 私はこれらが何を行うかというfaintest考えを持っていません。 0x1f801014 - spu_delay (???) 0x1f801018 - dv5_delay (???) 0x1f801020 - com_delay (Common Delay) (???) -------- 0x1f801040 - sio - シリアル入出力 - メモリカード 0x1f801040 - unsigned char data; 0x1f801044 - unsigned short status; 0x1f80104a - unsigned short cntl; 0x1f80104e - unsigned short baud; 0x1f801050 - sio - シリアル入出力
These are related to the Serial Interface. I didn't bother figuring how to work with
them, since i don't have a serial cable that could help testing, nor it's important to me
right now.
これらはシリアルインターフェースと関係があります。
私は、わざわざそれらで働く方法を図に表わしませんでした、i以来、持っていない、1つの、連続する、それが試験を支援するかもしれないと打電する、および、それは、私にとって今ちょうど重要です。
-------- 0x1f801060 - RAMサイズ. 通常0xb88を設定 -------- 0x1f801070 - i_reg 0x1f801074 - i_mask
Interrupt mask & interrupt pending state. Source code to understand this will
follow soon.
割込みマスクと割込み保留状態。
これを理解するソース・コードはすぐに続くでしょう。
-------- DMAチャンネル: - 全てのDMAチャンネルのレジスタは同じ構造を持っています。 ベースアドレス + 0x00 = メモリアドレス ベースアドレス + 0x04 = サイズ/チャンネル依存 ベースアドレス + 0x08 = 制御レジスタ - 各チャンネルはd_pcrレジスタに予約ビットがあります。 - あるチャンネルのDMA転送の終了を待つ/検出するには、下記を行います: while (*dX_chcr & 0x01000000) ; Xはチャンネル番号 いくつかのソースコードはすぐに続きます。 ---- DMAチャンネル0 - ベース 0x1f801080 0x1f801080 - d0_madr - MDEC in - DMAメモリアドレス 0x1f801084 - d0_bcr - MDEC in - DMAブロック(?)制御(?)レジスタ(サイズ) 0x1f801088 - d0_chcr - MDEC in - DMAチャンネル制御レジスタ このDMAチャンネルはMDECエンジンに圧縮データを与えるために使用されます。 ---- DMAチャンネル1 - ベース 0x1f801090 0x1f801090 - d1_madr - MDEC out - DMAメモリアドレス 0x1f801094 - d1_bcr - MDEC out - DMAブロック(?)制御(?)レジスタ(サイズ) 0x1f801098 - d1_chcr - MDEC out - DMAチャンネル制御レジスタ このDMAチャンネルはMDECエンジンから展開データを得るために使用されます。 ---- DMAチャンネル2 - ベース 0x1f8010a0 0x1f8010a0 - d2_madr - GPU - DMAメモリアドレス 0x1f8010a4 - d2_bcr - GPU - DMAブロック(?)制御(?)レジスタ(サイズ) 0x1f8010a8 - d2_chcr - GPU - DMAチャンネル制御レジスタ
このDMAチャンネルは、VRAMへの画像データのアップロード/ダウンロードと、コマンドバッファを送るのに使用されます。最初にVRAMの領域を設定する必要があります。
*gp1 = 0x04000002/MEM2VRAM 0x04000003/VRAM2MEM *d2_madr = メモリアドレス *d2_bcr = ((size) << 16) | 16 サイズは16の倍数でなければならない *d2_chcr=0x01000201/MEM2VRAM 0x01000200/VRAM2MEM 転送開始 プリミティブのリンクリストを送る: *gp1=0x04000002; *d2_madr=mem addr *d2_bcr=0 *d2_chcr=0x01000401 ---- DMAチャンネル3 - ベース 0x1f8010b0 0x1f8010b0 - d3_madr - CDROM - DMAメモリアドレス 0x1f8010b4 - d3_bcr - CDROM - DMAブロック(?)制御(?)レジスタ(サイズ) 0x1f8010b8 - d3_chcr - CDROM - DMAチャンネル制御レジスタ このチャンネルを通してCD-ROMからデータを得ます。 ---- DMAチャンネル4 - ベース 0x1f8010c0 0x1f8010c0 - d4_madr - SPU DMAメモリアドレス 0x1f8010c4 - d4_bcr - SPU DMAブロック(?)制御(?)レジスタ(サイズ) 0x1f8010c8 - d4_chcr - SPU DMAチャンネル制御レジスタ メモリとサウンドプロセッサユニット(SPU)間の転送 ---- DMAチャンネル5 - ベース 0x1f8010d0 0x1f8010d0 - d5_madr - ??? - DMAメモリアドレス 0x1f8010d4 - d5_bcr - ??? - DMAブロック(?)制御(?)レジスタ(サイズ) 0x1f8010d8 - d5_chcr - ??? - DMAチャンネル制御レジスタ このチャンネルが何に使われているか私は知りません(たぶん覚えていない)。 ---- DMAチャンネル6 - ベース 0x1f8010e0 0x1f8010e0 - d6_madr - OTC - DMAメモリアドレス 0x1f8010e4 - d6_bcr - OTC - DMAブロック(?)制御(?)レジスタ(サイズ) 0x1f8010e8 - d6_chcr - OTC - DMAチャンネル制御レジスタ このDMAチャンネルはオーダリングテーブルを逆順にクリアするために使用されます。ClearOTagRで使用されています。 *d_pcr | = 0x08000000 *d6_chcr = 0 *d6_madr = 最後のot[]要素のアドレス *d6_bcr = otの要素サイズ *d6_chcr = 0x11000002 , 転送開始 0x1f8010f0 d_pcr 0x1f8010f4 d_icr
These are DMA control registers. Allows to enable/disable, configure(?), get/set
status, etc...This will deserve a seperate document as i have the Dma routines reversed in
working C. Just a little sample, to enable/reset a DMA Channel, do the following:
これらはDMA制御レジスタです。
有効/無効、configure(?)、ステータスの取得/設定などを行います。
これはiとしてseperateドキュメントに相当するでしょう、C.をちょうど少し動かす際にDmaルーチンを逆にする、サンプル、可能にするために、/、DMAチャンネル(DMA Channel)をリセットし、下記を行います:
*d_pcr |= (8 << channel_number << 4)
-------- 0x1f801100 - t0_count 0x1f801104 - t0_mode 0x1f801108 - t0_target 0x1f801110 - t1_count 0x1f801114 - t1_mode 0x1f801118 - t1_target 0x1f801120 - t2_count 0x1f801124 - t2_mode 0x1f801128 - t2_target これらはルートカウンタのハードウェアレジスタです。 -------- 0x1f801800 - reg0 0x1f801801 - reg1 0x1f801802 - reg2 0x1f801803 - reg3 これら4つはCD-ROMの制御に使用されます。 -------- 0x1f801810 - gp0 0x1f801814 - gp1 These are used to control the GPU, send commands, set the environment, etc... These deserve a complete document. Click here for a quick version. これらはコマンド送信、環境の設定など、GPUを制御するために使用されます。 これらは完全なドキュメントに相当します。クイック版はここをクリックしてください。 -------- 0x1f801820 - mdec0 0x1f801824 - mdec1 MDECエンジンの制御 --------- これらは間違っているかもしれません。 0x1f801c00 - spu_madr - SPU - DMAメモリアドレス (== spu == spi_RXX) 0x1f801c04 - spu_bcr - SPU - DMAブロック(?)制御(?)レジスタ(サイズ) 0x1f801c08 - spu_chcr - SPU - DMAチャンネル制御レジスタ SPU DMAチャンネル -------- 0x1f802030 - int_2000 0x1f802040 - Dipスイッチ (何のためか知らないが、ROM内で示されている) Dont have the faintest idea...Dip switches might be related to the Development Boards. faintest ideaはありません。Dipスイッチは開発ボードと関係あるかもしれません。