Editing Talk:Hypervisor Reverse Engineering

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
Merge needed of info from:
Merge needed (?) : https://webcache.googleusercontent.com/search?q=cache:http%3A%2F%2Fwiki.gitbrew.org%2Fwikibrew%2FPS3%3AHvReverseEngineering
[https://web.archive.org/web/20130623170001/https://webcache.googleusercontent.com/search?q=cache:http%3A%2F%2Fwiki.gitbrew.org%2Fwikibrew%2FPS3%3AHvReverseEngineering wiki.gitbrew.org]
and
[https://web.archive.org/web/20111217183835/http://www.ps3devwiki.com/index.php?title=Talk:Hypervisor_Reverse_Engineering]


== MMIO / Memorymap ==
== MMIO / Memorymap ==
Line 13: Line 10:
| 0x200000 || 0x400000 ||  || LV1 Code Region || ||
| 0x200000 || 0x400000 ||  || LV1 Code Region || ||
|-
|-
| 0x8000000 / 0x1000000(DECR) || 0x800000 || || LV2 Region || || The region you get when you dump lv2
| 0x20000000000 || 0x80000 ||  || SPE0 MMIO Memory Region || ||
|-
| 0x20000000000 || 0x80000 ||  || SPE0 MMIO Memory Region || || (be.0.bp_base)
|-
|-
| 0x20000080000 || 0x80000 ||  || SPE1 MMIO Memory Region || 0x003ABC20 ||  
| 0x20000080000 || 0x80000 ||  || SPE1 MMIO Memory Region || 0x003ABC20 ||  
Line 28: Line 23:
|-
|-
| 0x20000300000 || 0x80000 ||  || SPE6 MMIO Memory Region || 0x003B5BE0 ||  
| 0x20000300000 || 0x80000 ||  || SPE6 MMIO Memory Region || 0x003B5BE0 ||  
|-
| 0x20000509000 || 0x1000 ||  || Pervasive Memory ||  || Contains 48 bit Serial Number at position 0xC80 size 0x08
|-
|-
|  || 0x1000 ||  || SPE1 Shadow Registers Memory Region || 0x003ABDA0 ||  
|  || 0x1000 ||  || SPE1 Shadow Registers Memory Region || 0x003ABDA0 ||  
Line 49: Line 42:
| 0x2000050A210 || 0x4 || || XDR Memory Channel Type || || For use with above memory locations
| 0x2000050A210 || 0x4 || || XDR Memory Channel Type || || For use with above memory locations
|-
|-
| 0x24000000000 ||  ||  || SB bus subsystem ||  || (be.0.ioif1.addr)
| 0x24000000000 ||  ||  || SB bus subsystem ||  ||  
|-
|-
| 0x24000002000 || 0x200 || 1 || SATA Controller 1 ||  ||  
| 0x24000002000 || 0x200 || 1 || SATA Controller 1 ||  ||  
Line 68: Line 61:
|-
|-
| 0x24000008104 ||  ||  || SB bus interrupt handler ||  ||  
| 0x24000008104 ||  ||  || SB bus interrupt handler ||  ||  
|-
| 0x24000087000 || || || SB status/info || ||
|-
|-
| 0x2400008C000 || || || SYSCON (receive packetheader) ||  ||  
| 0x2400008C000 || || || SYSCON (receive packetheader) ||  ||  
Line 125: Line 116:
| 0x2401F000000 || 0x1000000 || || NOR Flash || ||  
| 0x2401F000000 || 0x1000000 || || NOR Flash || ||  
|-
|-
| 0x2401FC00000 || 0x40000 || || SYS ROM || || lv0ldr/bootldr
| 0x28000000000 || 0x2000 ||  || AV Manager (/dev/ioif0) ||  || only mmap system call
|-
| 0x28000000000 || 0x2000 ||  || AV Manager (/dev/ioif0) ||  || (be.0.ioif0.addr) only mmap system call  
|-
|-
| 0x28001800000 || 0x1000 ||  || AV Manager (/dev/ioif0) ||  || only mmap system call
| 0x28001800000 || 0x1000 ||  || AV Manager (/dev/ioif0) ||  || only mmap system call
|-
|-
| 0x28000600000 || 0x4000 ||  || AV Manager (/dev/ioif0) - Output Control Registers ||  || only mmap system call. First 0x2000 for head 0. Next 0x2000 for head 1.
| 0x28000600000 || 0x4000 ||  || AV Manager (/dev/ioif0) ||  || only mmap system call
|-
|-
| 0x28000680000 || 0x4000 ||  || AV Manager (/dev/ioif0) - PLL Control Registers ||  || only mmap system call. First 0x2000 for head 0. Next 0x2000 for head 1.
| 0x28000680000 || 0x4000 ||  || AV Manager (/dev/ioif0) ||  || only mmap system call
|-
|-
| 0x28000080000 || 0x8000 ||  || AV Manager (/dev/ioif0) ||  || only mmap system call
| 0x28000080000 || 0x8000 ||  || AV Manager (/dev/ioif0) ||  || only mmap system call
Line 154: Line 143:
|-
|-
| 0x28000080100 || 0x8000 || 5 || GPU Device Memory Region || 0x003BB420 ||  
| 0x28000080100 || 0x8000 || 5 || GPU Device Memory Region || 0x003BB420 ||  
|-
| 0x2808FC00000 || 0x400000 || || RSX Internal State Memory Area (All) || ||
|-
| 0x2808FF80000 || 0x80000 || || RAMIN (Encompasses RAMHT,RAMFC,DMA Objects, Graphic Objects and GRAPH) || ||
|-
| 0x2808FF90000 || 0x4000 || || RAM Hash Table || ||
|-
| 0x2808FFA0000 || 0x1000 || || RAM FIFO Context || ||
|-
| 0x2808FFC0000 || 0x10000 || || DMA Objects || ||
|-
| 0x2808FFD0000 || 0x10000 || || Graphic Objects || ||
|-
| 0x2808FFE0000 || 0x10000 || || Graphic Context || ||
|-
|-
|  ||  || 9 || FLASH Controller device (StarShip - SS) ||  || FLASH controller doesn't have MMIO regions
|  ||  || 9 || FLASH Controller device (StarShip - SS) ||  || FLASH controller doesn't have MMIO regions
Line 180: Line 155:
|-
|-
|}
|}
* Linux driver for playing with BE MMIO: http://pastie.org/private/zkzpmj5j6hixacxppk9waq [https://pastebin.com/Y6ZEDdi3 mirror]


== PS3 ea memory map ==
== PS3 ea memory map ==
Line 219: Line 192:
               | Unmapped Area                |   
               | Unmapped Area                |   
   0x0000_0000  +-------------------------------+
   0x0000_0000  +-------------------------------+
</pre>
</pre>http://pastie.org/private/bfqqa2cpadolns9bm0eqa
 
https://web.archive.org/web/20141119024023/http://pastie.org/private/bfqqa2cpadolns9bm0eqa
 
== History of Packet ID Entries ==
 
* 0x18000 <- [[Dispatcher_Manager]]
* 0x8000  <- ???
* 0x17000 <- [[Indi_Info_Manager]]
* 0x10000 <- [[SB_Manager]]
* 0x9000  <- [[SC_Manager]]
* 0x14000 <- [[Secure_LPAR_Loader]]
* 0x15000 <- [[Secure_Profile_Loader]]
* 0x3000  <- [[Secure_RTC_Manager]]
* 0x5000  <- [[Storage_Manager]]
* 0x11000 <- [[Security_Policy_Manager]]
* 0x6000  <- [[Update_Manager]]
* 0x2000  <- [[Virtual_TRM_Manager]]
* 0x19000 <- [[AIM_Manager]]
* 0x22000 <- [[Factory_Data_Manager]]
* 0x24000 <- [[USB_Dongle_Authenticator]]
* 0x25000 <- [[User_Token_Manager]]
* 0x84000 <- http://paste.ubuntu.com/25395752/


from SPM
[http://pastie.org/private/mdw6lcgcp6sby1qvlipog possible process names][https://pastebin.com/1Z1vG23V]
[http://pastie.org/private/guigb77nctwvsq50tkaeq possible process / packet ids 1][https://pastebin.com/D8VeZ02B]
[http://pastie.org/private/j7cv141bu5jw2acundzla possible process / packet ids 2][https://pastebin.com/fy4KZfmJ]


==coolstuf==
==coolstuf==
[[Category:Software]][[Category:Linux]]
Graf_Chokolo's HV BIBLE .rar    163 MB
Graf_Chokolo's HV BIBLE .rar    163 MB
Line 261: Line 208:


Repositories:
Repositories:
* https://www.sendspace.com/file/klddg3
* http://www.sendspace.com/file/qlkzkd
* http://www.sendspace.com/file/qlkzkd
* http://www.mirrorcreator.com/files/0NFBM0PC/coolstuff_0.rar_links
* http://www.mirrorcreator.com/files/0NFBM0PC/coolstuff_0.rar_links
Line 267: Line 213:
* http://fileape.com/index.php?act=download&id=aG4VzHXWKqwXbi50
* http://fileape.com/index.php?act=download&id=aG4VzHXWKqwXbi50


* https://web.archive.org/web/*/http://ps3devwiki.com/files/coolstuf/
* http://ps3devwiki.com/files/coolstuf/


===Content===
===Content===
Line 609: Line 555:
ps3wiki/XRegistry File Format_2.htm 52.7 KB
ps3wiki/XRegistry File Format_2.htm 52.7 KB
</pre>
</pre>


==emer init.self==
==emer init.self==


=== Program 1 ===
===Program 1===
 
Crossreference: [http://portal.gitbrew.org/wikibrew/PS3:HvReverseEngineering:emer_init.self:Program_1 gitbrew.org::emer_init.self:Program_1] <br />
Crossreference: [https://web.archive.org/web/20110927024647/http://portal.gitbrew.org/wikibrew/PS3:HvReverseEngineering:emer_init.self:Program_1 gitbrew.org::emer_init.self:Program_1] <br />


<pre>
<pre>
Line 835: Line 781:
</pre>
</pre>


=== Program 2 ===
===Program 2===
 
Crossreference: [http://portal.gitbrew.org/wikibrew/PS3:HvReverseEngineering:emer_init.self:Program_2 gitbrew.org::emer_init.self:Program_2] <br />
Crossreference: [https://web.archive.org/web/20110927023704/http://portal.gitbrew.org/wikibrew/PS3:HvReverseEngineering:emer_init.self:Program_2 gitbrew.org::emer_init.self:Program_2] <br />
<pre>
<pre>
0x80308
0x80308
Line 1,152: Line 1,097:
0x66604200
0x66604200
</pre>
</pre>


----
----
== About RSX ==
<pre>
RAMIN is on VRAM.
0x28002010000 contains the same as 0x2808FF90000
0x28002050000 contains the same as 0x2808FFD0000
you can prove that by writing in one offset and reading the other
0x2808XXXXXXX is BAR1 (i.e. VRAM on Nvidia GPUs)
0x28002XXXXXX is BAR2 (i.e. PRAMIN on Nvidia GPUs)
</pre>
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)