Spuldrfs: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
|||
(8 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
[[Category: | [[Category:OtherOS]] | ||
=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= | =Filesystem Layout= | ||
Line 27: | Line 42: | ||
glevand@debian:~$ | glevand@debian:~$ | ||
</pre> | </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> |
Latest revision as of 01:58, 3 February 2014
Introduction[edit | edit source]
- 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.
- I used this driver e.g. to run modified lv1ldr to dump my ENCDEC keys.
- GIT repo: http://gitorious.ps3dev.net/ps3linux/spuldrfs
Features[edit | edit source]
- 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[edit | edit source]
glevand@debian:~$ sudo mount -t spuldrfs none /mnt
Filesystem Layout[edit | edit source]
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:~$
Loading Firmware From Linux Kernel Module[edit | edit source]
- 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