Changes

871 bytes added ,  06:02, 21 October 2013
no edit summary
Line 771: Line 771:     
= KernelSetState =
 
= KernelSetState =
Type0 initializes the programID for launching [[FIRM]], then triggers launching [[FIRM]]. Param0 and Param2 are unused. Param1 is the programID-low, and the programID-high is 0x00040138.
+
{| class="wikitable" border="1"
 
+
|-
Type3 is used for initializing the 0x1000-byte buffer used by the launched [[FIRM]]. Param2 is unused. When Param0 is value 1, this buffer is copied to the beginning of FCRAM at 0xF0000000, and Param1 is unused. When Param0 is value 0, this kernel buffer is mapped to process address Param1.
+
!  Type
 
+
!  Enabled for the NATIVE_FIRM ARM11 kernel
Type7 triggers ARM11 kernel [[I2C]] code, Param0-Param3 are unused. This ARM11 kernel I2C code will never return. Device address 0x4a via the second I2C bus is used here. This triggers a hardware system reboot via poking an I2C MCU register: register address 0x20 is written to with value 4.
+
!  Enabled for the TWL_FIRM ARM11 kernel
 +
!  Description
 +
|-
 +
| 0
 +
| Yes
 +
| No
 +
| This initializes the programID for launching [[FIRM]], then triggers launching [[FIRM]]. Param0 and Param2 are unused. Param1 is the programID-low, and the programID-high is 0x00040138.
 +
|-
 +
| 1
 +
| Yes
 +
| Yes
 +
| Unknown, does nothing with the TWL_FIRM ARM11 kernel.
 +
|-
 +
| 2
 +
| Yes
 +
| Yes
 +
| ?
 +
|-
 +
| 3
 +
| Yes
 +
| No
 +
| This used for initializing the 0x1000-byte buffer used by the launched [[FIRM]]. Param2 is unused. When Param0 is value 1, this buffer is copied to the beginning of FCRAM at 0xF0000000, and Param1 is unused. When Param0 is value 0, this kernel buffer is mapped to process address Param1.
 +
|-
 +
| 4
 +
| No
 +
| Yes
 +
| This unmaps the following virtual memory by writing value physaddr(where physaddr base is 0x80000000) to the L1 MMU table entries: 0x00300000..0x04300000, 0x08000000..0x0FE00000, and 0x10000000..0xF8000000. Attempting to access these regions after using this svcKernelSetState type would result in a translation fault.
 +
|-
 +
| 5
 +
| Yes
 +
| Yes
 +
| ?
 +
|-
 +
| 6
 +
| Yes
 +
| No
 +
| Debug related?
 +
|-
 +
| 7
 +
| Yes
 +
| No
 +
| This triggers ARM11 kernel [[I2C]] code, Param0-Param3 are unused. This ARM11 kernel I2C code will never return. Device address 0x4a via the second I2C bus is used here. This triggers a hardware system reboot via poking an I2C MCU register: register address 0x20 is written to with value 4.
 +
|-
 +
| 8
 +
| Yes
 +
| No
 +
| Alternate unused FIRM launch code-path, with different [[PXI]] FIFO word constants.
 +
|}
    
= GetSystemInfo =
 
= GetSystemInfo =
Line 790: Line 837:  
| 0xD92007EA
 
| 0xD92007EA
 
| This error is returned when a process attempts to use svcCreateMemoryBlock when the process memorytype is the application memorytype, and when addr=0.
 
| This error is returned when a process attempts to use svcCreateMemoryBlock when the process memorytype is the application memorytype, and when addr=0.
 +
|-
 +
| 0xF8C007F4
 +
| Invalid type/param0-param3 input for svcKernelSetState.
 
|}
 
|}