Line 36:
Line 36:
== IOSU ==
== IOSU ==
The Wii U's IOSU interacts with the OTP by setting it's respective Latte registers. In addition to this, the IOS-CRYPTO process is also able to access the OTP indirectly through syscall 0x22, which takes the OTP word index, a buffer to store the result and the requested size as parameters. The IOS-KERNEL then converts the word index:
The Wii U's IOSU interacts with the OTP by setting it's respective Latte registers. In addition to this, the IOS-CRYPTO process is also able to access the OTP indirectly through syscall 0x22, which takes the OTP word index, a buffer to store the result and the requested size as parameters. The IOS-KERNEL then converts the word index:
−
read_otp(int index, void* out_buf, u32 size)
+
int read_otp_internal(int index, void* out_buf, u32 size)
{
{
generate_control_bits();
generate_control_bits();
Line 70:
Line 70:
// Internal IOS-KERNEL function.
// Internal IOS-KERNEL function.
−
read_otp(index, out_buf, size);
+
read_otp_internal(index, out_buf, size);
}
}