initialize command processor.
little bit close to 3D rendering git-svn-id: svn://kolibrios.org@791 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -152,6 +152,64 @@ macro rdr op1, op2
|
||||
mov op1, [edi+op2]
|
||||
}
|
||||
|
||||
macro BEGIN_RING
|
||||
{
|
||||
mov edi, [rhd.ring_base]
|
||||
mov edx, [rhd.ring_wp]
|
||||
}
|
||||
|
||||
macro COMMIT_RING
|
||||
{
|
||||
and edx, 0x1FFF
|
||||
mov [rhd.ring_wp], edx
|
||||
|
||||
lock add [esp], dword 0 ; Flush writes to ring
|
||||
|
||||
wrr RADEON_CP_RB_WPTR, edx
|
||||
rdr eax, RADEON_CP_RB_RPTR
|
||||
}
|
||||
|
||||
macro OUT_PACKET0 reg, count
|
||||
{
|
||||
mov eax, (RADEON_CP_PACKET0 + (count shl 16) + (reg shr 2))
|
||||
mov [edi+edx*4], eax
|
||||
inc edx
|
||||
}
|
||||
|
||||
macro OUT_PACKET3 pkt, count \
|
||||
{
|
||||
mov eax, (RADEON_CP_PACKET3 or pkt or (count shl 16))
|
||||
mov [edi+edx*4], eax
|
||||
inc edx
|
||||
}
|
||||
|
||||
macro OUT_RING val
|
||||
{
|
||||
mov eax, val
|
||||
mov [edi+edx*4], eax
|
||||
inc edx
|
||||
}
|
||||
|
||||
macro RADEON_WAIT_UNTIL_IDLE
|
||||
{
|
||||
OUT_PACKET0 RADEON_WAIT_UNTIL, 0
|
||||
OUT_RING RADEON_WAIT_2D_IDLECLEAN + \
|
||||
RADEON_WAIT_3D_IDLECLEAN + \
|
||||
RADEON_WAIT_HOST_IDLECLEAN
|
||||
}
|
||||
|
||||
macro RADEON_PURGE_CACHE
|
||||
{
|
||||
OUT_PACKET0 R5XX_RB3D_DSTCACHE_CTLSTAT, 0
|
||||
OUT_RING R5XX_RB3D_DC_FLUSH_ALL
|
||||
}
|
||||
|
||||
macro RADEON_PURGE_ZCACHE
|
||||
{
|
||||
OUT_PACKET0 RADEON_RB3D_ZCACHE_CTLSTAT, 0
|
||||
OUT_RING RADEON_RB3D_ZC_FLUSH_ALL
|
||||
}
|
||||
|
||||
macro wrr dest, src
|
||||
{
|
||||
mov edi, [ati_io]
|
||||
@@ -1246,6 +1304,267 @@ msgR5xxFIFOWaitLocaltimeout \
|
||||
db 'R5xxFIFOWaitLocal timeout error', 13, 10,0
|
||||
msgR5xx2DIdleLocaltimeout \
|
||||
db 'R5xx2DIdleLocal timeout error', 13,10,0
|
||||
|
||||
align 4
|
||||
R520_cp_microcode:
|
||||
dd 0x4200e000, 0000000000
|
||||
dd 0x4000e000, 0000000000
|
||||
dd 0x00000099, 0x00000008
|
||||
dd 0x0000009d, 0x00000008
|
||||
dd 0x4a554b4a, 0000000000
|
||||
dd 0x4a4a4467, 0000000000
|
||||
dd 0x55526f75, 0000000000
|
||||
dd 0x4a7e7d65, 0000000000
|
||||
dd 0xe0dae6f6, 0000000000
|
||||
dd 0x4ac54a4a, 0000000000
|
||||
dd 0xc8828282, 0000000000
|
||||
dd 0xbf4acfc1, 0000000000
|
||||
dd 0x87b04ad5, 0000000000
|
||||
dd 0xb5838383, 0000000000
|
||||
dd 0x4a0f85ba, 0000000000
|
||||
dd 0x000ca000, 0x00000004
|
||||
dd 0x000d0012, 0x00000038
|
||||
dd 0x0000e8b4, 0x00000004
|
||||
dd 0x000d0014, 0x00000038
|
||||
dd 0x0000e8b6, 0x00000004
|
||||
dd 0x000d0016, 0x00000038
|
||||
dd 0x0000e854, 0x00000004
|
||||
dd 0x000d0018, 0x00000038
|
||||
dd 0x0000e855, 0x00000004
|
||||
dd 0x000d001a, 0x00000038
|
||||
dd 0x0000e856, 0x00000004
|
||||
dd 0x000d001c, 0x00000038
|
||||
dd 0x0000e857, 0x00000004
|
||||
dd 0x000d001e, 0x00000038
|
||||
dd 0x0000e824, 0x00000004
|
||||
dd 0x000d0020, 0x00000038
|
||||
dd 0x0000e825, 0x00000004
|
||||
dd 0x000d0022, 0x00000038
|
||||
dd 0x0000e830, 0x00000004
|
||||
dd 0x000d0024, 0x00000038
|
||||
dd 0x0000f0c0, 0x00000004
|
||||
dd 0x000d0026, 0x00000038
|
||||
dd 0x0000f0c1, 0x00000004
|
||||
dd 0x000d0028, 0x00000038
|
||||
dd 0x0000e000, 0x00000004
|
||||
dd 0x000d002a, 0x00000038
|
||||
dd 0x0000e000, 0x00000004
|
||||
dd 0x000d002c, 0x00000038
|
||||
dd 0x0000e000, 0x00000004
|
||||
dd 0x000d002e, 0x00000038
|
||||
dd 0x0000e000, 0x00000004
|
||||
dd 0x000d0030, 0x00000038
|
||||
dd 0x0000e000, 0x00000004
|
||||
dd 0x000d0032, 0x00000038
|
||||
dd 0x0000f180, 0x00000004
|
||||
dd 0x000d0034, 0x00000038
|
||||
dd 0x0000f393, 0x00000004
|
||||
dd 0x000d0036, 0x00000038
|
||||
dd 0x0000f38a, 0x00000004
|
||||
dd 0x000d0038, 0x00000038
|
||||
dd 0x0000f38e, 0x00000004
|
||||
dd 0x0000e821, 0x00000004
|
||||
dd 0x0140a000, 0x00000004
|
||||
dd 0x00000043, 0x00000018
|
||||
dd 0x00cce800, 0x00000004
|
||||
dd 0x001b0001, 0x00000004
|
||||
dd 0x08004800, 0x00000004
|
||||
dd 0x001b0001, 0x00000004
|
||||
dd 0x08004800, 0x00000004
|
||||
dd 0x001b0001, 0x00000004
|
||||
dd 0x08004800, 0x00000004
|
||||
dd 0x0000003a, 0x00000008
|
||||
dd 0x0000a000, 0000000000
|
||||
dd 0x2000451d, 0x00000004
|
||||
dd 0x0000e580, 0x00000004
|
||||
dd 0x000ce581, 0x00000004
|
||||
dd 0x08004580, 0x00000004
|
||||
dd 0x000ce581, 0x00000004
|
||||
dd 0x00000047, 0x00000008
|
||||
dd 0x0000a000, 0000000000
|
||||
dd 0x000c2000, 0x00000004
|
||||
dd 0x0000e50e, 0x00000004
|
||||
dd 0x00032000, 0x00000004
|
||||
dd 0x00022051, 0x00000028
|
||||
dd 0x00000051, 0x00000024
|
||||
dd 0x0800450f, 0x00000004
|
||||
dd 0x0000a04b, 0x00000008
|
||||
dd 0x0000e565, 0x00000004
|
||||
dd 0x0000e566, 0x00000004
|
||||
dd 0x00000052, 0x00000008
|
||||
dd 0x03cca5b4, 0x00000004
|
||||
dd 0x05432000, 0x00000004
|
||||
dd 0x00022000, 0x00000004
|
||||
dd 0x4ccce05e, 0x00000030
|
||||
dd 0x08274565, 0x00000004
|
||||
dd 0x0000005e, 0x00000030
|
||||
dd 0x08004564, 0x00000004
|
||||
dd 0x0000e566, 0x00000004
|
||||
dd 0x00000055, 0x00000008
|
||||
dd 0x00802061, 0x00000010
|
||||
dd 0x00202000, 0x00000004
|
||||
dd 0x001b00ff, 0x00000004
|
||||
dd 0x01000064, 0x00000010
|
||||
dd 0x001f2000, 0x00000004
|
||||
dd 0x001c00ff, 0x00000004
|
||||
dd 0000000000, 0x0000000c
|
||||
dd 0x00000072, 0x00000030
|
||||
dd 0x00000055, 0x00000008
|
||||
dd 0x0000e576, 0x00000004
|
||||
dd 0x0000e577, 0x00000004
|
||||
dd 0x0000e50e, 0x00000004
|
||||
dd 0x0000e50f, 0x00000004
|
||||
dd 0x0140a000, 0x00000004
|
||||
dd 0x00000069, 0x00000018
|
||||
dd 0x00c0e5f9, 0x000000c2
|
||||
dd 0x00000069, 0x00000008
|
||||
dd 0x0014e50e, 0x00000004
|
||||
dd 0x0040e50f, 0x00000004
|
||||
dd 0x00c0006c, 0x00000008
|
||||
dd 0x0000e570, 0x00000004
|
||||
dd 0x0000e571, 0x00000004
|
||||
dd 0x0000e572, 0x0000000c
|
||||
dd 0x0000a000, 0x00000004
|
||||
dd 0x0140a000, 0x00000004
|
||||
dd 0x0000e568, 0x00000004
|
||||
dd 0x000c2000, 0x00000004
|
||||
dd 0x00000076, 0x00000018
|
||||
dd 0x000b0000, 0x00000004
|
||||
dd 0x18c0e562, 0x00000004
|
||||
dd 0x00000078, 0x00000008
|
||||
dd 0x00c00077, 0x00000008
|
||||
dd 0x000700c7, 0x00000004
|
||||
dd 0x00000080, 0x00000038
|
||||
dd 0x0000e5bb, 0x00000004
|
||||
dd 0x0000e5bc, 0000000000
|
||||
dd 0x0000a000, 0x00000004
|
||||
dd 0x0000e821, 0x00000004
|
||||
dd 0x0000e800, 0000000000
|
||||
dd 0x0000e821, 0x00000004
|
||||
dd 0x0000e82e, 0000000000
|
||||
dd 0x02cca000, 0x00000004
|
||||
dd 0x00140000, 0x00000004
|
||||
dd 0x000ce1cc, 0x00000004
|
||||
dd 0x050de1cd, 0x00000004
|
||||
dd 0x00400000, 0x00000004
|
||||
dd 0x0000008f, 0x00000018
|
||||
dd 0x00c0a000, 0x00000004
|
||||
dd 0x0000008c, 0x00000008
|
||||
dd 0x00000091, 0x00000020
|
||||
dd 0x4200e000, 0000000000
|
||||
dd 0x00000098, 0x00000038
|
||||
dd 0x000ca000, 0x00000004
|
||||
dd 0x00140000, 0x00000004
|
||||
dd 0x000c2000, 0x00000004
|
||||
dd 0x00160000, 0x00000004
|
||||
dd 0x700ce000, 0x00000004
|
||||
dd 0x00140094, 0x00000008
|
||||
dd 0x4000e000, 0000000000
|
||||
dd 0x02400000, 0x00000004
|
||||
dd 0x400ee000, 0x00000004
|
||||
dd 0x02400000, 0x00000004
|
||||
dd 0x4000e000, 0000000000
|
||||
dd 0x000c2000, 0x00000004
|
||||
dd 0x0240e51b, 0x00000004
|
||||
dd 0x0080e50a, 0x00000005
|
||||
dd 0x0080e50b, 0x00000005
|
||||
dd 0x00220000, 0x00000004
|
||||
dd 0x000700c7, 0x00000004
|
||||
dd 0x000000a4, 0x00000038
|
||||
dd 0x0080e5bd, 0x00000005
|
||||
dd 0x0000e5bb, 0x00000005
|
||||
dd 0x0080e5bc, 0x00000005
|
||||
dd 0x00210000, 0x00000004
|
||||
dd 0x02800000, 0x00000004
|
||||
dd 0x00c000ab, 0x00000018
|
||||
dd 0x4180e000, 0x00000040
|
||||
dd 0x000000ad, 0x00000024
|
||||
dd 0x01000000, 0x0000000c
|
||||
dd 0x0100e51d, 0x0000000c
|
||||
dd 0x000045bb, 0x00000004
|
||||
dd 0x000080a7, 0x00000008
|
||||
dd 0x0000f3ce, 0x00000004
|
||||
dd 0x0140a000, 0x00000004
|
||||
dd 0x00cc2000, 0x00000004
|
||||
dd 0x08c053cf, 0x00000040
|
||||
dd 0x00008000, 0000000000
|
||||
dd 0x0000f3d2, 0x00000004
|
||||
dd 0x0140a000, 0x00000004
|
||||
dd 0x00cc2000, 0x00000004
|
||||
dd 0x08c053d3, 0x00000040
|
||||
dd 0x00008000, 0000000000
|
||||
dd 0x0000f39d, 0x00000004
|
||||
dd 0x0140a000, 0x00000004
|
||||
dd 0x00cc2000, 0x00000004
|
||||
dd 0x08c0539e, 0x00000040
|
||||
dd 0x00008000, 0000000000
|
||||
dd 0x03c00830, 0x00000004
|
||||
dd 0x4200e000, 0000000000
|
||||
dd 0x0000a000, 0x00000004
|
||||
dd 0x200045e0, 0x00000004
|
||||
dd 0x0000e5e1, 0000000000
|
||||
dd 0x00000001, 0000000000
|
||||
dd 0x000700c4, 0x00000004
|
||||
dd 0x0800e394, 0000000000
|
||||
dd 0000000000, 0000000000
|
||||
dd 0x0000e8c4, 0x00000004
|
||||
dd 0x0000e8c5, 0x00000004
|
||||
dd 0x0000e8c6, 0x00000004
|
||||
dd 0x0000e928, 0x00000004
|
||||
dd 0x0000e929, 0x00000004
|
||||
dd 0x0000e92a, 0x00000004
|
||||
dd 0x000000c8, 0x00000008
|
||||
dd 0x0000e928, 0x00000004
|
||||
dd 0x0000e929, 0x00000004
|
||||
dd 0x0000e92a, 0x00000004
|
||||
dd 0x000000cf, 0x00000008
|
||||
dd 0xdeadbeef, 0000000000
|
||||
dd 0x00000116, 0000000000
|
||||
dd 0x000700d3, 0x00000004
|
||||
dd 0x080050e7, 0x00000004
|
||||
dd 0x000700d4, 0x00000004
|
||||
dd 0x0800401c, 0x00000004
|
||||
dd 0x0000e01d, 0000000000
|
||||
dd 0x02c02000, 0x00000004
|
||||
dd 0x00060000, 0x00000004
|
||||
dd 0x000000de, 0x00000034
|
||||
dd 0x000000db, 0x00000008
|
||||
dd 0x00008000, 0x00000004
|
||||
dd 0xc000e000, 0000000000
|
||||
dd 0x0000e1cc, 0x00000004
|
||||
dd 0x0500e1cd, 0x00000004
|
||||
dd 0x000ca000, 0x00000004
|
||||
dd 0x000000e5, 0x00000034
|
||||
dd 0x000000e1, 0x00000008
|
||||
dd 0x0000a000, 0000000000
|
||||
dd 0x0019e1cc, 0x00000004
|
||||
dd 0x001b0001, 0x00000004
|
||||
dd 0x0500a000, 0x00000004
|
||||
dd 0x080041cd, 0x00000004
|
||||
dd 0x000ca000, 0x00000004
|
||||
dd 0x000000fb, 0x00000034
|
||||
dd 0x0000004a, 0x00000008
|
||||
dd 0000000000, 0000000000
|
||||
dd 0000000000, 0000000000
|
||||
dd 0000000000, 0000000000
|
||||
dd 0000000000, 0000000000
|
||||
dd 0000000000, 0000000000
|
||||
dd 0000000000, 0000000000
|
||||
dd 0000000000, 0000000000
|
||||
dd 0000000000, 0000000000
|
||||
dd 0000000000, 0000000000
|
||||
dd 0x000c2000, 0x00000004
|
||||
dd 0x001d0018, 0x00000004
|
||||
dd 0x001a0001, 0x00000004
|
||||
dd 0x000000fb, 0x00000034
|
||||
dd 0x0000004a, 0x00000008
|
||||
dd 0x0500a04a, 0x00000008
|
||||
dd 0000000000, 0000000000
|
||||
dd 0000000000, 0000000000
|
||||
dd 0000000000, 0000000000
|
||||
dd 0000000000, 0000000000
|
||||
|
||||
|
||||
end if
|
||||
|
||||
if 0
|
||||
|
Reference in New Issue
Block a user