In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "/dev/bsp/Sys"

From WiiUBrew
< /dev‎ | bsp
Jump to navigation Jump to search
(Start documenting BSP/Sys (incomplete))
 
(Add rest of bsp:Sys attributes)
Line 21: Line 21:
  
 
=== Misc ===
 
=== Misc ===
'''Availability''': This attribute is always available.
+
'''Availability''': This attribute is always available. (<code>BSP_AO_INIT_GLOBAL</code>)
  
 
'''Permissions''': <code>BSP_PERMISSIONS_IOS_SUPV</code> only.
 
'''Permissions''': <code>BSP_PERMISSIONS_IOS_SUPV</code> only.
Line 109: Line 109:
 
|
 
|
 
| Calls the same backend function as the Write method, using hardcoded PLL data.
 
| Calls the same backend function as the Write method, using hardcoded PLL data.
 +
|}
 +
 +
=== devicePresence ===
 +
'''Availability''': This attribute is always available.
 +
 +
'''Permissions''': <code>BSP_PERMISSIONS_ALL</code>.
 +
{| class="wikitable"
 +
! Method
 +
! Data Size
 +
! Values
 +
!
 +
|-
 +
| Read
 +
| 4
 +
| constant
 +
| Returns a constant 0x07F17317; or an unknown value if the EE board revision is greater than 4.
 +
|}
 +
 +
=== topLevel ===
 +
'''Availability''': This attribute is always available. (<code>BSP_AO_INIT_GLOBAL</code>)
 +
 +
'''Permissions''': <code>BSP_PERMISSIONS_IOS_SUPV</code>.
 +
{| class="wikitable"
 +
! Method
 +
! Data Size
 +
! Values
 +
!
 +
|-
 +
| Init
 +
| 0
 +
|
 +
| Initialises plenty of hardware and BSP entities; including some of Sys's attributes, GPIO, USB, EE, GFX, AI, VI, SATA, SMC, CCRH, SI, DI, FLA and SDIO.
 +
|}
 +
 +
 +
=== iop2x ===
 +
'''Availability''': This attribute is always available. (<code>BSP_AO_INIT_GLOBAL</code>)
 +
 +
'''Permissions''': <code>BSP_PERMISSIONS_IOS_SUPV | BSP_PERMISSIONS_IOS_USER_READ</code>.
 +
{| class="wikitable"
 +
! Method
 +
! Data Size
 +
! Values
 +
!
 +
|-
 +
| Init
 +
| 1
 +
| 1 or 2
 +
| Calls [[IOSU_Syscalls|syscall]] 0x6c with either 0 or 1 to set the clock multiplier.
 +
|-
 +
| Read
 +
| 1
 +
| 1 or 2
 +
| Returns the state of the IOP clock multiplier - 1x or 2x (based on bit 3 of [[Hardware/Latte Registers#LT_IOP2X|LT_IOP2X]])
 +
|}
 +
 +
=== cpuUtil ===
 +
'''Availability''': This attribute is always available.
 +
 +
'''Permissions''': <code>BSP_PERMISSIONS_ALL</code>.
 +
{| class="wikitable"
 +
! Method
 +
! Data Size
 +
! Values
 +
!
 +
|-
 +
| Read
 +
| 4
 +
| {{check}}
 +
| Returns the Starbuck's CPU utilisation (from [[IOSU_Syscalls|syscall]] 0x60).
 +
|}
 +
 +
=== osVer ===
 +
'''Availability''': This attribute is always available.
 +
 +
'''Permissions''': <code>BSP_PERMISSIONS_ALL</code>.
 +
{| class="wikitable"
 +
! Method
 +
! Data Size
 +
! Values
 +
!
 +
|-
 +
| Read
 +
| 94
 +
| constant
 +
| Returns a structure with data about the current OS/SDK version. This includes the "Cafe OS SDK Version x.xx.xx Build..." string often seen in IOSU logs.
 +
|}
 +
 +
=== powerMode ===
 +
'''Availability''': This attribute is always available.
 +
 +
'''Permissions''': <code>BSP_PERMISSIONS_ALL</code>.
 +
{| class="wikitable"
 +
! Method
 +
! Data Size
 +
! Values
 +
!
 +
|-
 +
| Read
 +
| 4
 +
| {{check}}
 +
|
 +
|}
 +
 +
=== iopClock ===
 +
'''Availability''': This attribute is always available.
 +
 +
'''Permissions''': <code>BSP_PERMISSIONS_ALL</code>.
 +
{| class="wikitable"
 +
! Method
 +
! Data Size
 +
! Values
 +
!
 +
|-
 +
| Read
 +
| 8
 +
|
 +
| Returns 64-bit system uptime (from IOS_GetUpTime64, [[IOSU_Syscalls|syscall]] 0x1a).
 
|}
 
|}

Revision as of 04:39, 27 December 2019

Sys is the /dev/bsp entity that handles miscellaneous system attributes, like. There is always one instance available.

Attributes

WorkArounds

Availability: This attribute is always available.

Permissions: BSP_PERMISSIONS_IOS_SUPV only.

Method Data Size Values
Init 0 Sets various hardware-dependent workaround registers depending on the hardware version. For Latte boards, this includes bits 10 and 11 in HW_SPARE1, bits 4 through 1 in HW_SPARE0, and bits 18 through 13 in AHMN_WORKAROUND (dev boards only).

Misc

Availability: This attribute is always available. (BSP_AO_INIT_GLOBAL)

Permissions: BSP_PERMISSIONS_IOS_SUPV only.

Method Data Size Values
Init 0 Sets various pin strength controls, including bits in HW_IOSTRCTRL0, HW_IOSTRCTRL1, HW_CLKSTRCTRL and LT_IOSTRCTRL2.

ClockInfo

Availability: This attribute is always available.

Permissions: BSP_PERMISSIONS_ALL.

Method Data Size Values
Read 8 constant Returns the system bus speed in Hz (248625000 on retail consoles) in the first 4 bytes, and the same value divided by 128 in the second 4 bytes.

ASICRevision

Availability: This attribute is always available.

Permissions: BSP_PERMISSIONS_ALL.

Method Data Size Values
Read 8 constant Returns HW_CHIPREVID in the first 4 bytes, and LT_CHIPREVID in the last 8 bytes (where supported).

BoardRevision

Availability: This attribute is always available.

Permissions: BSP_PERMISSIONS_ALL.

Method Data Size Values
Read 2 constant Returns the board revision from BSP's global BoardConfig struct.

SYSPLL

Availability: This attribute is always available.

Permissions: BSP_PERMISSIONS_PPC_SUPV_READ | BSP_PERMISSIONS_IOS_USER_READ | BSP_PERMISSIONS_IOS_SUPV

Method Data Size Values
Read 0x36 Constructs a buffer with values from ABIF.[check]
Write 0x36 Sends values from the input buffer out over ABIF, wrapped by toggling values in HW_CLOCKS (sets FX on entry, clears SPEED and FX on exit), conditionally setting bit 1 in LT_PLLSYS and holding RSTB_SYSPLL, RSTB_MEMRSTB and RSTB_DSKPLL in reset during the operation.
Init 0 Calls the same backend function as the Write method, using hardcoded PLL data.

devicePresence

Availability: This attribute is always available.

Permissions: BSP_PERMISSIONS_ALL.

Method Data Size Values
Read 4 constant Returns a constant 0x07F17317; or an unknown value if the EE board revision is greater than 4.

topLevel

Availability: This attribute is always available. (BSP_AO_INIT_GLOBAL)

Permissions: BSP_PERMISSIONS_IOS_SUPV.

Method Data Size Values
Init 0 Initialises plenty of hardware and BSP entities; including some of Sys's attributes, GPIO, USB, EE, GFX, AI, VI, SATA, SMC, CCRH, SI, DI, FLA and SDIO.


iop2x

Availability: This attribute is always available. (BSP_AO_INIT_GLOBAL)

Permissions: BSP_PERMISSIONS_IOS_SUPV | BSP_PERMISSIONS_IOS_USER_READ.

Method Data Size Values
Init 1 1 or 2 Calls syscall 0x6c with either 0 or 1 to set the clock multiplier.
Read 1 1 or 2 Returns the state of the IOP clock multiplier - 1x or 2x (based on bit 3 of LT_IOP2X)

cpuUtil

Availability: This attribute is always available.

Permissions: BSP_PERMISSIONS_ALL.

Method Data Size Values
Read 4 [check] Returns the Starbuck's CPU utilisation (from syscall 0x60).

osVer

Availability: This attribute is always available.

Permissions: BSP_PERMISSIONS_ALL.

Method Data Size Values
Read 94 constant Returns a structure with data about the current OS/SDK version. This includes the "Cafe OS SDK Version x.xx.xx Build..." string often seen in IOSU logs.

powerMode

Availability: This attribute is always available.

Permissions: BSP_PERMISSIONS_ALL.

Method Data Size Values
Read 4 [check]

iopClock

Availability: This attribute is always available.

Permissions: BSP_PERMISSIONS_ALL.

Method Data Size Values
Read 8 Returns 64-bit system uptime (from IOS_GetUpTime64, syscall 0x1a).