Spuldrfs: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
Line 42: Line 42:
glevand@debian:~$  
glevand@debian:~$  
</pre>
</pre>
=Loading Firmware From Linux Kernel Module=
* It's a really cool 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.
* http://www.crashcourse.ca/wiki/index.php/Loading_external_firmware

Revision as of 21:09, 18 September 2012

Introduction

  • 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

  • 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

glevand@debian:~$ sudo mount -t spuldrfs none /mnt

Filesystem Layout

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