PS3:HvReverseEngineering:cellGcmInit:FIFODump
From wikibrew
- Here is the dump of FIFO command buffer just after the function cellGcmInit returns.
- At the start of the buffer you will find the subroutine which is used to reset RSX context after every flip.
- The first command executed by RSX FIFO starts at offset 0x10000.
- Who releases the semaphore at offset 0x30 in memory region mapped with lv1_gpu_device_map(8) ??? Because after i mapped it on Linux, it was NOT 0x1. So, something resets it on GameOS, VSH ???
0000000 00040000 0000004 31337000 0000010 003c0180 0000014 66604200 0000020 feed0000 0000024 feed0001 0000030 feed0000 0000034 00000000 0000040 feed0000 0000044 feed0000 0000050 feed0000 0000054 feed0001 0000060 66606660 0000064 66626660 0000070 00000000 0000074 00000000 0000100 feed0000 0000104 feed0000 0000110 00040060 0000114 66616661 0000120 00340200 0000124 00000000 0000130 00000000 0000134 00000121 0000140 00000040 0000144 00000000 0000150 00000000 0000154 00000000 0000160 00000040 0000164 00000001 0000170 00000080 0000174 00000100 0000200 00000040 0000204 00000000 0000210 00100280 0000214 00000040 0000220 00000040 0000224 00000000 0000230 00000000 0000234 00041d80 0000240 00000003 0000244 004802b8 0000250 00000000 0000254 00000000 0000260 0fff0000 0000264 0fff0000 0000270 0fff0000 0000274 0fff0000 0000300 0fff0000 0000304 0fff0000 0000310 0fff0000 0000314 0fff0000 0000320 0fff0000 0000324 0fff0000 0000330 0fff0000 0000334 0fff0000 0000340 0fff0000 0000344 0fff0000 0000350 0fff0000 0000354 0fff0000 0000360 00081d98 0000364 0fff0000 0000370 0fff0000 0000374 00041da4 0000400 00000000 0000404 000403b0 0000410 00100000 0000414 00041454 0000420 00000000 0000424 00041ff4 0000430 003fffff 0000434 00181fc0 0000440 00000000 0000444 06144321 0000450 edcba987 0000454 0000006f 0000460 00171615 0000464 001b1a19 0000470 00280b40 0000474 00000000 0000500 00000000 0000504 00000000 0000510 00000000 0000514 00000000 0000520 00000000 0000524 00000000 0000530 00000000 0000534 00000000 0000540 00000000 0000544 00040a0c 0000550 00000000 0000554 000c0a60 0000560 00000000 0000564 00000000 0000570 00000000 0000574 00080a78 0000600 00000000 0000604 00000000 0000610 00041428 0000614 00000001 0000620 00041d88 0000624 00001000 0000630 00041e94 0000634 00000011 0000640 00041450 0000644 00080003 0000650 00041d64 0000654 02000000 0000660 0004145c 0000664 00000001 0000670 00041fe0 0000674 00000001 0000700 00400b00 0000704 00002dc8 0000710 00002dc8 0000714 00002dc8 0000720 00002dc8 0000724 00002dc8 0000730 00002dc8 0000734 00002dc8 0000740 00002dc8 0000744 00002dc8 0000750 00002dc8 0000754 00002dc8 0000760 00002dc8 0000764 00002dc8 0000770 00002dc8 0000774 00002dc8 0001000 00002dc8 0001004 001008cc 0001010 00000800 0001014 00000000 0001020 00000000 0001024 00000000 0001030 00100240 0001034 0000ffff 0001040 00000000 0001044 00000000 0001050 00000000 0001054 00c003c0 0001060 00010101 0001064 00010101 0001070 00010101 0001074 00010101 0001100 00010101 0001104 00010101 0001110 00010101 0001114 00010101 0001120 00010101 0001124 00010101 0001130 00010101 0001134 00010101 0001140 00010101 0001144 00010101 0001150 00010101 0001154 00010101 0001160 00007421 0001164 00007421 0001170 00007421 0001174 00007421 0001200 00007421 0001204 00007421 0001210 00007421 0001214 00007421 0001220 00007421 0001224 00007421 0001230 00007421 0001234 00007421 0001240 00007421 0001244 00007421 0001250 00007421 0001254 00007421 0001260 9aabaa98 0001264 66666789 0001270 98766666 0001274 89aabaa9 0001300 99999999 0001304 88888889 0001310 98888888 0001314 99999999 0001320 56676654 0001324 33333345 0001330 54333333 0001334 45667665 0001340 aabbba99 0001344 66667899 0001350 99876666 0001354 99abbbaa 0001360 00081738 0001364 00000000 0001370 00000000 0001374 0004e000 <--- The famous 0xCAFEBABE object is bound to subchannel 7. 0001400 cafebabe 0001404 00080308 0001410 00000207 0001414 00000000 0001420 00040304 0001424 00000000 0001430 000c0350 0001434 00000207 0001440 00000000 0001444 000000ff 0001450 0004034c 0001454 000000ff 0001460 000c035c 0001464 00001e00 0001470 00001e00 0001474 00001e00 0001500 0004031c 0001504 00000000 0001510 0004037c 0001514 00000000 0001520 00040310 0001524 00000000 0001530 0004036c 0001534 00000000 0001540 00040320 0001544 80068006 0001550 00080314 0001554 00010001 0001560 00000000 0001564 00041d8c 0001570 ffffff00 0001574 00041d94 0001600 00000000 0001604 00040100 0001610 00000000 0001614 00040324 0001620 01010101 0001624 0004183c 0001630 00000000 0001634 00041830 0001640 00000405 0001644 00080384 0001650 00000000 0001654 3f800000 0001660 00040380 0001664 00000000 0001670 00040a6c 0001674 00000201 0001700 00040a70 0001704 00000001 0001710 00040a74 0001714 00000000 0001720 00040300 0001724 00000001 0001730 00041fec 0001734 00000000 0001740 00041fc0 0001744 00000000 0001750 00041834 0001754 00000901 0001760 000403b8 0001764 00000008 0001770 00040374 0001774 00000000 0002000 00040378 0002004 00001503 0002010 00041ee0 0002014 3f800000 0002020 00040a68 0002024 00000000 0002030 00080a78 0002034 00000000 0002040 00000000 0002044 00041dac 0002050 00000000 0002054 00041db0 0002060 ffffffff 0002064 000808c0 0002070 10000000 0002074 10000000 0002100 00040368 0002104 00001d01 0002110 000c0330 0002114 00000207 0002120 00000000 0002124 000000ff 0002130 0004032c 0002134 000000ff 0002140 000c033c 0002144 00001e00 0002150 00001e00 0002154 00001e00 0002160 00040328 0002164 00000000 0002170 00041a08 0002174 00030101 0002200 00041a1c 0002204 00000000 0002210 00041a0c 0002214 00060000 0002220 00041a14 0002224 02052000 0002230 00041a28 0002234 00030101 0002240 00041a3c 0002244 00000000 0002250 00041a2c 0002254 00060000 0002260 00041a34 0002264 02052000 0002270 00041a48 0002274 00030101 0002300 00041a5c 0002304 00000000 0002310 00041a4c 0002314 00060000 0002320 00041a54 0002324 02052000 0002330 00041a68 0002334 00030101 0002340 00041a7c 0002344 00000000 0002350 00041a6c 0002354 00060000 0002360 00041a74 0002364 02052000 0002370 00041a88 0002374 00030101 0002400 00041a9c 0002404 00000000 0002410 00041a8c 0002414 00060000 0002420 00041a94 0002424 02052000 0002430 00041aa8 0002434 00030101 0002440 00041abc 0002444 00000000 0002450 00041aac 0002454 00060000 0002460 00041ab4 0002464 02052000 0002470 00041ac8 0002474 00030101 0002500 00041adc 0002504 00000000 0002510 00041acc 0002514 00060000 0002520 00041ad4 0002524 02052000 0002530 00041ae8 0002534 00030101 0002540 00041afc 0002544 00000000 0002550 00041aec 0002554 00060000 0002560 00041af4 0002564 02052000 0002570 00041b08 0002574 00030101 0002600 00041b1c 0002604 00000000 0002610 00041b0c 0002614 00060000 0002620 00041b14 0002624 02052000 0002630 00041b28 0002634 00030101 0002640 00041b3c 0002644 00000000 0002650 00041b2c 0002654 00060000 0002660 00041b34 0002664 02052000 0002670 00041b48 0002674 00030101 0002700 00041b5c 0002704 00000000 0002710 00041b4c 0002714 00060000 0002720 00041b54 0002724 02052000 0002730 00041b68 0002734 00030101 0002740 00041b7c 0002744 00000000 0002750 00041b6c 0002754 00060000 0002760 00041b74 0002764 02052000 0002770 00041b88 0002774 00030101 0003000 00041b9c 0003004 00000000 0003010 00041b8c 0003014 00060000 0003020 00041b94 0003024 02052000 0003030 00041ba8 0003034 00030101 0003040 00041bbc 0003044 00000000 0003050 00041bac 0003054 00060000 0003060 00041bb4 0003064 02052000 0003070 00041bc8 0003074 00030101 0003100 00041bdc 0003104 00000000 0003110 00041bcc 0003114 00060000 0003120 00041bd4 0003124 02052000 0003130 00041be8 0003134 00030101 0003140 00041bfc 0003144 00000000 0003150 00041bec 0003154 00060000 0003160 00041bf4 0003164 02052000 0003170 00040348 0003174 00000000 0003200 00041740 0003204 00000002 0003210 00041680 0003214 00000000 0003220 00041744 0003224 00000002 0003230 00041684 0003234 00000000 0003240 00041748 0003244 00000002 0003250 00041688 0003254 00000000 0003260 0004174c 0003264 00000002 0003270 0004168c 0003274 00000000 0003300 00041750 0003304 00000002 0003310 00041690 0003314 00000000 0003320 00041754 0003324 00000002 0003330 00041694 0003334 00000000 0003340 00041758 0003344 00000002 0003350 00041698 0003354 00000000 0003360 0004175c 0003364 00000002 0003370 0004169c 0003374 00000000 0003400 00041760 0003404 00000002 0003410 000416a0 0003414 00000000 0003420 00041764 0003424 00000002 0003430 000416a4 0003434 00000000 0003440 00041768 0003444 00000002 0003450 000416a8 0003454 00000000 0003460 0004176c 0003464 00000002 0003470 000416ac 0003474 00000000 0003500 00041770 0003504 00000002 0003510 000416b0 0003514 00000000 0003520 00041774 0003524 00000002 0003530 000416b4 0003534 00000000 0003540 00041778 0003544 00000002 0003550 000416b8 0003554 00000000 0003560 0004177c 0003564 00000002 0003570 000416bc 0003574 00000000 0003600 00080a00 0003604 10000000 0003610 10000000 0003614 00080394 0003620 00000000 0003624 3f800000 0003630 00200a20 0003634 45000000 0003640 45000000 0003644 3f000000 0003650 00000000 0003654 45000000 0003660 45000000 0003664 3f000000 0003670 00000000 0003674 00200a20 0003700 45000000 0003704 45000000 0003710 3f000000 0003714 00000000 0003720 45000000 0003724 45000000 0003730 3f000000 0003734 00000000 0003740 00041d7c 0003744 ffff0000 0003750 0004182c 0003754 00001b02 0003760 00041d90 0003764 00000000 0003770 00040370 0003774 00000000 0004000 00041828 0004004 00001b02 0004010 000403bc 0004014 00000000 0004020 00041db4 0004024 00000000 0004030 00041ee4 0004034 00000000 0004040 00041ee8 0004044 00000000 0004050 00041838 0004054 00000000 0004060 0004147c 0004064 00000000 0004070 00041e98 0004074 01000000 0004100 00041478 0004104 00000000 0004110 00041ff0 0004114 0000ffff 0004120 000417cc 0004124 00000000 0004130 00040908 0004134 00000101 0004140 0004091c 0004144 00000000 0004150 0004090c 0004154 00060000 0004160 00040914 0004164 00000000 0004170 00040928 0004174 00000101 0004200 0004093c 0004204 00000000 0004210 0004092c 0004214 00060000 0004220 00040934 0004224 00000000 0004230 00040948 0004234 00000101 0004240 0004095c 0004244 00000000 0004250 0004094c 0004254 00060000 0004260 00040954 0004264 00000000 0004270 00040968 0004274 00000101 0004300 0004097c 0004304 00000000 0004310 0004096c 0004314 00060000 0004320 00040974 0004324 00000000 0004330 00040238 0004334 00000000 0004340 00041d78 0004344 00000001 0004350 0004142c 0004354 00000000 0004360 00041ff8 0004364 00000000 0004370 00041fe8 0004374 00000000 0004400 00042000 0004404 31337303 0004410 000c2180 0004414 66604200 0004420 feed0001 0004424 feed0000 0004430 00046000 0004434 313371c3 0004440 000c6180 0004444 66604200 0004450 feed0000 0004454 feed0000 0004460 0004a000 0004464 31337808 0004470 0020a180 0004474 66604200 0004500 00000000 0004504 00000000 0004510 00000000 0004514 00000000 0004520 00000000 0004524 00000000 0004530 313371c3 0004534 0008a2fc 0004540 00000003 0004544 00000004 0004550 00048000 0004554 31337a73 0004560 00088180 0004564 66604200 0004570 feed0000 0004574 0004c000 0004600 3137af00 0004604 0004c180 0004610 66604200 0004614 00020000 <-- return from subroutine -- Here RSX starts executing FIFO commands -- 0010000 00040060 0010004 56616661 <-- DMA object for memory region mapped by lv1_gpu_device_map(device id = 8) 0010010 00040064 0010014 00000030 <-- semaphore offset 0010020 00040068 <-- acquire semaphore (RSX FIFO is blocked until it acquires the semaphore. Who releases the semaphore ???) 0010024 00000001 <-- semaphore value 0010030 00040060 0010034 66616661 0010040 00000002 <-- Call subroutine which resets RSX context 0010044 00041d84 0010050 00000003 0010054 00041804 0010060 00000000 0010064 000c1ea4 0010070 00000010 0010074 01000100 0010100 ff000002 0010104 00081a00 0010110 00000000 0010114 00018429 0010120 00041a18 0010124 00080008 0010130 00041840 0010134 00100008 0010140 00041a10 0010144 0000aae4 0010150 00081a20 0010154 00000000 0010160 00018429 0010164 00041a38 0010170 00080008 0010174 00041844 0010200 00100008 0010204 00041a30 0010210 0000aae4 0010214 00081a40 0010220 00000000 0010224 00018429 0010230 00041a58 0010234 00080008 0010240 00041848 0010244 00100008 0010250 00041a50 0010254 0000aae4 0010260 00081a60 0010264 00000000 0010270 00018429 0010274 00041a78 0010300 00080008 0010304 0004184c 0010310 00100008 0010314 00041a70 0010320 0000aae4 0010324 00081a80 0010330 00000000 0010334 00018429 0010340 00041a98 0010344 00080008 0010350 00041850 0010354 00100008 0010360 00041a90 0010364 0000aae4 0010370 00081aa0 0010374 00000000 0010400 00018429 0010404 00041ab8 0010410 00080008 0010414 00041854 0010420 00100008 0010424 00041ab0 0010430 0000aae4 0010434 00081ac0 0010440 00000000 0010444 00018429 0010450 00041ad8 0010454 00080008 0010460 00041858 0010464 00100008 0010470 00041ad0 0010474 0000aae4 0010500 00081ae0 0010504 00000000 0010510 00018429 0010514 00041af8 0010520 00080008 0010524 0004185c 0010530 00100008 0010534 00041af0 0010540 0000aae4 0010544 00081b00 0010550 00000000 0010554 00018429 0010560 00041b18 0010564 00080008 0010570 00041860 0010574 00100008 0010600 00041b10 0010604 0000aae4 0010610 00081b20 0010614 00000000 0010620 00018429 0010624 00041b38 0010630 00080008 0010634 00041864 0010640 00100008 0010644 00041b30 0010650 0000aae4 0010654 00081b40 0010660 00000000 0010664 00018429 0010670 00041b58 0010674 00080008 0010700 00041868 0010704 00100008 0010710 00041b50 0010714 0000aae4 0010720 00081b60 0010724 00000000 0010730 00018429 0010734 00041b78 0010740 00080008 0010744 0004186c 0010750 00100008 0010754 00041b70 0010760 0000aae4 0010764 00081b80 0010770 00000000 0010774 00018429 0011000 00041b98 0011004 00080008 0011010 00041870 0011014 00100008 0011020 00041b90 0011024 0000aae4 0011030 00081ba0 0011034 00000000 0011040 00018429 0011044 00041bb8 0011050 00080008 0011054 00041874 0011060 00100008 0011064 00041bb0 0011070 0000aae4 0011074 00081bc0 0011100 00000000 0011104 00018429 0011110 00041bd8 0011114 00080008 0011120 00041878 0011124 00100008 0011130 00041bd0 0011134 0000aae4 0011140 00081be0 0011144 00000000 0011150 00018429 0011154 00041bf8 0011160 00080008 0011164 0004187c 0011170 00100008 0011174 00041bf0 0011200 0000aae4 0011204 00080900 0011210 00000000 0011214 0001bc21 0011220 00040910 0011224 00000008 0011230 00040918 0011234 00080008 0011240 00080920 0011244 00000000 0011250 0001bc21 0011254 00040930 0011260 00000008 0011264 00040938 0011270 00080008 0011274 00080940 0011300 00000000 0011304 0001bc21 0011310 00040950 0011314 00000008 0011320 00040958 0011324 00080008 0011330 00080960 0011334 00000000 0011340 0001bc21 0011344 00040970 0011350 00000008 0011354 00040978 0011360 00080008 0011364 0004230c 0011370 00000000 0011374 00042310 0011400 00000000 0011404 00142314 0011410 00000000 0011414 00000000 0011420 00000000 0011424 00000000 0011430 00000101 0011434 00106300 0011440 0000000a 0011444 00400040 0011450 00000000 0011454 00000000 0011460 00088300 0011464 0001000a 0011470 00000000 0011474 0004c184 0011500 feed0000 0011504 0004c198 0011510 313371c3 0011514 0024c2fc 0011520 00000001 0011524 00000003 0011530 00000003 0011534 00000000 0011540 00000000 0011544 00000000 0011550 00000000 0011554 00000000 0011560 00000000 0011564 0010c400 0011570 00010002 0011574 00010000 0011600 00000000 0011604 00000000 0011610 000ca304 0011614 00000000 0011620 00000000 0011624 00000000 0011630 00040050 0011634 ffffffff