summaryrefslogtreecommitdiff
path: root/Source/DirectFB/gfxdrivers/nvidia/nvidia_regs.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/DirectFB/gfxdrivers/nvidia/nvidia_regs.h')
-rwxr-xr-xSource/DirectFB/gfxdrivers/nvidia/nvidia_regs.h1636
1 files changed, 1636 insertions, 0 deletions
diff --git a/Source/DirectFB/gfxdrivers/nvidia/nvidia_regs.h b/Source/DirectFB/gfxdrivers/nvidia/nvidia_regs.h
new file mode 100755
index 0000000..64257cc
--- /dev/null
+++ b/Source/DirectFB/gfxdrivers/nvidia/nvidia_regs.h
@@ -0,0 +1,1636 @@
+#ifndef __NVIDIA_REGS_H__
+#define __NVIDIA_REGS_H__
+
+
+/* PMC */
+#define PMC 0x00000000
+
+
+
+/* PBUS */
+#define PBUS 0x00001000
+
+
+
+/* PFIFO */
+#define PFIFO 0x00002000
+
+#define PFIFO_DELAY_0 0x00002040
+#define PFIFO_DELAY_0_WAIT_RETRY_MSK 0x000003FF
+
+#define PFIFO_DMA_TIMESLICE 0x00002044
+#define PFIFO_DMA_TIMESLICE_SELECT_MSK 0x0001FFFF
+#define PFIFO_DMA_TIMESLICE_SELECT_1 0x00000000
+#define PFIFO_DMA_TIMESLICE_SELECT_16K 0x00003FFF
+#define PFIFO_DMA_TIMESLICE_SELECT_32K 0x00007FFF
+#define PFIFO_DMA_TIMESLICE_SELECT_64K 0x0000FFFF
+#define PFIFO_DMA_TIMESLICE_SELECT_128K 0x0001FFFF
+#define PFIFO_DMA_TIMESLICE_TIMEOUT_DISABLED 0x00000000
+#define PFIFO_DMA_TIMESLICE_TIMEOUT_ENABLED 0x01000000
+
+#define PFIFO_PIO_TIMESLICE 0x00002048
+#define PFIFO_PIO_TIMESLICE_SELECT_MSK 0x0001FFFF
+#define PFIFO_PIO_TIMESLICE_SELECT_1 0x00000000
+#define PFIFO_PIO_TIMESLICE_SELECT_16K 0x00003FFF
+#define PFIFO_PIO_TIMESLICE_SELECT_32K 0x00007FFF
+#define PFIFO_PIO_TIMESLICE_SELECT_64K 0x0000FFFF
+#define PFIFO_PIO_TIMESLICE_SELECT_128K 0x0001FFFF
+#define PFIFO_PIO_TIMESLICE_TIMEOUT_DISABLED 0x00000000
+#define PFIFO_PIO_TIMESLICE_TIMEOUT_ENABLED 0x01000000
+
+#define PFIFO_TIMESLICE 0x0000204C
+#define PFIFO_TIMESLICE_TIMER_MSK 0x0003FFFF
+
+#define PFIFO_NEXT_CHANNEL 0x00002050
+#define PFIFO_NEXT_CHANNEL_CHID_MSK 0x0000001F
+#define PFIFO_NEXT_CHANNEL_MODE_PIO 0x00000000
+#define PFIFO_NEXT_CHANNEL_MODE_DMA 0x00000100
+#define PFIFO_NEXT_CHANNEL_SWITCH_NOT_PENDING 0x00000000
+#define PFIFO_NEXT_CHANNEL_SWITCH_PENDING 0x00001000
+
+#define PFIFO_DEBUG_0 0x00002080
+#define PFIFO_DEBUG_0_CACHE_ERROR0_NOT_PENDING 0x00000000
+#define PFIFO_DEBUG_0_CACHE_ERROR0_PENDING 0x00000001
+#define PFIFO_DEBUG_0_CACHE_ERROR1_NOT_PENDING 0x00000000
+#define PFIFO_DEBUG_0_CACHE_ERROR1_PENDING 0x00000010
+
+#define PFIFO_INTR 0x00002100
+#define PFIFO_INTR_RESET 0xFFFFFFFF
+#define PFIFO_INTR_CACHE_ERROR_NOT_PENDING 0x00000000
+#define PFIFO_INTR_CACHE_ERROR_PENDING 0x00000001
+#define PFIFO_INTR_CACHE_ERROR_RESET 0x00000001
+#define PFIFO_INTR_RUNOUT_NOT_PENDING 0x00000000
+#define PFIFO_INTR_RUNOUT_PENDING 0x00000010
+#define PFIFO_INTR_RUNOUT_RESET 0x00000010
+#define PFIFO_INTR_RUNOUT_OVERFLOW_NOT_PENDING 0x00000000
+#define PFIFO_INTR_RUNOUT_OVERFLOW_PENDING 0x00000100
+#define PFIFO_INTR_RUNOUT_OVERFLOW_RESET 0x00000100
+#define PFIFO_INTR_DMA_PUSHER_NOT_PENDING 0x00000000
+#define PFIFO_INTR_DMA_PUSHER_PENDING 0x00001000
+#define PFIFO_INTR_DMA_PUSHER_RESET 0x00001000
+#define PFIFO_INTR_DMA_PT_NOT_PENDING 0x00000000
+#define PFIFO_INTR_DMA_PT_PENDING 0x00010000
+#define PFIFO_INTR_DMA_PT_RESET 0x00010000
+#define PFIFO_INTR_SEMAPHORE_NOT_PENDING 0x00000000
+#define PFIFO_INTR_SEMAPHORE_PENDING 0x00100000
+#define PFIFO_INTR_SEMAPHORE_RESET 0x00100000
+#define PFIFO_INTR_ACQUIRE_TIMEOUT_NOT_PENDING 0x00000000
+#define PFIFO_INTR_ACQUIRE_TIMEOUT_PENDING 0x01000000
+#define PFIFO_INTR_ACQUIRE_TIMEOUT_RESET 0x01000000
+
+#define PFIFO_INTR_EN 0x00002140
+#define PFIFO_INTR_EN_DISABLED 0x00000000
+#define PFIFO_INTR_EN_CACHE_ERROR_DISABLED 0x00000000
+#define PFIFO_INTR_EN_CACHE_ERROR_ENABLED 0x00000001
+#define PFIFO_INTR_EN_RUNOUT_DISABLED 0x00000000
+#define PFIFO_INTR_EN_RUNOUT_ENABLED 0x00000010
+#define PFIFO_INTR_EN_RUNOUT_OVERFLOW_DISABLED 0x00000000
+#define PFIFO_INTR_EN_RUNOUT_OVERFLOW_ENABLED 0x00000100
+#define PFIFO_INTR_EN_DMA_PUSHER_DISABLED 0x00000000
+#define PFIFO_INTR_EN_DMA_PUSHER_ENABLED 0x00001000
+#define PFIFO_INTR_EN_DMA_PT_DISABLED 0x00000000
+#define PFIFO_INTR_EN_DMA_PT_ENABLED 0x00010000
+#define PFIFO_INTR_EN_SEMAPHORE_DISABLED 0x00000000
+#define PFIFO_INTR_EN_SEMAPHORE_ENABLED 0x00100000
+#define PFIFO_INTR_EN_ACQUIRE_TIMEOUT_DISABLED 0x00000000
+#define PFIFO_INTR_EN_ACQUIRE_TIMEOUT_ENABLED 0x01000000
+
+#define PFIFO_RAMHT 0x00002210
+#define PFIFO_RAMHT_BASE_ADDRESS_MSK 0x000001F0
+#define PFIFO_RAMHT_SIZE_4K 0x00000000
+#define PFIFO_RAMHT_SIZE_8K 0x00010000
+#define PFIFO_RAMHT_SIZE_16K 0x00020000
+#define PFIFO_RAMHT_SIZE_32K 0x00030000
+#define PFIFO_RAMHT_SEARCH_16 0x00000000
+#define PFIFO_RAMHT_SEARCH_32 0x01000000
+#define PFIFO_RAMHT_SEARCH_64 0x02000000
+#define PFIFO_RAMHT_SEARCH_128 0x03000000
+
+#define PFIFO_RAMFC 0x00002214
+#define PFIFO_RAMFC_BASE_ADDRESS_MSK 0x000001F8
+
+#define PFIFO_RAMRO 0x00002218
+#define PFIFO_RAMRO_BASE_ADDRESS_MSK 0x000001FE
+#define PFIFO_RAMRO_BASE_ADDRESS_11800 0x00000118
+#define PFIFO_RAMRO_BASE_ADDRESS_11400 0x00000114
+#define PFIFO_RAMRO_BASE_ADDRESS_11200 0x00000112
+#define PFIFO_RAMRO_BASE_ADDRESS_12000 0x00000120
+#define PFIFO_RAMRO_SIZE_512 0x00000000
+#define PFIFO_RAMRO_SIZE_8K 0x00010000
+
+#define PFIFO_CACHES 0x00002500
+#define PFIFO_CACHES_REASSIGN_DISABLED 0x00000000
+#define PFIFO_CACHES_REASSIGN_ENABLED 0x00000001
+#define PFIFO_CACHES_DMA_SUSPEND_IDLE 0x00000000
+#define PFIFO_CACHES_DMA_SUSPEND_BUSY 0x00000010
+
+#define PFIFO_MODE 0x00002504
+#define PFIFO_MODE_CHANNEL_0_PIO 0x00000000
+#define PFIFO_MODE_CHANNEL_0_DMA 0x00000001
+#define PFIFO_MODE_CHANNEL_1_PIO 0x00000000
+#define PFIFO_MODE_CHANNEL_1_DMA 0x00000002
+#define PFIFO_MODE_CHANNEL_2_PIO 0x00000000
+#define PFIFO_MODE_CHANNEL_2_DMA 0x00000004
+#define PFIFO_MODE_CHANNEL_3_PIO 0x00000000
+#define PFIFO_MODE_CHANNEL_3_DMA 0x00000008
+#define PFIFO_MODE_CHANNEL_4_PIO 0x00000000
+#define PFIFO_MODE_CHANNEL_4_DMA 0x00000010
+#define PFIFO_MODE_CHANNEL_5_PIO 0x00000000
+#define PFIFO_MODE_CHANNEL_5_DMA 0x00000020
+#define PFIFO_MODE_CHANNEL_6_PIO 0x00000000
+#define PFIFO_MODE_CHANNEL_6_DMA 0x00000040
+#define PFIFO_MODE_CHANNEL_7_PIO 0x00000000
+#define PFIFO_MODE_CHANNEL_7_DMA 0x00000080
+
+#define PFIFO_DMA 0x00002508
+#define PFIFO_DMA_CHANNEL_0_NOT_PENDING 0x00000000
+#define PFIFO_DMA_CHANNEL_0_PENDING 0x00000001
+#define PFIFO_DMA_CHANNEL_1_NOT_PENDING 0x00000000
+#define PFIFO_DMA_CHANNEL_1_PENDING 0x00000002
+#define PFIFO_DMA_CHANNEL_2_NOT_PENDING 0x00000000
+#define PFIFO_DMA_CHANNEL_2_PENDING 0x00000004
+#define PFIFO_DMA_CHANNEL_3_NOT_PENDING 0x00000000
+#define PFIFO_DMA_CHANNEL_3_PENDING 0x00000008
+#define PFIFO_DMA_CHANNEL_4_NOT_PENDING 0x00000000
+#define PFIFO_DMA_CHANNEL_4_PENDING 0x00000010
+#define PFIFO_DMA_CHANNEL_5_NOT_PENDING 0x00000000
+#define PFIFO_DMA_CHANNEL_5_PENDING 0x00000020
+#define PFIFO_DMA_CHANNEL_6_NOT_PENDING 0x00000000
+#define PFIFO_DMA_CHANNEL_6_PENDING 0x00000040
+#define PFIFO_DMA_CHANNEL_7_NOT_PENDING 0x00000000
+#define PFIFO_DMA_CHANNEL_7_PENDING 0x00000080
+
+#define PFIFO_SIZE 0x0000250C
+#define PFIFO_SIZE_CHANNEL_0_124_BYTES 0x00000000
+#define PFIFO_SIZE_CHANNEL_0_512_BYTES 0x00000001
+#define PFIFO_SIZE_CHANNEL_1_124_BYTES 0x00000000
+#define PFIFO_SIZE_CHANNEL_1_512_BYTES 0x00000002
+#define PFIFO_SIZE_CHANNEL_2_124_BYTES 0x00000000
+#define PFIFO_SIZE_CHANNEL_2_512_BYTES 0x00000004
+#define PFIFO_SIZE_CHANNEL_3_124_BYTES 0x00000000
+#define PFIFO_SIZE_CHANNEL_3_512_BYTES 0x00000008
+#define PFIFO_SIZE_CHANNEL_4_124_BYTES 0x00000000
+#define PFIFO_SIZE_CHANNEL_4_512_BYTES 0x00000010
+#define PFIFO_SIZE_CHANNEL_5_124_BYTES 0x00000000
+#define PFIFO_SIZE_CHANNEL_5_512_BYTES 0x00000020
+#define PFIFO_SIZE_CHANNEL_6_124_BYTES 0x00000000
+#define PFIFO_SIZE_CHANNEL_6_512_BYTES 0x00000040
+#define PFIFO_SIZE_CHANNEL_7_124_BYTES 0x00000000
+#define PFIFO_SIZE_CHANNEL_7_512_BYTES 0x00000080
+
+#define PFIFO_CACHE0_PUSH0 0x00003000
+#define PFIFO_CACHE0_PUSH0_ACCESS_DISABLED 0x00000000
+#define PFIFO_CACHE0_PUSH0_ACCESS_ENABLED 0x00000001
+
+#define PFIFO_CACHE1_PUSH0 0x00003200
+#define PFIFO_CACHE1_PUSH0_ACCESS_DISABLED 0x00000000
+#define PFIFO_CACHE1_PUSH0_ACCESS_ENABLED 0x00000001
+
+#define PFIFO_CACHE0_PUSH1 0x00003004
+#define PFIFO_CACHE0_PUSH1_CHID_MSK 0x0000001F
+
+#define PFIFO_CACHE1_PUSH1 0x00003204
+#define PFIFO_CACHE1_PUSH1_CHID_MSK 0x0000001F
+#define PFIFO_CACHE1_PUSH1_MODE_PIO 0x00000000
+#define PFIFO_CACHE1_PUSH1_MODE_DMA 0x00000100
+
+#define PFIFO_CACHE1_DMA_PUSH 0x00003220
+#define PFIFO_CACHE1_DMA_PUSH_ACCESS_DISABLED 0x00000000
+#define PFIFO_CACHE1_DMA_PUSH_ACCESS_ENABLED 0x00000001
+#define PFIFO_CACHE1_DMA_PUSH_STATE_IDLE 0x00000000
+#define PFIFO_CACHE1_DMA_PUSH_STATE_BUSY 0x00000010
+#define PFIFO_CACHE1_DMA_PUSH_BUFFER_NOT_EMPTY 0x00000000
+#define PFIFO_CACHE1_DMA_PUSH_BUFFER_EMPTY 0x00000100
+#define PFIFO_CACHE1_DMA_PUSH_STATUS_RUNNING 0x00000000
+#define PFIFO_CACHE1_DMA_PUSH_STATUS_SUSPENDED 0x00001000
+
+#define PFIFO_CACHE1_DMA_FETCH 0x00003224
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_8_BYTES 0x00000000
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_16_BYTES 0x00000008
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_24_BYTES 0x00000010
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_32_BYTES 0x00000018
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_40_BYTES 0x00000020
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_48_BYTES 0x00000028
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_56_BYTES 0x00000030
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_64_BYTES 0x00000038
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_72_BYTES 0x00000040
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_80_BYTES 0x00000048
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_88_BYTES 0x00000050
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_96_BYTES 0x00000058
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_104_BYTES 0x00000060
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_112_BYTES 0x00000068
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_120_BYTES 0x00000070
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_128_BYTES 0x00000078
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_136_BYTES 0x00000080
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_144_BYTES 0x00000088
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_152_BYTES 0x00000090
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_160_BYTES 0x00000098
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_168_BYTES 0x000000A0
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_176_BYTES 0x000000A8
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_184_BYTES 0x000000B0
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_192_BYTES 0x000000B8
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_200_BYTES 0x000000C0
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_208_BYTES 0x000000C8
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_216_BYTES 0x000000D0
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_224_BYTES 0x000000D8
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_232_BYTES 0x000000E0
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_240_BYTES 0x000000E8
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_248_BYTES 0x000000F0
+#define PFIFO_CACHE1_DMA_FETCH_TRIG_256_BYTES 0x000000F8
+#define PFIFO_CACHE1_DMA_FETCH_SIZE_32_BYTES 0x00000000
+#define PFIFO_CACHE1_DMA_FETCH_SIZE_64_BYTES 0x00002000
+#define PFIFO_CACHE1_DMA_FETCH_SIZE_96_BYTES 0x00004000
+#define PFIFO_CACHE1_DMA_FETCH_SIZE_128_BYTES 0x00006000
+#define PFIFO_CACHE1_DMA_FETCH_SIZE_160_BYTES 0x00008000
+#define PFIFO_CACHE1_DMA_FETCH_SIZE_192_BYTES 0x0000A000
+#define PFIFO_CACHE1_DMA_FETCH_SIZE_224_BYTES 0x0000C000
+#define PFIFO_CACHE1_DMA_FETCH_SIZE_256_BYTES 0x0000E000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_0 0x00000000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_1 0x00010000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_2 0x00020000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_3 0x00030000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_4 0x00040000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_5 0x00050000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_6 0x00060000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_7 0x00070000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_8 0x00080000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_9 0x00090000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_10 0x000A0000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_11 0x000B0000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_12 0x000C0000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_13 0x000D0000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_14 0x000E0000
+#define PFIFO_CACHE1_DMA_FETCH_MAX_REQS_15 0x000F0000
+#define PFIFO_CACHE1_LITTLE_ENDIAN 0x00000000
+#define PFIFO_CACHE1_BIG_ENDIAN 0x80000000
+
+#define PFIFO_CACHE1_DMA_PUT 0x00003240
+
+#define PFIFO_CACHE1_DMA_GET 0x00003244
+
+#define PFIFO_CACHE1_REF 0x00003248
+
+#define PFIFO_CACHE1_DMA_SUBROUTINE 0x0000324C
+#define PFIFO_CACHE1_DMA_SUBROUTINE_OFFSET_MSK 0x1FFFFFFC
+#define PFIFO_CACHE1_DMA_SUBROUTINE_STATE_INACTIVE 0x00000000
+#define PFIFO_CACHE1_DMA_SUBROUTINE_STATE_ACTIVE 0x00000001
+
+#define PFIFO_CACHE1_DMA_DCOUNT 0x000032A0
+#define PFIFO_CACHE1_DMA_DCOUNT_VALUE_MSK 0x00001FFC
+
+#define PFIFO_CACHE1_DMA_GET_JMP_SHADOW 0x000032A4
+
+#define PFIFO_CACHE1_DMA_RSVD_SHADOW 0x000032A8
+
+#define PFIFO_CACHE1_DMA_DATA_SHADOW 0x000032AC
+
+#define PFIFO_CACHE1_DMA_STATE 0x00003228
+#define PFIFO_CACHE1_DMA_STATE_METHOD_TYPE_INC 0x00000000
+#define PFIFO_CACHE1_DMA_STATE_METHOD_TYPE_NON_INC 0x00000001
+#define PFIFO_CACHE1_DMA_STATE_METHOD_MSK 0x00001FFC
+#define PFIFO_CACHE1_DMA_STATE_SUBCHANNEL 0x0000E000
+#define PFIFO_CACHE1_DMA_STATE_METHOD_COUNT_MSK 0x1FFC0000
+#define PFIFO_CACHE1_DMA_STATE_ERROR_NONE 0x00000000
+#define PFIFO_CACHE1_DMA_STATE_ERROR_CALL 0x20000000
+#define PFIFO_CACHE1_DMA_STATE_ERROR_NON_CACHE 0x40000000
+#define PFIFO_CACHE1_DMA_STATE_ERROR_RETURN 0x60000000
+#define PFIFO_CACHE1_DMA_STATE_ERROR_RESERVED_CMD 0x80000000
+#define PFIFO_CACHE1_DMA_STATE_ERROR_PROTECTION 0xC0000000
+
+#define PFIFO_CACHE1_DMA_INSTANCE 0x0000322C
+
+#define PFIFO_CACHE1_DMA_CTL 0x00003230
+#define PFIFO_CACHE1_DMA_CTL_ADJUST_MSK 0x00000FFC
+#define PFIFO_CACHE1_DMA_CTL_PAGE_TABLE_PRESENT 0x00001000
+#define PFIFO_CACHE1_DMA_CTL_PAGE_ENTRY_LINEAR 0x00002000
+#define PFIFO_CACHE1_DMA_CTL_TARGET_NODE_NVM 0x00000000
+#define PFIFO_CACHE1_DMA_CTL_TARGET_NODE_PCI 0x00020000
+#define PFIFO_CACHE1_DMA_CTL_TARGET_NODE_AGP 0x00030000
+#define PFIFO_CACHE1_DMA_CTL_AT_INFO_INVALID 0x00000000
+#define PFIFO_CACHE1_DMA_CTL_AT_INFO_VALID 0x80000000
+
+#define PFIFO_CACHE1_DMA_LIMIT 0x00003234
+
+#define PFIFO_CACHE1_DMA_TLB_TAG 0x00003238
+#define PFIFO_CACHE1_DMA_TLB_TAG_ADDRESS_MSK 0x1FFFF000
+#define PFIFO_CACHE1_DMA_TLB_TAG_STATE_INVALID 0x00000000
+#define PFIFO_CACHE1_DMA_TLB_TAG_STATE_VALID 0x00000001
+
+#define PFIFO_CACHE1_DMA_TLB_PTE 0x0000323C
+#define PFIFO_CACHE1_DMA_TLB_PTE_ADDRESS_MSK 0xFFFFF000
+
+#define PFIFO_CACHE0_PULL0 0x00003050
+#define PFIFO_CACHE0_PULL0_ACCESS_DISABLED 0x00000000
+#define PFIFO_CACHE0_PULL0_ACCESS_ENABLED 0x00000001
+#define PFIFO_CACHE0_PULL0_HASH_SUCCEEDED 0x00000000
+#define PFIFO_CACHE0_PULL0_HASH_FAILED 0x00000010
+#define PFIFO_CACHE0_PULL0_DEVICE_HARDWARE 0x00000000
+#define PFIFO_CACHE0_PULL0_DEVICE_SOFTWARE 0x00000100
+#define PFIFO_CACHE0_PULL0_HASH_STATE_IDLE 0x00000000
+#define PFIFO_CACHE0_PULL0_HASH_STATE_BUSY 0x00001000
+
+#define PFIFO_CACHE1_PULL0 0x00003250
+#define PFIFO_CACHE1_PULL0_ACCESS_DISABLED 0x00000000
+#define PFIFO_CACHE1_PULL0_ACCESS_ENABLED 0x00000001
+#define PFIFO_CACHE1_PULL0_HASH_SUCCEEDED 0x00000000
+#define PFIFO_CACHE1_PULL0_HASH_FAILED 0x00000010
+#define PFIFO_CACHE1_PULL0_DEVICE_HARDWARE 0x00000000
+#define PFIFO_CACHE1_PULL0_DEVICE_SOFTWARE 0x00000100
+#define PFIFO_CACHE1_PULL0_HASH_STATE_IDLE 0x00000000
+#define PFIFO_CACHE1_PULL0_HASH_STATE_BUSY 0x00001000
+#define PFIFO_CACHE1_PULL0_ACQUIRE_STATE_IDLE 0x00000000
+#define PFIFO_CACHE1_PULL0_ACQUIRE_STATE_BUSY 0x00010000
+#define PFIFO_CACHE1_PULL0_SEMAPHORE_NO_ERROR 0x00000000
+#define PFIFO_CACHE1_PULL0_SEMAPHORE_BAD_ARG 0x00100000
+#define PFIFO_CACHE1_PULL0_SEMAPHORE_ISTATE 0x00200000
+
+#define PFIFO_CACHE0_PULL1 0x00003054
+#define PFIFO_CACHE0_PULL1_ENGINE_SW 0x00000000
+#define PFIFO_CACHE0_PULL1_ENGINE_GRAPHICS 0x00000001
+#define PFIFO_CACHE0_PULL1_ENGINE_DVD 0x00000002
+
+#define PFIFO_CACHE1_PULL1 0x00003254
+#define PFIFO_CACHE1_PULL1_ENGINE_SW 0x00000000
+#define PFIFO_CACHE1_PULL1_ENGINE_GRAPHICS 0x00000001
+#define PFIFO_CACHE1_PULL1_ENGINE_DVD 0x00000002
+
+#define PFIFO_CACHE1_PULL1_ACQUIRE 0x00000010
+#define PFIFO_CACHE1_PULL1_ACQUIRE_INACTIVE 0x00000000
+#define PFIFO_CACHE1_PULL1_ACQUIRE_ACTIVE 0x00000010
+
+#define PFIFO_CACHE1_PULL1_SEM_TARGET_NODE 0x00030000
+#define PFIFO_CACHE1_PULL1_SEM_TARGET_NODE_NVM 0x00000000
+#define PFIFO_CACHE1_PULL1_SEM_TARGET_NODE_PCI 0x00020000
+#define PFIFO_CACHE1_PULL1_SEM_TARGET_NODE_AGP 0x00030000
+
+#define PFIFO_CACHE0_HASH 0x00003058
+#define PFIFO_CACHE0_HASH_INSTANCE_MSK 0x0000FFFF
+
+#define PFIFO_CACHE1_HASH 0x00003258
+#define PFIFO_CACHE1_HASH_INSTANCE_MSK 0x0000FFFF
+
+#define PFIFO_CACHE1_ACQUIRE_0 0x00003260
+
+#define PFIFO_CACHE1_ACQUIRE_1 0x00003264
+
+#define PFIFO_CACHE1_ACQUIRE_2 0x00003268
+
+#define PFIFO_CACHE1_SEMAPHORE 0x0000326C
+#define PFIFO_CACHE1_SEMAPHORE_CTXDMA_INVALID 0x00000000
+#define PFIFO_CACHE1_SEMAPHORE_CTXDMA_VALID 0x00000001
+#define PFIFO_CACHE1_SEMAPHORE_OFFSET_MSK 0x00000FFC
+#define PFIFO_CACHE1_SEMAPHORE_PAGE_ADDRESS_MSK 0xFFFFF000
+
+#define PFIFO_CACHE0_STATUS 0x00003014
+#define PFIFO_CACHE0_STATUS_LOW_MARK_NOT_EMPTY 0x00000000
+#define PFIFO_CACHE0_STATUS_LOW_MARK_EMPTY 0x00000010
+#define PFIFO_CACHE0_STATUS_HIGH_MARK_NOT_FULL 0x00000000
+#define PFIFO_CACHE0_STATUS_HIGH_MARK_FULL 0x00000100
+
+#define PFIFO_CACHE1_STATUS 0x00003214
+#define PFIFO_CACHE1_STATUS_LOW_MARK_NOT_EMPTY 0x00000000
+#define PFIFO_CACHE1_STATUS_LOW_MARK_EMPTY 0x00000010
+#define PFIFO_CACHE1_STATUS_HIGH_MARK_NOT_FULL 0x00000000
+#define PFIFO_CACHE1_STATUS_HIGH_MARK_FULL 0x00000100
+
+#define PFIFO_CACHE1_STATUS1 0x00003218
+#define PFIFO_CACHE1_STATUS1_RANOUT_FALSE 0x00000000
+#define PFIFO_CACHE1_STATUS1_RANOUT_TRUE 0x00000001
+
+#define PFIFO_CACHE0_PUT 0x00003010
+
+#define PFIFO_CACHE1_PUT 0x00003210
+
+#define PFIFO_CACHE0_GET 0x00003070
+
+#define PFIFO_CACHE1_GET 0x00003270
+
+#define PFIFO_CACHE0_ENGINE 0x00003080
+#define PFIFO_CACHE0_ENGINE_0_SW 0x00000000
+#define PFIFO_CACHE0_ENGINE_0_GRAPHICS 0x00000001
+#define PFIFO_CACHE0_ENGINE_0_DVD 0x00000002
+#define PFIFO_CACHE0_ENGINE_1_SW 0x00000000
+#define PFIFO_CACHE0_ENGINE_1_GRAPHICS 0x00000010
+#define PFIFO_CACHE0_ENGINE_1_DVD 0x00000020
+#define PFIFO_CACHE0_ENGINE_2_SW 0x00000000
+#define PFIFO_CACHE0_ENGINE_2_GRAPHICS 0x00000100
+#define PFIFO_CACHE0_ENGINE_2_DVD 0x00000200
+#define PFIFO_CACHE0_ENGINE_3_SW 0x00000000
+#define PFIFO_CACHE0_ENGINE_3_GRAPHICS 0x00001000
+#define PFIFO_CACHE0_ENGINE_3_DVD 0x00002000
+#define PFIFO_CACHE0_ENGINE_4_SW 0x00000000
+#define PFIFO_CACHE0_ENGINE_4_GRAPHICS 0x00010000
+#define PFIFO_CACHE0_ENGINE_4_DVD 0x00020000
+#define PFIFO_CACHE0_ENGINE_5_SW 0x00000000
+#define PFIFO_CACHE0_ENGINE_5_GRAPHICS 0x00100000
+#define PFIFO_CACHE0_ENGINE_5_DVD 0x00200000
+#define PFIFO_CACHE0_ENGINE_6_SW 0x00000000
+#define PFIFO_CACHE0_ENGINE_6_GRAPHICS 0x01000000
+#define PFIFO_CACHE0_ENGINE_6_DVD 0x02000000
+#define PFIFO_CACHE0_ENGINE_7_SW 0x00000000
+#define PFIFO_CACHE0_ENGINE_7_GRAPHICS 0x10000000
+#define PFIFO_CACHE0_ENGINE_7_DVD 0x20000000
+
+#define PFIFO_CACHE1_ENGINE 0x00003280
+#define PFIFO_CACHE1_ENGINE_0_SW 0x00000000
+#define PFIFO_CACHE1_ENGINE_0_GRAPHICS 0x00000001
+#define PFIFO_CACHE1_ENGINE_0_DVD 0x00000002
+#define PFIFO_CACHE1_ENGINE_1_SW 0x00000000
+#define PFIFO_CACHE1_ENGINE_1_GRAPHICS 0x00000010
+#define PFIFO_CACHE1_ENGINE_1_DVD 0x00000020
+#define PFIFO_CACHE1_ENGINE_2_SW 0x00000000
+#define PFIFO_CACHE1_ENGINE_2_GRAPHICS 0x00000100
+#define PFIFO_CACHE1_ENGINE_2_DVD 0x00000200
+#define PFIFO_CACHE1_ENGINE_3_SW 0x00000000
+#define PFIFO_CACHE1_ENGINE_3_GRAPHICS 0x00001000
+#define PFIFO_CACHE1_ENGINE_3_DVD 0x00002000
+#define PFIFO_CACHE1_ENGINE_4_SW 0x00000000
+#define PFIFO_CACHE1_ENGINE_4_GRAPHICS 0x00010000
+#define PFIFO_CACHE1_ENGINE_4_DVD 0x00020000
+#define PFIFO_CACHE1_ENGINE_5_SW 0x00000000
+#define PFIFO_CACHE1_ENGINE_5_GRAPHICS 0x00100000
+#define PFIFO_CACHE1_ENGINE_5_DVD 0x00200000
+#define PFIFO_CACHE1_ENGINE_6_SW 0x00000000
+#define PFIFO_CACHE1_ENGINE_6_GRAPHICS 0x01000000
+#define PFIFO_CACHE1_ENGINE_6_DVD 0x02000000
+#define PFIFO_CACHE1_ENGINE_7_SW 0x00000000
+#define PFIFO_CACHE1_ENGINE_7_GRAPHICS 0x10000000
+#define PFIFO_CACHE1_ENGINE_7_DVD 0x20000000
+
+#define PFIFO_CACHE0_METHOD 0x00003100
+#define PFIFO_CACHE0_METHOD_ADDRESS_MSK 0x00001FFC
+#define PFIFO_CACHE0_METHOD_SUBCHANNEL_MSK 0x0000E000
+
+#define PFIFO_CACHE1_METHOD 0x00003800
+#define PFIFO_CACHE1_METHOD_ADDRESS_MSK 0x00001FFC
+#define PFIFO_CACHE1_METHOD_SUBCHANNEL_MSK 0x0000E000
+
+#define PFIFO_CACHE1_METHOD_ALIAS 0x00003C00
+
+#define PFIFO_CACHE0_DATA 0x00003104
+
+#define PFIFO_CACHE1_DATA 0x00003804
+
+#define PFIFO_CACHE1_DATA_ALIAS 0x00003C04
+
+#define PFIFO_DEVICE 0x00002800
+#define PFIFO_DEVICE_CHID_MSK 0x0000001F
+#define PFIFO_DEVICE_SWITCH 0x01000000
+#define PFIFO_DEVICE_SWITCH_UNAVAILABLE 0x00000000
+#define PFIFO_DEVICE_SWITCH_AVAILABLE 0x01000000
+
+#define PFIFO_RUNOUT_STATUS 0x00002400
+#define PFIFO_RUNOUT_STATUS_RANOUT_FALSE 0x00000000
+#define PFIFO_RUNOUT_STATUS_RANOUT_TRUE 0x00000001
+#define PFIFO_RUNOUT_STATUS_LOW_MARK_NOT_EMPTY 0x00000000
+#define PFIFO_RUNOUT_STATUS_LOW_MARK_EMPTY 0x00000010
+#define PFIFO_RUNOUT_STATUS_HIGH_MARK_NOT_FULL 0x00000000
+#define PFIFO_RUNOUT_STATUS_HIGH_MARK_FULL 0x00000100
+
+#define PFIFO_RUNOUT_PUT 0x00002410
+#define PFIFO_RUNOUT_PUT_ADDRES_MSK 0x00001FF8
+
+#define PFIFO_RUNOUT_GET 0x00002420
+#define PFIFO_RUNOUT_GET_ADDRESS_MSK 0x00003FF8
+
+
+
+/* PVIDEO */
+#define PVIDEO 0x00008000
+
+#define PVIDEO_DEBUG_0 0x00008080
+#define PVIDEO_DEBUG_0_HLF_RATE_ROW_RD_DISABLED 0x00000000
+#define PVIDEO_DEBUG_0_HLF_RATE_ROW_RD_ENABLED 0x00000001
+#define PVIDEO_DEBUG_0_LIMIT_CHECK_DISABLED 0x00000000
+#define PVIDEO_DEBUG_0_LIMIT_CHECK_ENABLED 0x00000010
+#define PVIDEO_DEBUG_0_HUE_FOLD_DISABLED 0x00000000
+#define PVIDEO_DEBUG_0_HUE_FOLD_ENABLED 0x00000100
+
+#define PVIDEO_DEBUG_1 0x00008084
+#define PVIDEO_DEBUG_1_REQ_DELAY_MSK 0x000007FF
+#define PVIDEO_DEBUG_1_REQ_DELAY_DEFAULT 0x00000064
+#define PVIDEO_DEBUG_1_REQ_DELAY_INIT 0x00000050
+
+#define PVIDEO_DEBUG_2 0x00008088
+#define PVIDEO_DEBUG_2_BURST1_MSK 0x000007E0
+#define PVIDEO_DEBUG_2_BURST1_DEFAULT 0x00000100
+#define PVIDEO_DEBUG_2_BURST1_INIT 0x00000200
+#define PVIDEO_DEBUG_2_BURST2_MSK 0x07E00000
+#define PVIDEO_DEBUG_2_BURST2_DEFAULT 0x02000000
+
+#define PVIDEO_DEBUG_3 0x0000808C
+#define PVIDEO_DEBUG_3_WATER_MARK1_MSK 0x000007F0
+#define PVIDEO_DEBUG_3_WATER_MARK1_DEFAULT 0x000004B0
+#define PVIDEO_DEBUG_3_WATER_MARK1_INIT 0x00000400
+#define PVIDEO_DEBUG_3_WATER_MARK2_MSK 0x07F00000
+#define PVIDEO_DEBUG_3_WATER_MARK2_DEFAULT 0x03B00000
+#define PVIDEO_DEBUG_3_WATER_MARK2_INIT 0x04000000
+
+#define PVIDEO_DEBUG_4 0x00008090
+#define PVIDEO_DEBUG_4_V_COEFF_B_MSK 0x00FFFFE0
+#define PVIDEO_DEBUG_4_V_COEFF_B_DEFAULT 0x0016A0A0
+#define PVIDEO_DEBUG_4_V_COEFF_B_ALWAYS 0x00000000
+#define PVIDEO_DEBUG_4_V_COEFF_B_NEVER 0x00FFFFE0
+
+#define PVIDEO_DEBUG_5 0x00008094
+#define PVIDEO_DEBUG_5_H_L_COEFF_D_MSK 0x003FFFF0
+#define PVIDEO_DEBUG_5_H_L_COEFF_D_DEFAULT 0x00188160
+#define PVIDEO_DEBUG_5_H_L_COEFF_D_ALWAYS 0x00000000
+#define PVIDEO_DEBUG_5_H_L_COEFF_D_NEVER 0x003FFFF0
+
+#define PVIDEO_DEBUG_6 0x00008098
+#define PVIDEO_DEBUG_6_H_L_COEFF_C_MSK 0x003FFFF0
+#define PVIDEO_DEBUG_6_H_L_COEFF_C_DEFAULT 0x0012C730
+#define PVIDEO_DEBUG_6_H_L_COEFF_C_ALWAYS 0x00000000
+#define PVIDEO_DEBUG_6_H_L_COEFF_C_NEVER 0x003FFFF0
+
+#define PVIDEO_DEBUG_7 0x0000809C
+#define PVIDEO_DEBUG_7_H_L_COEFF_B_MSK 0x003FFFF0
+#define PVIDEO_DEBUG_7_H_L_COEFF_B_DEFAULT 0x00000000
+#define PVIDEO_DEBUG_7_H_L_COEFF_B_ALWAYS 0x00000000
+#define PVIDEO_DEBUG_7_H_L_COEFF_B_NEVER 0x003FFFF0
+
+#define PVIDEO_DEBUG_8 0x000080A0
+#define PVIDEO_DEBUG_8_PIPE_FILL_MSK 0x000007F0
+#define PVIDEO_DEBUG_8_PIPE_FILL_DEFAULT 0x000000B0
+
+#define PVIDEO_DEBUG_9 0x000080A4
+#define PVIDEO_DEBUG_9_FIFO_A_UNDERFLOW_FALSE 0x00000000
+#define PVIDEO_DEBUG_9_FIFO_A_UNDERFLOW_TRUE 0x00000001
+#define PVIDEO_DEBUG_9_FIFO_A_UNDERFLOW_RESET 0x00000001
+#define PVIDEO_DEBUG_9_FIFO_A_OVERFLOW_FALSE 0x00000000
+#define PVIDEO_DEBUG_9_FIFO_A_OVERFLOW_TRUE 0x00000010
+#define PVIDEO_DEBUG_9_FIFO_A_OVERFLOW_RESET 0x00000010
+#define PVIDEO_DEBUG_9_FIFO_B_UNDERFLOW_FALSE 0x00000000
+#define PVIDEO_DEBUG_9_FIFO_B_UNDERFLOW_TRUE 0x00000100
+#define PVIDEO_DEBUG_9_FIFO_B_UNDERFLOW_RESET 0x00000100
+#define PVIDEO_DEBUG_9_FIFO_B_OVERFLOW_FALSE 0x00000000
+#define PVIDEO_DEBUG_9_FIFO_B_OVERFLOW_TRUE 0x00001000
+#define PVIDEO_DEBUG_9_FIFO_B_OVERFLOW_RESET 0x00001000
+
+#define PVIDEO_DEBUG_10 0x000080A8
+#define PVIDEO_DEBUG_10_SCREEN_LINE_MSK 0x00001FFF
+#define PVIDEO_DEBUG_10_SCREEN_LINE_FIRST 0x00000000
+#define PVIDEO_DEBUG_10_SCAN_COUNT_MSK 0x001F0000
+#define PVIDEO_DEBUG_10_SCAN_COUNT_FIRST 0x00000000
+#define PVIDEO_DEBUG_10_SCAN_COUNT_OVERFLOW 0x00100000
+#define PVIDEO_DEBUG_10_SCANNING_NEITHER 0x00000000
+#define PVIDEO_DEBUG_10_SCANNING_BUFFER_0 0x02000000
+#define PVIDEO_DEBUG_10_SCANNING_BUFFER_1 0x03000000
+
+#define PVIDEO_INTR 0x00008100
+#define PVIDEO_INTR_BUFFER_0_NOT_PENDING 0x00000000
+#define PVIDEO_INTR_BUFFER_0_PENDING 0x00000001
+#define PVIDEO_INTR_BUFFER_0_RESET 0x00000001
+#define PVIDEO_INTR_BUFFER_1_NOT_PENDING 0x00000000
+#define PVIDEO_INTR_BUFFER_1_PENDING 0x00000010
+#define PVIDEO_INTR_BUFFER_1_RESET 0x00000010
+
+#define PVIDEO_INTR_REASON 0x00008104
+#define PVIDEO_INTR_REASON_BUFFER_0_NOTIFICATION 0x00000000
+#define PVIDEO_INTR_REASON_BUFFER_0_PROTECTION_FAULT 0x00000001
+#define PVIDEO_INTR_REASON_BUFFER_1_NOTIFICATION 0x00000000
+#define PVIDEO_INTR_REASON_BUFFER_1_PROTECTION_FAULT 0x00000010
+
+#define PVIDEO_INTR_EN 0x00008140
+#define PVIDEO_INTR_EN_BUFFER_0_DISABLED 0x00000000
+#define PVIDEO_INTR_EN_BUFFER_0_ENABLED 0x00000001
+#define PVIDEO_INTR_EN_BUFFER_1_DISABLED 0x00000000
+#define PVIDEO_INTR_EN_BUFFER_1_ENABLED 0x00000010
+
+#define PVIDEO_BUFFER 0x00008700
+#define PVIDEO_BUFFER_0_USE_NOT_PENDING 0x00000000
+#define PVIDEO_BUFFER_0_USE_PENDING 0x00000001
+#define PVIDEO_BUFFER_0_USE_SET 0x00000001
+#define PVIDEO_BUFFER_1_USE_NOT_PENDING 0x00000000
+#define PVIDEO_BUFFER_1_USE_PENDING 0x00000010
+#define PVIDEO_BUFFER_1_USE_SET 0x00000010
+
+#define PVIDEO_STOP 0x00008704
+#define PVIDEO_STOP_OVERLAY_INACTIVE 0x00000000
+#define PVIDEO_STOP_OVERLAY_ACTIVE 0x00000001
+#define PVIDEO_STOP_METHOD_IMMEDIATELY 0x00000000
+#define PVIDEO_STOP_METHOD_NORMALLY 0x00000010
+
+#define PVIDEO_UVBASE_0 0x00008800
+#define PVIDEO_UVBASE_1 0x00008804
+#define PVIDEO_UVBASE_MSK 0xFFFFFFC0
+
+#define PVIDEO_UVLIMIT_0 0x00008808
+#define PVIDEO_UVLIMIT_1 0x0000880C
+
+#define PVIDEO_UVOFFSET_0 0x00008820
+#define PVIDEO_UVOFFSET_1 0x00008824
+#define PVIDEO_UVOFFSET_MSK 0xFFFFFFC0
+
+#define PVIDEO_BASE_0 0x00008900
+#define PVIDEO_BASE_1 0x00008904
+#define PVIDEO_BASE_MSK 0xFFFFFFC0
+
+#define PVIDEO_LIMIT_0 0x00008908
+#define PVIDEO_LIMIT_1 0x0000890C
+
+#define PVIDEO_LUMINANCE_0 0x00008910
+#define PVIDEO_LUMINANCE_1 0x00008914
+
+#define PVIDEO_CHROMINANCE_0 0x00008918
+#define PVIDEO_CHROMINANCE_1 0x0000891C
+
+#define PVIDEO_OFFSET_0 0x00008920
+#define PVIDEO_OFFSET_1 0x00008924
+#define PVIDEO_OFFSET_MSK 0xFFFFFFC0
+
+#define PVIDEO_SIZE_IN_0 0x00008928
+#define PVIDEO_SIZE_IN_1 0x0000892C
+#define PVIDEO_SIZE_IN_WIDTH_MSK 0x000007FF
+#define PVIDEO_SIZE_IN_HEIGHT_MSK 0x07FF0000
+
+#define PVIDEO_POINT_IN_0 0x00008930
+#define PVIDEO_POINT_IN_1 0x00008934
+#define PVIDEO_POINT_IN_S_MSK 0x00007FFF
+#define PVIDEO_POINT_IN_T_MSK 0xFFFE0000
+
+#define PVIDEO_DS_DX_0 0x00008938
+#define PVIDEO_DS_DX_1 0x0000893C
+
+#define PVIDEO_DT_DY_0 0x00008940
+#define PVIDEO_DT_DY_1 0x00008944
+
+#define PVIDEO_POINT_OUT_0 0x00008948
+#define PVIDEO_POINT_OUT_1 0x0000894C
+#define PVIDEO_POINT_OUT_X_MSK 0x00000FFF
+#define PVIDEO_POINT_OUT_Y_MSK 0x0FFF0000
+
+#define PVIDEO_SIZE_OUT_0 0x00008950
+#define PVIDEO_SIZE_OUT_1 0x00008954
+#define PVIDEO_SIZE_OUT_WIDTH_MSK 0x00000FFF
+#define PVIDEO_SIZE_OUT_HEIGHT_MSK 0x0FFF0000
+
+#define PVIDEO_FORMAT_0 0x00008958
+#define PVIDEO_FORMAT_1 0x0000895C
+#define PVIDEO_FORMAT_PLANAR_NV 0x00000001
+#define PVIDEO_FORMAT_PITCH_MSK 0x00001FC0
+#define PVIDEO_FORMAT_COLOR_YB8CR8YA8CB8 0x00000000
+#define PVIDEO_FORMAT_COLOR_CR8YB8CB8YA8 0x00010000
+#define PVIDEO_FORMAT_COLOR_ECR8EYB8ECB8EYA8 0x00110000
+#define PVIDEO_FORMAT_DISPLAY_ALWAYS 0x00000000
+#define PVIDEO_FORMAT_DISPLAY_COLOR_KEY_EQUAL 0x00100000
+#define PVIDEO_FORMAT_MATRIX_ITURBT601 0x00000000
+#define PVIDEO_FORMAT_MATRIX_ITURBT709 0x01000000
+
+#define PVIDEO_COLOR_KEY 0x00008B00
+
+#define PVIDEO_TEST 0x00008D00
+#define PVIDEO_TEST_MODE_DISABLE 0x00000000
+#define PVIDEO_TEST_MODE_ENABLE 0x00000001
+#define PVIDEO_TEST_ADDRESS_MSK 0x00007F00
+
+/* Array [0...11] */
+#define PVIDEO_TST_WRITE 0x00008D10
+
+/* Array [0...11] */
+#define PVIDEO_TST_READ 0x00008D40
+
+
+
+/* PTIMER */
+#define PTIMER 0x00009000
+
+
+
+/* PVIO */
+#define PVIO 0x000C0000
+
+#define PVIO_SEQ_INDEX 0x000C03C4
+
+#define PVIO_SEQ_DATA 0x000C03C5
+
+#define PVIO_GRA_INDEX 0x000C03CE
+
+#define PCIO_GRA_DATA 0x000C03CF
+
+
+
+/* PVGA */
+#define PVGA 0x000A0000
+
+
+
+/* PFB */
+#define PFB 0x00100000
+
+#define PFB_BOOT_0 0x00100000
+#define PFB_BOOT_0_RAM_AMOUNT_32MB 0x00000000
+#define PFB_BOOT_0_RAM_AMOUNT_4MB 0x00000001
+#define PFB_BOOT_0_RAM_AMOUNT_8MB 0x00000002
+#define PFB_BOOT_0_RAM_AMOUNT_16MB 0x00000003
+#define PFB_BOOT_0_RAM_WIDTH_128 0x00000004
+#define PFB_BOOT_0_RAM_TYPE_SGRAM_8MBIT 0x00000000
+#define PFB_BOOT_0_RAM_TYPE_SGRAM_16MBIT 0x00000008
+#define PFB_BOOT_0_RAM_TYPE_SGRAM_16MBIT_4BANK 0x00000010
+#define PFB_BOOT_0_RAM_TYPE_SDRAM_16MBIT 0x00000018
+#define PFB_BOOT_0_RAM_TYPE_SDRAM_64MBIT 0x00000020
+#define PFB_BOOT_0_RAM_TYPE_SDRAM_64MBITX16 0x00000028
+
+
+
+/* PEXTDEV */
+#define PEXTDEV 0x00101000
+
+
+
+/* PGRAPH */
+#define PGRAPH 0x00400000
+
+#define PGRAPH_DEBUG_0 0x00400080
+
+#define PGRAPH_DEBUG_1 0x00400084
+
+#define PGRAPH_DEBUG_2 0x00400088
+
+#define PGRAPH_DEBUG_3 0x0040008C
+
+#define PGRAPH_DEBUG_4 0x00400090
+
+#define PGRAPH_DEBUG_5 0x00400094
+
+#define PGRAPH_DEBUG_6 0x00400820
+
+#define PGRAPH_INTR 0x00400100
+
+#define PGRAPH_NSTATUS 0x00400104
+
+#define PGRAPH_NSOURCE 0x00400108
+
+#define PGRAPH_INTR_EN 0x00400140
+
+#define PGRAPH_FIFO 0x00400720
+#define PGRAPH_FIFO_ACCESS_DISABLED 0x00000000
+#define PGRAPH_FIFO_ACCESS_ENABLED 0x00000001
+
+#define PGRAPH_STATUS 0x00400700
+#define PGRAPH_STATUS_STATE_IDLE 0x00000000
+#define PGRAPH_STATUS_STATE_BUSY 0x00000001
+#define PGRAPH_STATUS_FINE_RASTERIZER_IDLE 0x00000000
+#define PGRAPH_STATUS_FINE_RASTERIZER_BUSY 0x00000002
+#define PGRAPH_STATUS_COARSE_RASTERIZER_IDLE 0x00000000
+#define PGRAPH_STATUS_COARSE_RASTERIZER_BUSY 0x00000004
+#define PGRAPH_STATUS_FE_3D_IDLE 0x00000000
+#define PGRAPH_STATUS_FE_3D_BUSY 0x00000008
+#define PGRAPH_STATUS_FE_2D_IDLE 0x00000000
+#define PGRAPH_STATUS_FE_2D_BUSY 0x00000010
+#define PGRAPH_STATUS_XY_LOGIC_IDLE 0x00000000
+#define PGRAPH_STATUS_XY_LOGIC_BUSY 0x00000020
+#define PGRAPH_STATUS_RASTERIZER_2D_IDLE 0x00000000
+#define PGRAPH_STATUS_RASTERIZER_2D_BUSY 0x00000080
+#define PGRAPH_STATUS_IDX_IDLE 0x00000000
+#define PGRAPH_STATUS_IDX_BUSY 0x00000100
+#define PGRAPH_STATUS_XF_IDLE 0x00000000
+#define PGRAPH_STATUS_XF_BUSY 0x00000200
+#define PGRAPH_STATUS_VTX_IDLE 0x00000000
+#define PGRAPH_STATUS_VTX_BUSY 0x00000400
+#define PGRAPH_STATUS_CAS_IDLE 0x00000000
+#define PGRAPH_STATUS_CAS_BUSY 0x00000800
+#define PGRAPH_STATUS_PORT_NOTIFY_IDLE 0x00000000
+#define PGRAPH_STATUS_PORT_NOTIFY_BUSY 0x00001000
+#define PGRAPH_STATUS_SHADER_IDLE 0x00000000
+#define PGRAPH_STATUS_SHADER_BUSY 0x00002000
+#define PGRAPH_STATUS_SHADER_BE_IDLE 0x00000000
+#define PGRAPH_STATUS_SHADER_BE_BUSY 0x00004000
+#define PGRAPH_STATUS_PORT_DMA_IDLE 0x00000000
+#define PGRAPH_STATUS_PORT_DMA_BUSY 0x00010000
+#define PGRAPH_STATUS_DMA_ENGINE_IDLE 0x00000000
+#define PGRAPH_STATUS_DMA_ENGINE_BUSY 0x00020000
+#define PGRAPH_STATUS_DMA_NOTIFY_IDLE 0x00000000
+#define PGRAPH_STATUS_DMA_NOTIFY_BUSY 0x00100000
+#define PGRAPH_STATUS_DMA_BUFFER_NOTIFY_IDLE 0x00000000
+#define PGRAPH_STATUS_DMA_BUFFER_NOTIFY_BUSY 0x00200000
+#define PGRAPH_STATUS_DMA_WARNING_NOTIFY_IDLE 0x00000000
+#define PGRAPH_STATUS_DMA_WARNING_NOTIFY_BUSY 0x00400000
+#define PGRAPH_STATUS_ZCULL_IDLE 0x00000000
+#define PGRAPH_STATUS_ZCULL_BUSY 0x00800000
+#define PGRAPH_STATUS_FDIFF_IDLE 0x00000000
+#define PGRAPH_STATUS_FDIFF_BUSY 0x01000000
+#define PGRAPH_STATUS_SETUP_IDLE 0x00000000
+#define PGRAPH_STATUS_SETUP_BUSY 0x02000000
+#define PGRAPH_STATUS_CACHE_IDLE 0x00000000
+#define PGRAPH_STATUS_CACHE_BUSY 0x04000000
+#define PGRAPH_STATUS_COMBINER_IDLE 0x00000000
+#define PGRAPH_STATUS_COMBINER_BUSY 0x08000000
+#define PGRAPH_STATUS_PREROP_IDLE 0x00000000
+#define PGRAPH_STATUS_PREROP_BUSY 0x10000000
+#define PGRAPH_STATUS_ROP_IDLE 0x00000000
+#define PGRAPH_STATUS_ROP_BUSY 0x20000000
+#define PGRAPH_STATUS_PORT_USER_IDLE 0x00000000
+#define PGRAPH_STATUS_PORT_USER_BUSY 0x40000000
+#define PGRAPH_STATUS_PORT_FB_IDLE 0x00000000
+#define PGRAPH_STATUS_PORT_FB_BUSY 0x80000000
+
+#define NV10_PGRAPH_WINDOWCLIP_HORIZONTAL 0x00400F00
+
+#define NV10_PGRAPH_WINDOWCLIP_VERTICAL 0x00400F20
+
+#define NV10_PGRAPH_XFMODE0 0x00400F40
+
+#define NV10_PGRAPH_XFMODE1 0x00400F44
+
+#define NV10_PGRAPH_GLOBALSTATE0 0x00400F48
+
+#define NV10_PGRAPH_GLOBALSTATE1 0x00400F4C
+
+#define NV10_PGRAPH_PIPE_ADDRESS 0x00400F50
+
+#define NV10_PGRAPH_PIPE_DATA 0x00400F54
+
+
+
+/* PCRTC */
+#define PCRTC 0x00600000
+
+#define PCRTC_INTR 0x00600100
+#define PCRTC_INTR_VBLANK_RESET 0x00000001
+
+#define PCRTC_INTR_EN 0x00600140
+#define PCRTC_INTR_EN_VBLANK_DISABLED 0x00000000
+#define PCRTC_INTR_EN_VBLANK_ENABLED 0x00000001
+
+#define PCRTC_START 0x00600800
+
+#define PCRTC_CONFIG 0x00600804
+#define PCRTC_CONFIG_SIGNAL_VGA 0x00000000
+#define PCRTC_CONFIG_SIGNAL_NON_VGA 0x00000001
+#define PCRTC_CONFIG_SIGNAL_HSYNC 0x00000002
+#define PCRTC_CONFIG_ENDIAN 0x80000000
+#define PCRTC_CONFIG_ENDIAN_LITTLE 0x00000000
+#define PCRTC_CONFIG_ENDIAN_BIG 0x80000000
+
+#define PCRTC_RASTER 0x00600808
+#define PCRTC_RASTER_POSITION_MSK 0x000007FF
+#define PCRTC_RASTER_SA_LOAD_DISPLAY 0x00000000
+#define PCRTC_RASTER_SA_LOAD_BEFORE 0x00001000
+#define PCRTC_RASTER_SA_LOAD_AFTER 0x00002000
+#define PCRTC_RASTER_VERT_BLANK_ACTIVE 0x00010000
+#define PCRTC_RASTER_VERT_BLANK_INACTIVE 0x00000000
+#define PCRTC_RASTER_FIELD_EVEN 0x00000000
+#define PCRTC_RASTER_FIELD_ODD 0x00100000
+#define PCRTC_RASTER_STEREO_LEFT 0x00000000
+#define PCRTC_RASTER_STEREO_RIGHT 0x01000000
+
+
+
+/* PCRTC2 */
+#define PCRTC2 0x00600800
+
+#define PCRTC2_INTR 0x00600900
+#define PCRTC2_INTR_VBLANK_RESET 0x00000001
+
+#define PCRTC2_INTR_EN 0x00600940
+#define PCRTC2_INTR_EN_VBLANK_DISABLED 0x00000000
+#define PCRTC2_INTR_EN_VBLANK_ENABLED 0x00000001
+
+#define PCRTC2_START 0x00601000
+
+#define PCRTC2_CONFIG 0x00601004
+#define PCRTC2_CONFIG_SIGNAL_VGA 0x00000000
+#define PCRTC2_CONFIG_SIGNAL_NON_VGA 0x00000001
+#define PCRTC2_CONFIG_SIGNAL_HSYNC 0x00000002
+#define PCRTC2_CONFIG_ENDIAN 0x80000000
+#define PCRTC2_CONFIG_ENDIAN_LITTLE 0x00000000
+#define PCRTC2_CONFIG_ENDIAN_BIG 0x80000000
+
+#define PCRTC2_RASTER 0x00601008
+#define PCRTC2_RASTER_POSITION_MSK 0x000007FF
+#define PCRTC2_RASTER_SA_LOAD_DISPLAY 0x00000000
+#define PCRTC2_RASTER_SA_LOAD_BEFORE 0x00001000
+#define PCRTC2_RASTER_SA_LOAD_AFTER 0x00002000
+#define PCRTC2_RASTER_VERT_BLANK_ACTIVE 0x00010000
+#define PCRTC2_RASTER_VERT_BLANK_INACTIVE 0x00000000
+#define PCRTC2_RASTER_FIELD_EVEN 0x00000000
+#define PCRTC2_RASTER_FIELD_ODD 0x00100000
+#define PCRTC2_RASTER_STEREO_LEFT 0x00000000
+#define PCRTC2_RASTER_STEREO_RIGHT 0x01000000
+
+
+
+/* PCIO */
+#define PCIO 0x00601000
+
+#define PCIO_ATTR_INDEX 0x006013C0
+
+#define PCIO_ATTR_DATA 0x006013C1
+
+#define PCIO_CRTC_INDEX 0x006013D4
+
+#define PCIO_CRTC_DATA 0x006013D5
+
+/* CRTC Registers */
+#define CRTC_HORIZ_TOTAL 0x00
+#define CRTC_HORIZ_DISPLAY_END 0x01
+#define CRTC_HORIZ_BLANK_START 0x02
+#define CRTC_HORIZ_BLANK_END 0x03
+#define CRTC_HORIZ_RETRACE_START 0x04
+#define CRTC_HORIZ_RETRACE_END 0x05
+#define CRTC_VERT_TOTAL 0x06
+#define CRTC_OVERFLOW 0x07
+#define CRTC_PRESET_ROW_SCAN 0x08
+#define CRTC_MAX_SCAN_LINE 0x09
+#define CRTC_CURSOR_START 0x0A
+#define CRTC_CURSOR_END 0x0B
+#define CRTC_START_ADDR_HIGH 0x0C
+#define CRTC_START_ADDR_LOW 0x0D
+#define CRTC_CURSOR_LOCATION_HIGH 0x0E
+#define CRTC_CURSOR_LOCATION_LOW 0x0F
+#define CRTC_VERT_RETRACE_START 0x10
+#define CRTC_VERT_RETRACE_END 0x11
+#define CRTC_VERT_DISPLAY_END 0x12
+#define CRTC_OFFSET 0x13
+#define CRTC_UNDERLINE_LOCATION 0x14
+#define CRTC_VERT_BLANK_START 0x15
+#define CRTC_VERT_BLANK_END 0x16
+#define CRTC_MODE_CONTROL 0x17
+#define CRTC_LINE_COMPARE 0x18
+#define CRTC_REPAINT0 0x19
+#define CRTC_HORIZ_EXTRA 0x2d
+#define CRTC_EXTRA 0x25
+#define CRTC_FIFO_CONTROL 0x1b
+#define CRTC_FIFO 0x20
+#define CRTC_REPAINT1 0x1a
+#define CRTC_GRCURSOR0 0x30
+#define CRTC_GRCURSOR1 0x31
+#define CRTC_PIXEL 0x28
+
+#define PCIO_CRTC_STATUS 0x006013DA
+
+
+
+/* PRAMDAC */
+#define PRAMDAC 0x00680000
+
+
+
+/* PDIO */
+#define PDIO 0x00681000
+
+
+
+/* PRAMIN */
+#define PRAMIN 0x00700000
+
+
+
+/* PRAMHT */
+#define PRAMHT 0x00710000
+
+
+
+/*************************** FIFO Registers ******************************/
+
+
+#define FIFO_ADDRESS 0x00800000
+
+#define FIFO_FREE 0x00800010
+
+#define DMA_PUT 0x00800040
+
+#define DMA_GET 0x00800044
+
+
+/*
+ * Generic subchannel registers
+ */
+#define SET_OBJECT 0x00000000
+
+
+/*
+ * 2D surfaces
+ */
+typedef volatile struct {
+ u32 NoOperation; /* 0100-0103 */
+ u32 Notify; /* 0104-0107 */
+ u32 Reserved00[0x01E];
+ u32 SetContextDmaNotify; /* 0180-0183 */
+ u32 SetContextDmaSource; /* 0184-0187 */
+ u32 SetContextDmaDestin; /* 0188-018B */
+ u32 Reserved01[0x05D];
+ u32 Format; /* 0300-0303 */
+ u32 Pitch; /* 0304-0307 */
+ u32 SourceOffset; /* 0308-030B */
+ u32 DestOffset; /* 030C-030F */
+ u32 Reserved02[0x73C];
+} NVSurfaces2D;
+#define SURFACES2D_FORMAT 0x00000300
+#define SURFACES2D_FORMAT_Y8 0x00000001
+#define SURFACES2D_FORMAT_X1R5G5B5 0x00000002
+#define SURFACES2D_FORMAT_A1R5G5B5 0x00000003
+#define SURFACES2D_FORMAT_R5G6B5 0x00000004
+#define SURFACES2D_FORMAT_Y16 0x00000005
+#define SURFACES2D_FORMAT_X8R8G8B8 0x00000006
+#define SURFACES2D_FORMAT_A8R8G8B8 0x0000000A
+#define SURFACES2D_FORMAT_Y32 0x0000000B
+#define SURFACES2D_PITCH 0x00000304
+#define SURFACES2D_SRC_OFFSET 0x00000308
+#define SURFACES2D_DST_OFFSET 0x0000030C
+
+/*
+ * 3D surfaces
+ */
+typedef volatile struct {
+ u32 NoOperation; /* 0100-0103 */
+ u32 Notify; /* 0104-0107 */
+ u32 Reserved00[0x01E];
+ u32 SetContextDmaNotify; /* 0180-0183 */
+ u32 SetContextDmaColor; /* 0184-0187 */
+ u32 SetContextDmaZeta; /* 0188-018B */
+ u32 Reserved01[0x05B];
+ u32 ClipHorizontal; /* 02F8-02FB */
+ u32 ClipVertical; /* 02FC-02FF */
+ u32 Format; /* 0300-0303 */
+ u32 ClipSize; /* 0304-0307 */
+ u32 Pitch; /* 0308-030B */
+ u32 RenderOffset; /* 030C-030F */
+ u32 DepthOffset; /* 0310-0313 */
+ u32 Reserved02[0x73B];
+} NVSurfaces3D;
+#define SURFACES3D_CLIP_HORIZONTAL 0x000002F8
+#define SURFACES3D_CLIP_VERTICAL 0x000002FC
+#define SURFACES3D_FORMAT 0x00000300
+#define SURFACES3D_FORMAT_COLOR_A1R5G5B5 0x00000001
+#define SURFACES3D_FORMAT_COLOR_X1R5G5B5 0x00000002
+#define SURFACES3D_FORMAT_COLOR_R5G6B5 0x00000003
+#define SURAFCES3D_FORMAT_COLOR_X8R8G8B8 0x00000006
+#define SURFACES3D_FORMAT_COLOR_A8R8G8B8 0x00000008
+#define SURFACES3D_FORMAT_TYPE_PITCH 0x00000100
+#define SURFACES3D_FORMAT_TYPE_SWIZZLE 0x00000200
+#define SURFACES3D_CLIP_SIZE 0x00000304
+#define SURFACES3D_PITCH 0x00000308
+#define SURFACES3D_RENDER_OFFSET 0x0000030C
+#define SURFACES3D_DEPTH_OFFSET 0x00000310
+
+/*
+ * Scissor clip rectangle
+ */
+typedef volatile struct {
+ u32 NoOperation; /* 0100-0103 */
+ u32 Notify; /* 0104-0107 */
+ u32 Reserved00[0x01E];
+ u32 SetContextDmaNotify; /* 0180-0183 */
+ u32 SetContextDmaImage; /* 0184-0187 */
+ u32 Reserved01[0x05E];
+ u32 TopLeft; /* 0300-0303 */
+ u32 WidthHeight; /* 0304-0307 */
+ u32 Reserved02[0x73E];
+} NVClip;
+#define CLIP_TOP_LEFT 0x00000300
+#define CLIP_WIDTH_HEIGHT 0x00000304
+
+/*
+ * Global alpha factor
+ */
+typedef volatile struct {
+ u32 NoOperation; /* 0100-0103 */
+ u32 Notify; /* 0104-0107 */
+ u32 Reserved00[0x01E];
+ u32 SetContextDmaNotify; /* 0180-0183 */
+ u32 Reserved01[0x05F];
+ u32 SetBeta1D31; /* 0300-0303 */
+ u32 Reserved02[0x73F];
+} NVBeta1;
+#define BETA1_FACTOR 0x00000300
+
+/*
+ * Global ARGB factor
+ */
+typedef volatile struct {
+ u32 NoOperation; /* 0100-0103 */
+ u32 Notify; /* 0104-0107 */
+ u32 Reserved00[0x01E];
+ u32 SetContextDmaNotify; /* 0180-0183 */
+ u32 Reserved01[0x05F];
+ u32 SetBetaFactor; /* 0300-0303 */
+ u32 Reserved02[0x73F];
+} NVBeta4;
+#define BETA4_FACTOR 0x00000300
+
+/*
+ * Generic Flags
+ */
+/* Operation */
+#define OPERATION_COPY 0
+#define OPERATION_ROP 1
+#define OPERATION_BLEND 2
+#define OPERATION_SRCCOPY 3
+#define OPERATION_COLOR_MULTIPLY 4
+#define OPERATION_BLEND_PREMULTIPLIED 5
+/* ColorConversion */
+#define COLOR_CONVERSION_DITHER 0
+#define COLOR_CONVERSION_TRUNCATE 1
+#define COLOR_CONVERSION_SUBTR_TRUNCATE 2
+
+/*
+ * 2D solid rectangle
+ */
+typedef volatile struct {
+ u32 NoOperation; /* 0100-0103 */
+ u32 Notify; /* 0104-0107 */
+ u32 Reserved00[0x01E];
+ u32 SetContextDmaNotify; /* 0180-0183 */
+ u32 SetContextClip; /* 0184-0187 */
+ u32 SetContextPattern; /* 0188-018B */
+ u32 SetContextRop; /* 018C-018F */
+ u32 SetContextBeta1; /* 0190-0193 */
+ u32 SetContextSurface; /* 0194-0197 */
+ u32 Reserved01[0x059];
+ u32 SetOperation; /* 02FC-02FF */
+ u32 SetColorFormat; /* 0300-0303 */
+ u32 Color; /* 0304-0307 */
+ u32 Reserved02[0x03E];
+ u32 TopLeft; /* 0400-0403 */
+ u32 WidthHeight; /* 0404-0407 */
+ u32 Reserved03[0x6FE];
+} NVRectangle;
+#define RECT_OPERATION 0x000002FC
+#define RECT_COLOR_FORMAT 0x00000300
+#define RECT_COLOR_FORMAT_Y16 0x00000001
+#define RECT_COLOR_FORMAT_A1Y15 0x00000002
+#define RECT_COLOR_FORMAT_Y32 0x00000003
+#define RECT_COLOR 0x00000304
+#define RECT_TOP_LEFT 0x00000400
+#define RECT_WIDTH_HEIGHT 0x00000404
+
+/*
+ * 2D solid triangle
+ */
+typedef volatile struct {
+ u32 NoOperation; /* 0100-0103 */
+ u32 Notify; /* 0104-0107 */
+ u32 Reserved00[0x01E];
+ u32 SetContextDmaNotify; /* 0180-0183 */
+ u32 SetContextClip; /* 0184-0187 */
+ u32 SetContextPattern; /* 0188-018B */
+ u32 SetContextRop; /* 018C-018F */
+ u32 SetContextBeta1; /* 0190-0193 */
+ u32 SetContextSurface; /* 0194-0197 */
+ u32 Reserved01[0x059];
+ u32 SetOperation; /* 02FC-02FF */
+ u32 SetColorFormat; /* 0300-0303 */
+ u32 Color; /* 0304-0307 */
+ u32 Reserved02[0x002];
+ u32 TrianglePoint0; /* 0310-0313 */
+ u32 TrianglePoint1; /* 0314-0317 */
+ u32 TrianglePoint2; /* 0318-031B */
+ u32 Reserved03[0x001];
+ s32 Triangle32Point0X; /* 0320-0323 */
+ s32 Triangle32Point0Y; /* 0324-0327 */
+ s32 Triangle32Point1X; /* 0328-032B */
+ s32 Triangle32Point1Y; /* 032C-032F */
+ s32 Triangle32Point2X; /* 0330-0333 */
+ s32 Triangle32Point2Y; /* 0334-0337 */
+ u32 Reserved04[0x032];
+ u32 Trimesh[32]; /* 0400-047F */
+ struct { /* 0480- */
+ s32 x; /* 0- 3 */
+ s32 y; /* 4- 7 */
+ } Trimesh32[16]; /* -04FF */
+ struct { /* 0500- */
+ u32 color; /* 0- 3 */
+ u32 point0; /* 4- 7 */
+ u32 point1; /* 8- B */
+ u32 point2; /* C- F */
+ } ColorTriangle[8]; /* -057F */
+ struct { /* 0580- */
+ u32 color; /* 0- 3 */
+ u32 point; /* 4- 7 */
+ } ColorTrimesh[16]; /* -05FF */
+ u32 Reserved05[0x680];
+} NVTriangle;
+#define TRI_OPERATION 0x000002FC
+#define TRI_COLOR_FORMAT 0x00000300
+#define TRI_COLOR_FORMAT_Y16 0x00000001
+#define TRI_COLOR_FORMAT_A1Y15 0x00000002
+#define TRI_COLOR_FORMAT_Y32 0x00000003
+#define TRI_COLOR 0x00000304
+#define TRI_POINT0 0x00000310
+#define TRI_POINT1 0x00000314
+#define TRI_POINT2 0x00000318
+
+/*
+ * 2D solid
+ */
+typedef volatile struct {
+ u32 NoOperation; /* 0100-0103 */
+ u32 Notify; /* 0104-0107 */
+ u32 Reserved00[0x01E];
+ u32 SetContextDmaNotify; /* 0180-0183 */
+ u32 SetContextClip; /* 0184-0187 */
+ u32 SetContextPattern; /* 0188-018B */
+ u32 SetContextRop; /* 018C-018F */
+ u32 SetContextBeta1; /* 0190-0193 */
+ u32 SetContextSurface; /* 0194-0197 */
+ u32 Reserved01[0x059];
+ u32 SetOperation; /* 02FC-02FF */
+ u32 SetColorFormat; /* 0300-0303 */
+ u32 Color; /* 0304-0307 */
+ u32 Reserved02[0x03E];
+ struct { /* 0400- */
+ u32 point0; /* 0- 3 */
+ u32 point1; /* 4- 7 */
+ } Lin[16]; /* -047F */
+ struct { /* 0480- */
+ u32 point0X; /* 0- 3 */
+ u32 point0Y; /* 4- 7 */
+ u32 point1X; /* 8- B */
+ u32 point1Y; /* C- F */
+ } Lin32[8]; /* -04FF */
+ u32 PolyLin[32]; /* 0500-057F */
+ struct { /* 0580- */
+ u32 x; /* 0- 3 */
+ u32 y; /* 4- 7 */
+ } PolyLin32[16]; /* -05FF */
+ struct { /* 0600- */
+ u32 color; /* 0- 3 */
+ u32 point; /* 4- 7 */
+ } ColorPolyLin[16]; /* -067F */
+ u32 Reserved03[0x660];
+} NVLine;
+#define LINE_OPERATION 0x000002FC
+#define LINE_COLOR_FORMAT 0x00000300
+#define LINE_COLOR_FORMAT_Y16 0x00000001
+#define LINE_COLOR_FORMAT_A1Y15 0x00000002
+#define LINE_COLOR_FORMAT_Y32 0x00000003
+#define LINE_COLOR 0x00000304
+#define LINE_POINT0 0x00000400
+#define LINE_POINT1 0x00000404
+
+/*
+ * 2D screen-screen BLT
+ */
+typedef volatile struct {
+ u32 NoOperation; /* 0100-0103 */
+ u32 Notify; /* 0104-0107 */
+ u32 WaitForIdle; /* 0108-010B (09F_WAIT_FOR_IDLE) */
+ u32 WaitForSync; /* 010C-010F (09F_WAIT_FOR_CRTC) */
+ u32 Reserved00[0x01C];
+ u32 SetContextDmaNotify; /* 0180-0183 */
+ u32 SetContextColorKey; /* 0184-0187 */
+ u32 SetContextClip; /* 0188-018B */
+ u32 SetContextPattern; /* 018C-018F */
+ u32 SetContextRop; /* 0190-0193 */
+ u32 SetContextBeta1; /* 0194-0197 */
+ u32 SetContextBeta4; /* 0198-019B */
+ u32 SetContextSurface; /* 019C-019F */
+ u32 Reserved01[0x057];
+ u32 SetOperation; /* 02FC-02FF */
+ u32 TopLeftSrc; /* 0300-0303 */
+ u32 TopLeftDst; /* 0304-0307 */
+ u32 WidthHeight; /* 0308-030B */
+ u32 Reserved02[0x73D];
+} NVScreenBlt;
+#define BLIT_OPERATION 0x000002FC
+#define BLIT_TOP_LEFT_SRC 0x00000300
+#define BLIT_TOP_LEFT_DST 0x00000304
+#define BLIT_WIDTH_HEIGHT 0x00000308
+
+/*
+ * 2D CPU to screen BLT
+ */
+typedef volatile struct {
+ u32 NoOperation; /* 0100-0103 */
+ u32 Notify; /* 0104-0107 */
+ u32 Reserved00[0x01E];
+ u32 SetContextDmaNotify; /* 0180-0183 */
+ u32 SetContextColorKey; /* 0184-0187 */
+ u32 SetContextClip; /* 0188-018B */
+ u32 SetContextPattern; /* 018C-018F */
+ u32 SetContextRop; /* 0190-0193 */
+ u32 SetContextBeta1; /* 0194-0197 */
+ u32 SetContextBeta4; /* 0198-019B */
+ u32 SetContextSurface; /* 019C-019F */
+ u32 Reserved01[0x056];
+ u32 SetColorConversion; /* 02F8-02FB */
+ u32 SetOperation; /* 02FC-02FF */
+ u32 SetColorFormat; /* 0300-0303 */
+ u32 Point; /* 0304-0307 */
+ u32 SizeOut; /* 0308-030B */
+ u32 SizeIn; /* 030C-030F */
+ u32 Reserved02[0x03C];
+ u32 Pixel[1792]; /* 0400- */
+} NVImageBlt;
+#define IBLIT_COLOR_CONVERSION 0x000002F8
+#define IBLIT_OPERATION 0x000002FC
+#define IBLIT_COLOR_FORMAT 0x00000300
+#define IBLIT_COLOR_FORMAT_R5G6B5 0x00000001
+#define IBLIT_COLOR_FORMAT_A1R5G5B5 0x00000002
+#define IBLIT_COLOR_FORMAT_X1R5G5B5 0x00000003
+#define IBLIT_COLOR_FORMAT_A8R8G8B8 0x00000004
+#define IBLIT_COLOR_FORMAT_X8R8G8B8 0x00000005
+#define IBLIT_POINT 0x00000304
+#define IBLIT_SIZE_OUT 0x00000308
+#define IBLIT_SIZE_IN 0x0000030C
+#define IBLIT_PIXEL0 0x00000400
+
+/*
+ * 2D scaled image BLT
+ */
+typedef volatile struct {
+ u32 NoOperation; /* 0100-0103 */
+ u32 Notify; /* 0104-0107 */
+ u32 Reserved00[0x01E];
+ u32 SetContextDmaNotify; /* 0180-0183 */
+ u32 SetContextDmaImage; /* 0184-0187 */
+ u32 SetContextPattern; /* 0188-018B */
+ u32 SetContextRop; /* 018C-018F */
+ u32 SetContextBeta1; /* 0190-0193 */
+ u32 SetContextBeta4; /* 0194-0197 */
+ u32 SetContextSurface; /* 0198-019C */
+ u32 Reserved01[0x058];
+ u32 SetColorConversion; /* 02FC-02FF */
+ u32 SetColorFormat; /* 0300-0303 */
+ u32 SetOperation; /* 0304-0307 */
+ u32 ClipPoint; /* 0308-030B */
+ u32 ClipSize; /* 030C-030F */
+ u32 ImageOutPoint; /* 0310-0313 */
+ u32 ImageOutSize; /* 0314-0317 */
+ u32 DuDx; /* 0318-031B */
+ u32 DvDy; /* 031C-031F */
+ u32 Reserved02[0x038];
+ u32 ImageInSize; /* 0400-0403 */
+ u32 ImageInFormat; /* 0404-0407 */
+ u32 ImageInOffset; /* 0408-040B */
+ u32 ImageInPoint; /* 040C-040F */
+ u32 Reserved03[0x6FC];
+} NVScaledImage;
+#define SCALER_COLOR_CONVERSION 0x000002FC
+#define SCALER_COLOR_FORMAT 0x00000300
+#define SCALER_COLOR_FORMAT_A1R5G5B5 0x00000001
+#define SCALER_COLOR_FORMAT_X1R5G5B5 0x00000002
+#define SCALER_COLOR_FORMAT_A8R8G8B8 0x00000003
+#define SCALER_COLOR_FORMAT_X8R8G8B8 0x00000004
+#define SCALER_COLOR_FORMAT_V8YB8U8YA8 0x00000005
+#define SCALER_COLOR_FORMAT_YB8V8YA8U8 0x00000006
+#define SCALER_COLOR_FORMAT_R5G6B5 0x00000007
+#define SCALER_COLOR_FORMAT_Y8 0x00000008
+#define SCALER_COLOR_FORMAT_AY8 0x00000009
+#define SCALER_OPERATION 0x00000304
+#define SCALER_CLIP_POINT 0x00000308
+#define SCALER_CLIP_SIZE 0x0000030C
+#define SCALER_OUT_POINT 0x00000310
+#define SCALER_OUT_SIZE 0x00000314
+#define SCALER_DU_DX 0x00000318
+#define SCALER_DV_DY 0x0000031C
+#define SCALER_IN_SIZE 0x00000400
+#define SCALER_IN_FORMAT 0x00000404
+#define SCALER_IN_FORMAT_ORIGIN_CENTER 0x00010000
+#define SCALER_IN_FORMAT_ORIGIN_CORNER 0x00020000
+#define SCALER_IN_FORMAT_FILTER_NEAREST 0x00000000
+#define SCALER_IN_FORMAT_FILTER_LINEAR 0x01000000
+#define SCALER_IN_OFFSET 0x00000408
+#define SCALER_IN_POINT 0x0000040C
+
+/*
+ * 2D stretched image from CPU BLT
+ */
+typedef volatile struct {
+ u32 NoOperation; /* 0100-0103 */
+ u32 Notify; /* 0104-0107 */
+ u32 Reserved00[0x01E];
+ u32 SetContextDmaNotify; /* 0180-0183 */
+ u32 SetContextColorKey; /* 0184-0187 */
+ u32 SetContextPattern; /* 0188-018B */
+ u32 SetContextRop; /* 018C-018F */
+ u32 SetContextBeta1; /* 0190-0193 */
+ u32 SetContextBeta4; /* 0194-0197 */
+ u32 SetContextSurface; /* 0198-019C */
+ u32 Reserved01[0x057];
+ u32 SetColorConversion; /* 02F8-02FB */
+ u32 SetOperation; /* 02FC-02FF */
+ u32 SetColorFormat; /* 0300-0303 */
+ u32 ImageInSize; /* 0304-0307 */
+ u32 DxDu; /* 0308-030B */
+ u32 DyDv; /* 030C-030F */
+ u32 ClipPoint; /* 0310-0313 */
+ u32 ClipSize; /* 0314-0317 */
+ u32 ImageOutPoint; /* 0318-031B */
+ u32 Reserved02[0x039];
+ u32 Pixel[1792]; /* 0400- */
+} NVStretchedImage;
+#define ISTRETCH_COLOR_CONVERSION 0x000002F8
+#define ISTRETCH_OPERATION 0x000002FC
+#define ISTRETCH_COLOR_FORMAT 0x00000300
+#define ISTRETCH_COLOR_FORMAT_R5G6B5 0x00000001
+#define ISTRETCH_COLOR_FORMAT_A1R5G5B5 0x00000002
+#define ISTRETCH_COLOR_FORMAT_X1R5G5B5 0x00000003
+#define ISTRETCH_COLOR_FORMAT_A8R8G8B8 0x00000004
+#define ISTRETCH_COLOR_FORMAT_X8R8G8B8 0x00000005
+#define ISTRETCH_IN_SIZE 0x00000304
+#define ISTRETCH_DX_DU 0x00000308
+#define ISTRETCH_DY_DV 0x0000030C
+#define ISTRETCH_CLIP_POINT 0x00000310
+#define ISTRETCH_CLIP_SIZE 0x00000314
+#define ISTRETCH_OUT_POINT 0x00000318
+#define ISTRETCH_PIXEL0 0x00000400
+
+/*
+ * 3D textured, Z buffered triangle
+ */
+typedef volatile struct {
+ u32 NoOperation; /* 0100-0103 */
+ u32 Notify; /* 0104-0107 */
+ u32 Reserved00[0x01E];
+ u32 SetContextDmaNotify; /* 0180-0183 */
+ u32 SetContextDmaA; /* 0184-0187 */
+ u32 SetContextDmaB; /* 0188-018B */
+ u32 SetContextSurfaces; /* 018C-018F */
+ u32 Reserved01[0x05C];
+ u32 ColorKey; /* 0300-0303 */
+ u32 TextureOffset; /* 0304-0307 */
+ u32 TextureFormat; /* 0308-030B */
+ u32 TextureFilter; /* 030C-030F */
+ u32 Blend; /* 0310-0313 */
+ u32 Control; /* 0314-0317 */
+ u32 FogColor; /* 0318-031B */
+ u32 Reserved02[0x039];
+ struct { /* 0400- */
+ float sx; /* 00- 03 */
+ float sy; /* 04- 07 */
+ float sz; /* 08- 0B */
+ float rhw; /* 0C- 0F */
+ u32 color; /* 10- 13 */
+ u32 specular; /* 14- 17 */
+ float ts; /* 18- 1B */
+ float tt; /* 1C- 1F */
+ } Tlvertex[16]; /* -05FF */
+ u32 DrawPrimitives[64]; /* 0600-063F */
+ u32 Reserved03[0x640];
+} NVTexturedTriangleDx5;
+#define TXTRI_COLOR_KEY 0x00000300
+#define TXTRI_OFFSET 0x00000304
+#define TXTRI_FORMAT 0x00000308
+#define TXTRI_FORMAT_CONTEXT_DMA_A 0x00000001
+#define TXTRI_FORMAT_CONTEXT_DMA_B 0x00000002
+#define TXTRI_FORMAT_COLORKEYENABLE 0x00000004
+#define TXTRI_FORMAT_ORIGIN_ZOH_CENTER 0x00000010
+#define TXTRI_FORMAT_ORIGIN_ZOH_CORNER 0x00000020
+#define TXTRI_FORMAT_ORIGIN_FOH_CENTER 0x00000040
+#define TXTRI_FORMAT_ORIGIN_FOH_CORNER 0x00000080
+#define TXTRI_FORMAT_COLOR_Y8 0x00000100
+#define TXTRI_FORMAT_COLOR_A1R5G5B5 0x00000200
+#define TXTRI_FORMAT_COLOR_X1R5G5B5 0x00000300
+#define TXTRI_FORMAT_COLOR_A4R4G4B4 0x00000400
+#define TXTRI_FORMAT_COLOR_R5G6B5 0x00000500
+#define TXTRI_FORMAT_COLOR_A8R8G8B8 0x00000600
+#define TXTRI_FORMAT_COLOR_X8R8G8B8 0x00000700
+#define TXTRI_FORMAT_MIPMAP_LEVELS_MSK 0x0000F000
+#define TXTRI_FORMAT_BASE_SIZE_U_MSK 0x000F0000
+#define TXTRI_FORMAT_BASE_SIZE_V_MSK 0x00F00000
+#define TXTRI_FORMAT_U_WRAP 0x01000000
+#define TXTRI_FORMAT_U_MIRROR 0x02000000
+#define TXTRI_FORMAT_U_CLAMP 0x03000000
+#define TXTRI_FORMAT_U_CLAMP_BORDER 0x04000000
+#define TXTRI_FORMAT_WRAPU_ENABLE 0x08000000
+#define TXTRI_FORMAT_V_WRAP 0x10000000
+#define TXTRI_FORMAT_V_MIRROR 0x20000000
+#define TXTRI_FORMAT_V_CLAMP 0x30000000
+#define TXTRI_FORMAT_V_CLAMP_BORDER 0x40000000
+#define TXTRI_FORMAT_WRAPV_ENABLE 0x80000000
+#define TXTRI_FILTER 0x0000030C
+#define TXTRI_FILTER_KERNEL_SIZE_X_MSK 0x000000FF
+#define TXTRI_FILTER_KERNEL_SIZE_Y_MSK 0x00007F00
+#define TXTRI_FILTER_MIPMAP_DITHER_ENABLE 0x00008000
+#define TXTRI_FILTER_MIPMAPLODBIAS_MSK 0x00FF0000
+#define TXTRI_FILTER_TEXTUREMIN_NEAREST 0x01000000
+#define TXTRI_FILTER_TEXTUREMIN_LINEAR 0x02000000
+#define TXTRI_FILTER_TEXTUREMIN_MIPNEAREST 0x03000000
+#define TXTRI_FILTER_TEXTUREMIN_MIPLINEAR 0x04000000
+#define TXTRI_FILTER_TEXTUREMIN_LINEARMIPNEAREST 0x05000000
+#define TXTRI_FILTER_TEXTUREMIN_LINEARMIPLINEAR 0x06000000
+#define TXTRI_FILTER_ANISOTROPIC_MIN_ENABLE 0x08000000
+#define TXTRI_FILTER_TEXTUREMAG_NEAREST 0x10000000
+#define TXTRI_FILTER_TEXTUREMAG_LINEAR 0x20000000
+#define TXTRI_FILTER_TEXTUREMAG_MIPNEAREST 0x30000000
+#define TXTRI_FILTER_TEXTUREMAG_MIPLINEAR 0x40000000
+#define TXTRI_FILTER_TEXTUREMAG_LINEARMIPNEAREST 0x50000000
+#define TXTRI_FILTER_TEXTUREMAG_LINEARMIPLINEAR 0x60000000
+#define TXTRI_FILTER_ANISOTROPIC_MAG_ENABLE 0x80000000
+#define TXTRI_BLEND 0x00000310
+#define TXTRI_BLEND_TEXTUREMAPBLEND_DECAL 0x00000001
+#define TXTRI_BLEND_TEXTUREMAPBLEND_MODULATE 0x00000002
+#define TXTRI_BLEND_TEXTUREMAPBLEND_DECALALPHA 0x00000003
+#define TXTRI_BLEND_TEXTUREMAPBLEND_MODULATEALPHA 0x00000004
+#define TXTRI_BLEND_TEXTUREMAPBLEND_DECALMASK 0x00000005
+#define TXTRI_BLEND_TEXTUREMAPBLEND_MODULATEMASK 0x00000006
+#define TXTRI_BLEND_TEXTUREMAPBLEND_COPY 0x00000007
+#define TXTRI_BLEND_TEXTUREMAPBLEND_ADD 0x00000008
+#define TXTRI_BLEND_OPERATION_MUX_TALPHALSB 0x00000010
+#define TXTRI_BLEND_OPERATION_MUX_TALPHAMSB 0x00000020
+#define TXTRI_BLEND_SHADEMODE_FLAT 0x00000040
+#define TXTRI_BLEND_SHADEMODE_GOURAUD 0x00000080
+#define TXTRI_BLEND_SHADEMODE_PHONG 0x000000C0
+#define TXTRI_BLEND_TEXTUREPERSPECTIVE_ENABLE 0x00000100
+#define TXTRI_BLEND_SPECULAR_ENABLE 0x00001000
+#define TXTRI_BLEND_FOG_ENABLE 0x00010000
+#define TXTRI_BLEND_ALPHABLEND_ENABLE 0x00100000
+#define TXTRI_BLEND_SRCBLEND_ZERO 0x01000000
+#define TXTRI_BLEND_SRCBLEND_ONE 0x02000000
+#define TXTRI_BLEND_SRCBLEND_SRCCOLOR 0x03000000
+#define TXTRI_BLEND_SRCBLEND_INVSRCCOLOR 0x04000000
+#define TXTRI_BLEND_SRCBLEND_SRCALPHA 0x05000000
+#define TXTRI_BLEND_SRCBLEND_INVSRCALPHA 0x06000000
+#define TXTRI_BLEND_SRCBLEND_DESTALPHA 0x07000000
+#define TXTRI_BLEND_SRCBLEND_INVDESTALPHA 0x08000000
+#define TXTRI_BLEND_SRCBLEND_DESTCOLOR 0x09000000
+#define TXTRI_BLEND_SRCBLEND_INVDESTCOLOR 0x0A000000
+#define TXTRI_BLEND_SRCBLEND_SRCALPHASAT 0x0B000000
+#define TXTRI_BLEND_DESTBLEND_ZERO 0x10000000
+#define TXTRI_BLEND_DESTBLEND_ONE 0x20000000
+#define TXTRI_BLEND_DESTBLEND_SRCCOLOR 0x30000000
+#define TXTRI_BLEND_DESTBLEND_INVSRCCOLOR 0x40000000
+#define TXTRI_BLEND_DESTBLEND_SRCALPHA 0x50000000
+#define TXTRI_BLEND_DESTBLEND_INVSRCALPHA 0x60000000
+#define TXTRI_BLEND_DESTBLEND_DESTALPHA 0x70000000
+#define TXTRI_BLEND_DESTBLEND_INVDESTALPHA 0x80000000
+#define TXTRI_BLEND_DESTBLEND_DESTCOLOR 0x90000000
+#define TXTRI_BLEND_DESTBLEND_INVDESTCOLOR 0xA0000000
+#define TXTRI_BLEND_DESTBLEND_SRCALPHASAT 0xB0000000
+#define TXTRI_CONTROL 0x00000314
+#define TXTRI_CONTROL_ALPHAREF_MSK 0x000000FF
+#define TXTRI_CONTROL_ALPHAFUNC_NEVER 0x00000100
+#define TXTRI_CONTROL_ALPHAFUNC_LESS 0x00000200
+#define TXTRI_CONTROL_ALPHAFUNC_EQUAL 0x00000300
+#define TXTRI_CONTROL_ALPHAFUNC_LESSEQUAL 0x00000400
+#define TXTRI_CONTROL_ALPHAFUNC_GREATER 0x00000500
+#define TXTRI_CONTROL_ALPHAFUNC_NOTEQUAL 0x00000600
+#define TXTRI_CONTROL_ALPHAFUNC_GREATEREQUAL 0x00000700
+#define TXTRI_CONTROL_ALPHAFUNC_ALWAYS 0x00000800
+#define TXTRI_CONTROL_ALPHATEST_ENABLE 0x00001000
+#define TXTRI_CONTROL_ORIGIN_CENTER 0x00000000
+#define TXTRI_CONTROL_ORIGIN_CORNER 0x00002000
+#define TXTRI_CONTROL_Z_ENABLE 0x00004000
+#define TXTRI_CONTROL_ZFUNC_NEVER 0x00010000
+#define TXTRI_CONTROL_ZFUNC_LESS 0x00020000
+#define TXTRI_CONTROL_ZFUNC_EQUAL 0x00030000
+#define TXTRI_CONTROL_ZFUNC_LESSEQUAL 0x00040000
+#define TXTRI_CONTROL_ZFUNC_GREATER 0x00050000
+#define TXTRI_CONTROL_ZFUNC_NOTEQUAL 0x00060000
+#define TXTRI_CONTROL_ZFUNC_GREATEREQUAL 0x00070000
+#define TXTRI_CONTROL_ZFUNC_ALWAYS 0x00080000
+#define TXTRI_CONTROL_CULLMODE_NONE 0x00100000
+#define TXTRI_CONTROL_CULLMODE_CW 0x00200000
+#define TXTRI_CONTROL_CULLMODE_CCW 0x00300000
+#define TXTRI_CONTROL_DITHER_ENABLE 0x00400000
+#define TXTRI_CONTROL_Z_PERSPECTIVE_ENABLE 0x00800000
+#define TXTRI_CONTROL_ZWRITE_ENABLE 0x01000000
+#define TXTRI_CONTROL_Z_FORMAT_FIXED 0x40000000
+#define TXTRI_CONTROL_Z_FORMAT_FLOAT 0x80000000
+#define TXTRI_FOG_COLOR 0x00000318
+#define TXTRI_VERTEX0 0x00000400
+#define TXTRI_VERTEX0_X 0x00000400
+#define TXTRI_VERTEX0_Y 0x00000404
+#define TXTRI_VERTEX0_Z 0x00000408
+#define TXTRI_VERTEX0_W 0x0000040C
+#define TXTRI_VERTEX0_COLOR 0x00000410
+#define TXTRI_VERTEX0_SPECULAR 0x00000414
+#define TXTRI_VERTEX0_S 0x00000418
+#define TXTRI_VERTEX0_T 0x0000041C
+#define TXTRI_PRIMITIVE0 0x00000600
+
+
+
+
+typedef volatile struct {
+ u32 SetObject; /* 0000-0003 */
+ u32 Reserved00[0x003];
+#ifdef WORDS_BIGENDIAN
+ u32 Free; /* 0010-0013 */
+#else
+ u16 Free; /* 0010-0011 */
+ u16 Nop; /* 0012-0013 */
+#endif
+ u32 Reserved01[0x00B];
+ u32 DmaPut; /* 0040-0043 */
+ u32 DmaGet; /* 0044-0047 */
+ u32 Reserved02[0x02E];
+ union {
+ NVSurfaces2D Surfaces2D;
+ NVSurfaces3D Surfaces3D;
+ NVClip Clip;
+ NVBeta1 Beta1;
+ NVBeta4 Beta4;
+ NVRectangle Rectangle;
+ NVTriangle Triangle;
+ NVLine Line;
+ NVScreenBlt ScreenBlt;
+ NVImageBlt ImageBlt;
+ NVScaledImage ScaledImage;
+ NVStretchedImage StretchedImage;
+ NVTexturedTriangleDx5 TexTriangle;
+ } o;
+} NVDmaSubChannel;
+
+
+typedef volatile struct {
+ NVDmaSubChannel sub[8];
+} NVDmaChannel;
+
+
+
+#endif /* __NVIDIA_REGS_H__ */