Editing Spuldrfs

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:
[[Category:OtherOS]]
[[Category:Linux]]
=Introduction=
=Introduction=


* spuldrfs is a Linux virtual filesystem which allows you to execute isolated SPU modules from user-space.
* spuldrfs is a Linux virtual filesystem which allows you to execute isolated SPU modules from user-space.
* spuldrfs is like spuisofs but can also execute loaders like lv1ldr or isoldr.
* spuldrfs is like spuisofs but can also execute loaders like lv1ldr or isoldr.
* I used this driver e.g. to run modified lv1ldr to dump my ENCDEC keys.
* GIT repo: http://gitorious.ps3dev.net/ps3linux/spuldrfs
=Features=
* MFC data segment faults are handled by the driver. That means you do not have to worry about it.
* Large data buffers which can be used for data exchange between SPU and PPU.
* Data buffers are not physically continuous which eliminates the RAM allocation problem.
* Full access to all SPU registers from user-space.
=Mounting=
<pre>
glevand@debian:~$ sudo mount -t spuldrfs none /mnt
</pre>
=Filesystem Layout=
<pre>
glevand@debian:~$ ls -l /mnt
total 0
-rw-rw-rw- 1 root root 1048576 Aug 16 10:33 buf1
-rw-rw-rw- 1 root root 1048576 Aug 16 10:33 buf2
-rw-rw-rw- 1 root root 1048576 Aug 16 10:33 buf3
-r--r--r-- 1 root root      0 Aug 16 10:33 info
-rw-rw-rw- 1 root root 1048576 Aug 16 11:07 ldr
-rw-rw-rw- 1 root root  262144 Aug 16 10:33 ls
-rw-rw-rw- 1 root root 1048576 Aug 16 11:07 metldr
-rw-rw-rw- 1 root root  131072 Aug 16 10:33 priv2
-rw-rw-rw- 1 root root  131072 Aug 16 10:33 problem
--w--w--w- 1 root root      0 Aug 16 11:07 run
-r--r--r-- 1 root root    4096 Aug 16 10:33 shadow
glevand@debian:~$ cat /mnt/info
buf1 d000000003746000
buf2 d000000003847000
buf3 d000000003948000
glevand@debian:~$
</pre>
=Loading Firmware From Linux Kernel Module=
* It's a really neat trick :)
* First, create a pseudo platform device. Then use it to request firmware. After that destroy the platform device.
* We could use it to load metldr automatically into kernel space.
* http://www.crashcourse.ca/wiki/index.php/Loading_external_firmware
{{Linux}}<noinclude>[[Category:Main]]</noinclude>
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)