Switch to Normmatt's iodelay
Seems to be more reliable in all conditions
This commit is contained in:
parent
e9410c86b1
commit
8ce395caa5
@ -6,4 +6,4 @@
|
||||
|
||||
#include "common.h"
|
||||
|
||||
void waitcycles(u32 us);
|
||||
void ioDelay(u32 us);
|
||||
|
@ -1,10 +1,17 @@
|
||||
.arm
|
||||
.global waitcycles
|
||||
.type waitcycles STT_FUNC
|
||||
// Copyright 2014 Normmatt
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
@waitcycles ( u32 us )
|
||||
waitcycles:
|
||||
waitcycles_loop:
|
||||
subs r0, #1
|
||||
bgt waitcycles_loop
|
||||
bx lr
|
||||
.arm
|
||||
.global ioDelay
|
||||
.type ioDelay STT_FUNC
|
||||
|
||||
@ioDelay ( u32 us )
|
||||
ioDelay:
|
||||
ldr r1, =0x18000000 @ VRAM
|
||||
1:
|
||||
@ Loop doing uncached reads from VRAM to make loop timing more reliable
|
||||
ldr r2, [r1]
|
||||
subs r0, #1
|
||||
bgt 1b
|
||||
bx lr
|
||||
|
@ -286,7 +286,7 @@ static void InitSD()
|
||||
static int Nand_Init()
|
||||
{
|
||||
inittarget(&handleNAND);
|
||||
waitcycles(0xF000);
|
||||
ioDelay(0xF000);
|
||||
|
||||
sdmmc_send_command(&handleNAND,0,0);
|
||||
|
||||
@ -337,7 +337,7 @@ static int SD_Init()
|
||||
{
|
||||
inittarget(&handleSD);
|
||||
|
||||
waitcycles(1u << 18); //Card needs a little bit of time to be detected, it seems
|
||||
ioDelay(1u << 18); //Card needs a little bit of time to be detected, it seems
|
||||
|
||||
//If not inserted
|
||||
if (!(*((vu16*)0x1000601c) & TMIO_STAT0_SIGSTATE)) return -1;
|
||||
|
@ -6,4 +6,4 @@
|
||||
|
||||
#include "common.h"
|
||||
|
||||
void waitcycles(u32 us);
|
||||
void ioDelay(u32 us);
|
||||
|
@ -1,10 +1,17 @@
|
||||
.arm
|
||||
.global waitcycles
|
||||
.type waitcycles STT_FUNC
|
||||
// Copyright 2014 Normmatt
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
@waitcycles ( u32 us )
|
||||
waitcycles:
|
||||
waitcycles_loop:
|
||||
subs r0, #1
|
||||
bgt waitcycles_loop
|
||||
bx lr
|
||||
.arm
|
||||
.global ioDelay
|
||||
.type ioDelay STT_FUNC
|
||||
|
||||
@ioDelay ( u32 us )
|
||||
ioDelay:
|
||||
ldr r1, =0x18000000 @ VRAM
|
||||
1:
|
||||
@ Loop doing uncached reads from VRAM to make loop timing more reliable
|
||||
ldr r2, [r1]
|
||||
subs r0, #1
|
||||
bgt 1b
|
||||
bx lr
|
||||
|
@ -286,7 +286,7 @@ static void InitSD()
|
||||
static int Nand_Init()
|
||||
{
|
||||
inittarget(&handleNAND);
|
||||
waitcycles(0xF000);
|
||||
ioDelay(0xF000);
|
||||
|
||||
sdmmc_send_command(&handleNAND,0,0);
|
||||
|
||||
@ -337,7 +337,7 @@ static int SD_Init()
|
||||
{
|
||||
inittarget(&handleSD);
|
||||
|
||||
waitcycles(1u << 18); //Card needs a little bit of time to be detected, it seems
|
||||
ioDelay(1u << 18); //Card needs a little bit of time to be detected, it seems
|
||||
|
||||
//If not inserted
|
||||
if (!(*((vu16*)0x1000601c) & TMIO_STAT0_SIGSTATE)) return -1;
|
||||
|
Reference in New Issue
Block a user