Devices

From PS4 Developer wiki
Jump to navigation Jump to search

The PS4 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 PS5 devices.

Device Listing[edit | edit source]

Unique devices are listed here without the "/dev/" prefix for readability.

See also prorotype SYRUP-11#Devices.

Device Path Accessible ?by kernel? Device Long Name Notes
gc Yes ?GPU/Graphics? ?Controller/Core? It could also stand for Graphics Core (from [1])
fd ? File Descriptor Opening the file /dev/fd/n is equivalent to duplicating descriptor n (assuming that descriptor n is open).
dce ? Display Controller Engine -
dmem{0,1?,2?} ? ?Direct? Memory -
dipsw ? DIP Switches -
hmd ? Head-mounted Display Morpheus. https://en.wikipedia.org/wiki/Head-mounted_display
mas ? ?Mass Storage? -
bt ? Bluetooth -
sdma ? (GPU) System DMA Kernel -
hdmi ? HDMI -
s3da ?System/Software? 3D Acceleration See Marcan's slides about PS4 GPU Linux driver.
dbggc Yes Debug ?GPU/Graphics? ?Controller/Core? -
deci_stderr ? DECI4 stderr -
deci_stdin ? DECI4 stdin -
deci_stdout ? DECI4 stdout -
deci_tty{2-7} ? DECI4 tty{2-7} -
deci_tty{a-c}0 ? DECI4 deci_tty{a-c}0 -
ctrlp ? Control ?Process? Like on PS Vita DevKit. See [2].
camera Yes Camera Module for the PlayStation 4 Camera.
wlan ? Wireless LAN -
wlanbt Wireless LAN Bluetooth - -
regmgr Yes Registry Manager -
vce ? Video Coding/Codec Engine -
hmddfu Yes Head-mounted Display Device Firmware Update Morpheus firmware updater
mbus ? ?Media/Memory/Management? Bus See libSceMbus.sprx.
uvd ? Unified Video Decoder GPKMD?
hid Yes Human Interface Device -
sbl Yes SBL Kernel module -
av_control ? Audio/Video Controller -
ipmimgr Yes IPMI Manager Used by ShellCore for tasks.
ajm Yes Audio Co-processor Job Manager -
bpf ? BSD Packet Filter Since System Software 5.50, opening BPF has been blocked for unprivileged processes such as WebKit and applications/games. Attempting to open it yields EPERM.
bpf0 ? BSD Packet Filter 0 -
console ? Console Probably a debug log console. It provides the kernel a guaranteed place to output its log messages, especially during boot time. It is a symbolic link pointing to another device, usually tty0.
ctty ? ?Console? TTY Probably an alias to the terminal of the active process (tty0), regardless of the type of terminal.
sdbgp ? System Debug ?Process? Like on PS Vita DevKit. See [3].
audioout ? Audio Out -
screenshot ? Screenshot -
bluetooth_hid ? Bluetooth Human Interface Device -
icc_configuration ? ICC Configuration -
icc_device_power ? ICC Device Power -
icc_indicator ? ICC Indicator -
icc_nvs ? ICC NVS -
icc_power ? ICC Power -
notification0 ? Notification 0 -
notification1 ? Notification 1 -
null ? Null device -
random ? Blocking CSPRNG -
rng ? Random number generator -
sce_zlib ? Sony Computer Entertainment zlib -
srtc ? Secure Real Time Clock -
ugen0.4 ? ? -
urandom ? Never-blocking CSPRNG -
usb ? USB -
usbctl ? USB Control -
zero ? Zero -

Disk Device Listing[edit | edit source]

Some devices acts as RW storage devices and aim to be mounted as partitions.

See also Partitions, FreeBSD GEOM handbook and FreeBSD Storage handbook.

Format: <Device Name><ID><Optional: .crypt><Optional: XN where X is "s" for segment or "x" for partition and N is a decimal number><Optional: .crypt><Optional: XN where X is "s" for segment or "x" for partition and N is a decimal number><Optional: b for (active or inactive) backup bank>

Type can be:

Device Name Description Notes Used in
cd0 /mnt/disc0 (CD, DVD or BD) contains 4XXR 80010002, https://pastebin.com/zP8EZFrW
da0 Internal HDD (raw) contains 4002XXXX 80010002, https://pastebin.com/BxqFjFts
da0x0.crypt preinst contains preinst image 80010002, mini-syscore.elf, safemode.elf, SceShellCore.elf, orbis_swu.self
da0x1.crypt preinst2 contains preinst2 image 80010002, mini-syscore.elf, safemode.elf, SceShellCore.elf, orbis_swu.self
da0x2 eap_kernel contains eap_kernel. 16 MB. Usually named like /dev/sdX5. 80010002, safemode.elf, SceShellCore.elf, orbis_swu.self
da0x3.crypt eap_vsh contains eap_vsh img 80010002, mini-syscore.elf, safemode.elf, SceShellCore.elf, orbis_swu.self
da0x4.crypt, da0x4b.crypt system contains active/inactive system img 80010002, safemode.elf, SceShellCore.elf, orbis_swu.self (mini-syscore.elf and safemode.elf only 4)
da0x5.crypt, da0x5b.crypt system_ex contains active/inactive system_ex img 80010002, safemode.elf, SceShellCore.elf, orbis_swu.self (mini-syscore.elf included 5)
da0x6.crypt old swap contains old swap
da0x6x0.crypt new swap contains new swap 80010002, mini-syscore.elf, SceSysCore.elf
da0x6x1.crypt kernel_log contains kernel log 80010002
da0x6x2.crypt user_log contains user log 80010002, mini-syscore.elf
da0x8.crypt app_tmp contains app_tmp safemode.elf, SceShellCore.elf
da0x9.crypt system_data contains system_data img mini-syscore.elf, safemode.elf, SceSysCore.elf, SceShellCore.elf, orbis_swu.self
da0x12.crypt update contains update img mini-syscore.elf, safemode.elf, SceShellCore.elf, orbis_swu.self
da0x13.crypt user contains user img mini-syscore.elf, safemode.elf, SceShellCore.elf, orbis_swu.self
da0x14.crypt eap_user contains eap_user img mini-syscore.elf, safemode.elf, SceShellCore.elf, orbis_swu.self
da0x15.crypt app_reserved contains app_reserved safemode.elf, libkernel_sys.sprx, SceShellCore.elf
da1 USB Storage device (raw) 80010002, mini-syscore.elf, safemode.elf, libSceWebKit2.sprx, libSceWebKit2Secure.sprx, mscorlib.dll.sprx, System.Core.dll.sprx, NPXS20001 app.exe.sprx, orbis_swu.self
da1s1 /mnt/usb0 (USB Storage device first partition) 80010002, mini-syscore.elf, safemode.elf, libSceWebKit2.sprx, libSceWebKit2Secure.sprx, mscorlib.dll.sprx, System.Core.dll.sprx, NPXS20001 app.exe.sprx, orbis_swu.self
es0.crypt ext_hdd (Extended Storage 0) AES-XTS decrypted USB Extended Storage
pup_update0 Alias of ?da0x12.crypt? contains PUP 80010002, safemode.elf, SceShellCore.elf, orbis_swu.self
sc_fw_update0 Unknown physical location contains 4000XXXX/4001XXXX 80010002, safemode.elf, SceShellCore.elf, orbis_swu.self
sflash0 Entire Serial Flash 32MB (0x2000000)
sflash0s0 Serial Flash segment 0 2MB (0x200000)
sflash0s1 Serial Flash segment 1 30MB (0x1E00000)
sflash0s0x0 Unknown (SceSysCore related) contains blank/0xFF data. 192kB (0x30000) SceSysCore.elf
sflash0s0x32, sflash0s0x32b emc_ipl contains active/inactive emc_ipl (0xC000XXXX). 384kB (0x60000) 80010002, safemode.elf, SceShellCore.elf, orbis_swu.self
sflash0s0x33 eap_kbl contains eap_kbl (C001XXXX). 512kB (0x80000) 80010002, safemode.elf, SceShellCore.elf, orbis_swu.self
sflash0s0x34 nvs contains Serial Flash Non Volatile Storage. 48kB (0xC000)
sflash0s0x38 torus2_fw contains torus firmware (C002XXXX). 512kB (0x80000) 80010002, safemode.elf, SceShellCore.elf, orbis_swu.self
sflash0s1.cryptx1 idata contains individual data 80010002, SceShellCore.elf
sflash0s1.cryptx2, sflash0s1.cryptx2b sam_ipl contains active/inactive Secure Loader (8000XXXX) 80010002, safemode.elf, SceShellCore.elf, orbis_swu.self
sflash0s1.cryptx3, sflash0s1.cryptx3b coreos contains active/inactive CoreOS (Secure Kernel, Kernel, Secure Modules) (8001XXXX) 80010002, safemode.elf, SceShellCore.elf, orbis_swu.self, BdmvPlayerCore.elf, BdvdPlayerCore.elf
sflash0s1.cryptx6 vtrm contains VTRM
sflash0s1.cryptx39 bd_hrl contains bd revocation list 80010002, BdmvPlayerCore.elf , BdvdPlayerCore.elf
sflash0s1.cryptx40 Unknown (safemode related) contains blank/0xFF data 80010002, mini-syscore.elf, safemode.elf, SceShellCore.elf, orbis_swu.self
sbram0 Southbridge RAM Maybe not accessible from x86 kernel. Accessible from ?EAP or EMC?.
iccnvs{0-4} Serial Flash Non Volatile Storage segment {0-4}

source: https://web.archive.org/web/20161013104012/http://pastie.org/pastes/9706000