Line 184:
Line 184:
u32 iostrength_ctrl1_val = *(u32 *)HW_IOSTRCTRL1;
u32 iostrength_ctrl1_val = *(u32 *)HW_IOSTRCTRL1;
−
if (((iostrength_flags >> 0x0F) & 0x01) != 0) {
+
if (((iostrength_flags >> 0x0F) & 0x01) != 0)
+
{
iostrength_ctrl0_val &= 0xFFFC7FFF;
iostrength_ctrl0_val &= 0xFFFC7FFF;
iostrength_ctrl0_val |= ((iostrength_flags << 0x11) >> 0x1D) << 0x0F;
iostrength_ctrl0_val |= ((iostrength_flags << 0x11) >> 0x1D) << 0x0F;
Line 191:
Line 192:
*(u32 *)HW_IOSTRCTRL0 = iostrength_ctrl0_val;
*(u32 *)HW_IOSTRCTRL0 = iostrength_ctrl0_val;
−
if (((iostrength_flags >> 0x0F) & 0x01) != 0) {
+
if (((iostrength_flags >> 0x0F) & 0x01) != 0)
+
{
iostrength_ctrl1_val &= 0xFFFC7FFF;
iostrength_ctrl1_val &= 0xFFFC7FFF;
iostrength_ctrl1_val |= (iostrength_flags & 0x07) << 0x0F;
iostrength_ctrl1_val |= (iostrength_flags & 0x07) << 0x0F;
}
}
−
if (((iostrength_flags >> 0x07) & 0x01) != 0) {
+
if (((iostrength_flags >> 0x07) & 0x01) != 0)
+
{
iostrength_ctrl1_val &= 0xFFE3FFFF;
iostrength_ctrl1_val &= 0xFFE3FFFF;
iostrength_ctrl1_val |= ((iostrength_flags << 0x19) >> 0x1D) << 0x12;
iostrength_ctrl1_val |= ((iostrength_flags << 0x19) >> 0x1D) << 0x12;
}
}
−
if (((iostrength_flags >> 0x0B) & 0x01) != 0) {
+
if (((iostrength_flags >> 0x0B) & 0x01) != 0)
+
{
iostrength_ctrl1_val &= 0xFFFF8FFF;
iostrength_ctrl1_val &= 0xFFFF8FFF;
iostrength_ctrl1_val |= ((iostrength_flags << 0x15) >> 0x1D) << 0x0C;
iostrength_ctrl1_val |= ((iostrength_flags << 0x15) >> 0x1D) << 0x0C;
}
}
−
if (((iostrength_flags >> 0x13) & 0x01) != 0) {
+
if (((iostrength_flags >> 0x13) & 0x01) != 0)
+
{
iostrength_ctrl1_val &= 0xFFFF8FFF;
iostrength_ctrl1_val &= 0xFFFF8FFF;
iostrength_ctrl1_val |= ((iostrength_flags << 0x0D) >> 0x1D) << 0x15;
iostrength_ctrl1_val |= ((iostrength_flags << 0x0D) >> 0x1D) << 0x15;
Line 244:
Line 249:
if (sec_lvl_flag == 0x00000000)
if (sec_lvl_flag == 0x00000000)
set_empty_aes_keys();
set_empty_aes_keys();
−
else {
+
else
+
{
// Disable boot1 AES key access
// Disable boot1 AES key access
u32 otpprot_val = *(u32 *)LT_OTPPROT;
u32 otpprot_val = *(u32 *)LT_OTPPROT;
Line 320:
Line 326:
// Factory mode doesn't need boot1's data
// Factory mode doesn't need boot1's data
−
if (!aes_seeprom_key) {
+
if (!aes_seeprom_key)
+
{
boot1_version = 0;
boot1_version = 0;
boot1_sector = 0;
boot1_sector = 0;
Line 356:
Line 363:
// Check if seeprom_1C_00 is not 0x400
// Check if seeprom_1C_00 is not 0x400
−
if ((seeprom_1C_00 & 0x3FF) != 0) {
+
if ((seeprom_1C_00 & 0x3FF) != 0)
+
{
// Store at 0x0D414200
// Store at 0x0D414200
sub_D41203C(seeprom_1C_00 & 0x3FF);
sub_D41203C(seeprom_1C_00 & 0x3FF);
Line 370:
Line 378:
*(u32 *)LT_ARMIRQMASKLT = 0x1000;
*(u32 *)LT_ARMIRQMASKLT = 0x1000;
−
// Turn IOP2X on?
+
// Set the ARM multiplier
*(u32 *)LT_IOP2X = 0x03;
*(u32 *)LT_IOP2X = 0x03;
Line 498:
Line 506:
// Delay execution arbitrarily
// Delay execution arbitrarily
−
if ((seeprom_1C_00 & 0x7C00) != 0) {
+
if ((seeprom_1C_00 & 0x7C00) != 0)
+
{
u32 time_now = *(u32 *)HW_TIMER;
u32 time_now = *(u32 *)HW_TIMER;
Line 507:
Line 516:
u32 delay = sub_D412060(seeprom_delay);
u32 delay = sub_D412060(seeprom_delay);
−
while (time_now < delay) {
+
while (time_now < delay)
+
{
time_now = *(u32 *)HW_TIMER;
time_now = *(u32 *)HW_TIMER;
delay = sub_D412060(seeprom_delay);
delay = sub_D412060(seeprom_delay);
Line 534:
Line 544:
// We got a response from EXI0
// We got a response from EXI0
−
if (result) {
+
if (result)
+
{
u32 exi0_reply = *(u32 *)exi0_out_buf;
u32 exi0_reply = *(u32 *)exi0_out_buf;
Line 577:
Line 588:
u32 delay = sub_D412060(seeprom_delay);
u32 delay = sub_D412060(seeprom_delay);
−
while (time_now < delay) {
+
while (time_now < delay)
+
{
time_now = *(u32 *)HW_TIMER;
time_now = *(u32 *)HW_TIMER;
delay = sub_D412060(seeprom_delay);
delay = sub_D412060(seeprom_delay);