Line 53:
Line 53:
word_addr = word_addr | word_offset;
word_addr = word_addr | word_offset;
−
*(0x0D8001EC) = word_addr; // HW_OTPCMD
+
*(u32*)0x0D8001EC = word_addr; // HW_OTPCMD
−
*(out_buf + step) = *(0x0D8001F0); // HW_OTPDATA
+
+
// Keep checking the read flag.
+
if (!((*(u32*)0x0D8001EC) & 0x80000000))
+
break;
+
+
*(u32*)(out_buf + step) = *(u32*)0x0D8001F0; // HW_OTPDATA
step += 4;
step += 4;
Line 72:
Line 77:
read_otp_internal(index, out_buf, size);
read_otp_internal(index, out_buf, size);
}
}
−
+
== OTP Contents ==
== OTP Contents ==
The following things are stored inside the OTP and requested by the IOSU kernel at some point:
The following things are stored inside the OTP and requested by the IOSU kernel at some point: