Editing Devices

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:
The PS5 has many kernel devices that can be accessed through [[IOCTL]]. Some of them have usermode module equivalents, some like "sbl" consist in [[Secure Modules]] and some like "camera" make use of a dedicated firmware stored in kernel memory.
See also [[IOCTL]].
 
See also [https://psdevwiki.com/ps4/Devices PS4 devices].


Note for ioctls: * indicates name is assumed from RE and may not be accurate.
Note for ioctls: * indicates name is assumed from RE and may not be accurate.
Line 7: Line 5:
== Device Listing ==
== Device Listing ==


Unique devices are listed here without the "/dev/" prefix for readability. Benign devices like /dev/null are omitted for brevity's sake.
Unique devices are listed here. Benign devices like /dev/null are omitted for brevity's sake.


{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
! Device Path !! Device Long Name !! Notes
! Path !! Device Name !! Notes
|-
| a53{io,mm,mmsys} || A53 Input/Output, Memory Management (sys) || See MP4 section
|-
| ajm{i} || Audio Job Manager || -
|-
| auditpipe || Audit Pipe || -
|-
| authmgr || Authentication Manager || -
|-
| az{1,ctl} || - || Audio-related
|-
| bar || [[Backup And Restore]] || Used by shellcore for backup and recovery
|-
| bfs/ctl || - || -
|-
| bluetooth_hid || Bluetooth Human Interface Device || -
|-
| bt || Bluetooth || -
|-
| camera || Camera || -
|-
| cloudsd || Cloud SaveData || -
|-
| console || Console || Usermode logging
|-
|-
| crepo || Crash Report || Used for crash reporting service (coredump, gpudump, shellcore)
| /dev/a53{io,mm,mmsys} || A53 Input/Output, Memory Management (sys) || See MP4 section
|-
|-
| ctrlp{_sync} || -CTRLP || Used by libScePad (controller). See PS4 and PS Vita ctrlp modules.
| /dev/ajm{i} || Audio Job Manager || -
|-
|-
| dbggc{_control} || Debug GPU? || -
| /dev/auditpipe || - || -
|-
|-
| deci_coredump || [[DECI5]] coredump || -
| /dev/authmgr || Authentication Manager || -
|-
|-
| deci_mp4_ioc || [[DECI5]] MP4 ?I/O Control? || -
| /dev/az{1,ctl} || - || Audio-related
|-
|-
| deci_mp4_mmc || [[DECI5]] MP4 ?MM Control? || -
| /dev/bar || Backup and Restore || Used by shellcore for backup and recovery
|-
|-
| deci_std{in,out,err} || [[DECI5]] Input/Output/Error || -
| /dev/bfs/ctl || - || -
|-
|-
| deci_tty* || [[DECI5]] Terminals || -
| /dev/bluetooth_hid || - || -
|-
|-
| devctl || Dev Control || -
| /dev/bt || - || -
|-
|-
| diag || Diagnosis || -
| /dev/camera || Camera || -
|-
|-
| dipsw || [[DIP Switches]] || -
| /dev/cloudsd || Cloud SaveData || -
|-
|-
| dldbg || Dynamic Library Debug || -
| /dev/console || Console || Usermode logging
|-
|-
| dmem{0,1,2} || - || -
| /dev/crepo || Crash Report || Used for crash reporting service (coredump, gpudump, shellcore)
|-
|-
| dngl || - || -
| /dev/ctrlp{_sync} || - || Used by libScePad (controller)
|-
|-
| duid || Disc Unique ID || -
| /dev/dbggc{_control} || Debug GPU? || -
|-
|-
| encdec || Encrypt Decrypt || Related to Portability Keys.
| /dev/deci_coredump || Debug Com. Interface (DECI) coredump || -
|-
|-
| envelope || [[Envelope Files]] || Related to Envelope Files Keys.
| /dev/deci_mp4_ioc || DECI I/O Control? || -
|-
|-
| evlg{0,1} || Event Log || Intended to be used with read syscall
| /dev/deci_mp4_mmc || - || -
|-
|-
| exthdd || External HDD || -
| /dev/deci_std{in,out,err} || DECI Input/Output/Error || -
|-
|-
| fcram || - || -
| /dev/deci_tty* || DECI Terminals || -
|-
|-
| fsctrl || FileSystem Control || -
| /dev/devctl || - || -
|-
|-
| fttrm || ?Film and Television Tracking? Rights Management || Used by bluray app
| /dev/diag || - || -
|-
|-
| gbase || - || -
| /dev/dipsw || Dip Switch || -
|-
|-
| gc || GPU command || -
| /dev/dldbg || Dynamic Library Debug || -
|-
|-
| geom.ctl || - || -
| /dev/dmem{0,1,2} || - || -
|-
|-
| gic || - || -
| /dev/dngl || - || -
|-
|-
| gsched_bds.ctl || - || -
| /dev/duid || Disc Unique ID || -
|-
|-
| hdmi || HDMI || -
| /dev/encdec || EncDec || -
|-
|-
| hid || Human Interface Device || -
| /dev/envelope || Envelope Format Crypto || -
|-
|-
| hmd2_* || Head-mounted Display || For PS VR 2.
| /dev/evlg{0,1} || Event Log || Intended to be used with read syscall
|-
|-
| hmd_* || Head-mounted Display || For PS VR first revision.
| /dev/exthdd || External HDD || -
|-
|-
| iccnvs{0,1,2,4,6} || ICC NVS || Specific access to Sectors 0, 1, 2, 4 and 6 of [[Serial Flash]] [[Non Volatile Storage]]
| /dev/fcram || - || -
|-
|-
| icc_configuration || ICC Configuration || -
| /dev/fsctrl || - || -
|-
|-
| icc_crash_report || ICC Crash Report || -
| /dev/fttrm || - || Used by bluray app
|-
|-
| icc_device_power || ICC Device Power || -
| /dev/gbase || - || -
|-
|-
| icc_fan || ICC Fan || -
| /dev/gc || GPU command || -
|-
|-
| icc_floyd || ICC Floyd || SNVS Storage Device. ?TPM related?
| /dev/geom.ctl || - || -
|-
|-
| icc_indicator || ICC Indicator || Control the LEDs.
| /dev/gic || - || -
|-
|-
| icc_nvs || ICC NVS || ?Global access to [[Serial Flash]] [[Non Volatile Storage]] like on PS4?
| /dev/gsched_bds.ctl || - || -
|-
|-
| icc_power || ICC Power || -
| /dev/hdmi || HDMI || -
|-
|-
| icc_sc_config || ICC ?Syscon? Configuration || -
| /dev/hid || - || -
|-
|-
| icc_thermal || ICC Thermal || -
| /dev/hmd2_* || VR 2? || -
|-
|-
| klog || Kernel Log || Read syscall on this device can be used to get kernel log if privileged
| /dev/hmd_* || VR || -
|-
|-
| kmbp || - || -
| /dev/iccnvs{0,1,2,4,6} || ICC_NVS (sectors) || Location of Sectors 0, 1, 2, 4 and 6 of sflash0 non volatile storage
|-
|-
| lvdctl || Layered Vnode Device Control || -
| /dev/icc_configuration || ICC Config || -
|-
|-
| lvd{0,1} || Layered Vnode Device || lv0 is a mountpoint for /mnt/rnps. lvd1 is a mountpoint for /mnt/sandbox/download/NPXS40140. See [[Filesystem]].
| /dev/icc_crash_report || ICC Crash Report || -
|-
|-
| cd0 || Compact Disc 0 || cd0 is a mountpoint for /mnt/disc. See [[Filesystem]].
| /dev/icc_device_power || ICC Device Power || -
|-
|-
| m2.ctl || [[M.2 SSD]] ?Control? || -
| /dev/icc_fan || ICC Fan || -
|-
|-
| manuauth || Manufacturer Auth || -
| /dev/icc_floyd || ICC TPM? || SNVS Storage Device
|-
|-
| mbus || ?Media/Memory/Management? Bus || Event bus
| /dev/icc_indicator || ICC LED || -
|-
|-
| mbus_av || ?Media/Memory/Management? Bus (?audio video?) || Event bus maybe for audio/video.
| /dev/icc_nvs || ICC NVS || -
|-
|-
| md0 || ?Mount Directory? 0 || Main System modules/devices are located here for Kernel
| /dev/icc_power || ICC Power || -
|-
|-
| md2 || ?Mount Directory? 2 || md2 is a mountpoint for /system_data/eap/rodata. See [[Filesystem]].
| /dev/icc_sc_config || ICC Syscon? Config || -
|-
|-
| mdctl || ?Mount Directory? Control || -
| /dev/icc_thermal || ICC Thermal || -
|-
|-
| da1s1 || DA 1 Sector 1 || da1s1 is a mountpoint for /mnt/usb0. See [[Filesystem]].
| /dev/klog || Kernel Log || Read syscall on this device can be used to get kernel log if privileged
|-
|-
| metadbg || Meta Debug || -
| /dev/kmbp || - || -
|-
|-
| mp1 || System Management Unit (SMU) || Power management, thermals, etc. See MP1 section.
| /dev/lvdctl || Layered Vnode Device Control || -
|-
|-
| mp3 || Trusted Execution Environment (TEE) || See MP3 section.
| /dev/lvd{0,1} || Layered Vnode Device || -
|-
|-
| mp4/dump{_for_decid} || A53 (mdbg?) || See MP4 section.
| /dev/m2.ctl || m.2 NVMe Control? || -
|-
|-
| notification{0-9} || Notification || -
| /dev/manuauth || Manufacturer Auth|| -
|-
|-
| npdrm || Network Product Digital Rights Management interface || -
| /dev/mbus || Event bus || -
|-
|-
| nsfsctl || Namespace Filesystem (NSFS) Control || -
| /dev/mbus_av || Event bus (audio video?) || -
|-
|-
| nsid1.ctl || Namespace ID 1 Control || -
| /dev/md0 || Kernel Md0 || Main System modules are located here for Kernel (Not System Modules!)
|-
|-
| otpaccess || One-Time Programmable Access? || -
| /dev/md2 || - || -
|-
|-
| pfsctldev || PFS Control Device || -
| /dev/mdctl || - || -
|-
|-
| pfsmgr || PFS Manager || Used for [[Trophy]], [[Save Data]], [[Keystone]]
| /dev/metadbg || - || -
|-
|-
| playgo_emu_param{1,2,3} || [[PlayGo]] emulator params || -
| /dev/mp1 || System Management Unit (SMU) || Power management, thermals, etc. (see mp1 section)
|-
|-
| pltauth{0,1} || Platform Authentication || For PSN connection.
| /dev/mp3 || Trusted Execution Environment (TEE) || See mp3 section
|-
|-
| pup_update0 || PUP Update || -
| /dev/mp4/dump{_for_decid} || A53 (mdbg?) || See mp4 section
|-
|-
| qafutkn || QA flag / Utoken || -
| /dev/notification{0-9} || Notification || -
|-
|-
| rnps || React Native PS || [[RNPS]] regroups many PSN services (friends, party, events, etc.)
| /dev/npdrm || Network Product Digital Rights Management interface || -
|-
|-
| rootparam || Root Param || Used by [[SceShellCore]] for verifying root param SFO/JSON
| /dev/nsfsctl || Namespace Filesystem (NSFS) Control || -
|-
|-
| s3da || ?System/Software? 3D Acceleration || See Marcan's slides about PS4 GPU Linux driver.
| /dev/nsid1.ctl || - || -
|-
|-
| sbl_secreg || SBL Secure Region/Registry || -
| /dev/otpaccess || One-Time Programmable Access? || -
|-
|-
| sbl_srv || SBL Service || Used exclusively by playready
| /dev/pfsctldev || Playstation Filesystem (PFS) Control || -
|-
|-
| scanin || - || -
| /dev/pfsmgr || PFS Manager || Used for trophies, savegames, keystone
|-
|-
| sce_zlib{_sys} || zlib || zlib (de)compression
| /dev/playgo_emu_param{1,2,3} || PlayGo emulator params || -
|-
|-
| sc_fw_update0 || ?syscon? firmware update || -
| /dev/pltauth{0,1} || Platform Authentication (PSN) || -
|-
|-
| sflash0 || [[Serial Flash]] || 2MB. Contains [[EMC]] firmware and (non-secure) NVS.
| /dev/pup_update0 || PUP Update || -
|-
|-
| sflash0s0 || [[Serial Flash]] Sector 0 ||  
| /dev/qafutkn || QA flag / Utoken || -
|-
|-
| sflash0s0x0 || [[Serial Flash]] Sector 0 Block 0 ||  
| /dev/rnps || React Native PS || PSN related
|-
|-
| sflash0s0x34 || [[Serial Flash]] Sector 0 Block 34 || Serial Flash [[Non Volatile Storage]]
| /dev/rootparam || Root Param || Used by shellcore for verifying root param sfo/json
|-
|-
| sflash0s0x32 || [[Serial Flash]] Sector 0 Block 32 || To be confirmed.
| /dev/s3da || 3D Audio || -
|-
|-
| sflash0s0x32b || [[Serial Flash]] Sector 0 Block 32 bis ||  
| /dev/sbl_secreg || SBL Secure Region || -
|-
|-
| sflash0s0x41b || [[Serial Flash]] Sector 0 Block 41 || To be confirmed.
| /dev/sbl_srv || SBL Service || Used exclusively by playready
|-
|-
| sflash0s0x41b || [[Serial Flash]] Sector 0 Block 41 bis ||  
| /dev/scanin || - || -
|-
|-
| sflash0s1 || [[Serial Flash]] Sector 1 || To be confirmed.
| /dev/sce_zlib{_sys} || zlib || zlib (de)compression
|-
|-
| sflash0s1.crypt || [[Serial Flash]] Sector 1 encrypted || To be confirmed.
| /dev/sc_fw_update0 || (syscon?) firmware update || -
|-
|-
| sflash0s1.cryptx40 || [[Serial Flash]] Sector 1 encrypted Block 40 ||  
| /dev/sflash0 || SPI flash || 2MB. Has EMC firmware and (non-secure) NVS.
|-
|-
| srtc || Secure Real Time Clock || -
| /dev/srtc || Secure Real Time Clock || -
|-
|-
| ssd0.* || Solid State Drive 0 || Mountpoints for many internal SSD partitions. See [[Filesystem]].
| /dev/ssd0.* || Internal SSD partitions || -
|-
|-
| sshot || Screenshot || -
| /dev/sshot || Screenshot || -
|-
|-
| transactionid.ctl || Transaction ID Control || -
| /dev/transactionid.ctl || - || -
|-
|-
| ufssuspend || UFS Suspend || -
| /dev/ufssuspend || - || -
|-
|-
| usbctl || USB Control || -
| /dev/usbctl || USB control || -
|-
|-
| uvd_{dec/enc/bgt} || ?Unified Video Decoder? || Maybe related to gameplay recording.
| /dev/uvd_{dec/enc/bgt} || Unified Video Decoder? || -
|-
|-
| wlanbt || Wireless LAN + Bluetooth || -
| /dev/wlanbt || Wireless LAN + Bluetooth || -
|-
|-
| xpt0 || XPT Transport Interface || CAM Transport Layer
| /dev/xpt0 || XPT Transport Interface || CAM Transport Layer
|}
|}


== Platform Security Processor Core (PSP) (MP0) ==
== Platform Security Processor Core (PSP) (MP0) ==


* See also the [[AMD Platform Security Processor]] wiki page.
* All the fun things related to PS5 security are here
* All the fun things related to PS5 security are here.
* Named AMD SMU PSP (AMD System Management Unit Platform Security Processor) as well
* Named AMD SMU PSP (AMD System Management Unit Platform Security Processor) and ASP (AMD Secure Processor) as well.
* Named ASP (AMD Secure Processor) as well


== System Management Unit (SMU) (MP1) ==
== System Management Unit (SMU) (MP1) ==
Line 460: Line 434:
== FTTRM ==
== FTTRM ==


FTTRM's full purpose is unknown, but it is likely DRM-related. It is used by the Bluray application (BdmvPlayerCore, BdvdPlayerCore, UHDBdPlayerCore) via /dev/fttrm. There are only two known commands. RM stands for Rights Management and FT may stand for FilmTrack or Film and Television Tracking. See [https://info.filmtrack.com/the-critical-role-of-security-in-entertainment-rights-management].
FTTRM's full purpose is unknown, but it is likely DRM-related. It is used by the Bluray application (BdmvPlayerCore, BdvdPlayerCore, UHDBdPlayerCore) via /dev/fttrm. There are only two known commands.


{| class="wikitable sortable"
{| class="wikitable sortable"
Please note that all contributions to PS5 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS5 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)