Fix diskio.c stuff
This commit is contained in:
parent
1a62e91c01
commit
f36ff303d9
@ -37,16 +37,21 @@ DSTATUS disk_initialize (
|
|||||||
BYTE pdrv /* Physical drive nmuber to identify the drive */
|
BYTE pdrv /* Physical drive nmuber to identify the drive */
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
DRESULT ret = RES_OK;
|
DRESULT ret;
|
||||||
static bool sdmmcInited = false;
|
static u32 sdmmcInitResult = 4;
|
||||||
|
|
||||||
if(!sdmmcInited)
|
if(sdmmcInitResult == 4) sdmmcInitResult = sdmmc_sdcard_init();
|
||||||
|
|
||||||
|
if(pdrv == CTRNAND)
|
||||||
{
|
{
|
||||||
if(!sdmmc_sdcard_init()) ret = RES_PARERR;
|
if(!(sdmmcInitResult & 1))
|
||||||
else sdmmcInited = true;
|
{
|
||||||
|
ctrNandInit();
|
||||||
|
ret = RES_OK;
|
||||||
|
}
|
||||||
|
else ret = RES_PARERR;
|
||||||
}
|
}
|
||||||
|
else ret = (!(sdmmcInitResult & 2)) ? RES_OK : RES_PARERR;
|
||||||
if(pdrv == CTRNAND) ctrNandInit();
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -472,8 +472,11 @@ void sdmmc_get_cid(bool isNand, u32 *info)
|
|||||||
sdmmc_send_command(device, 0x10507, device->initarg << 0x10);
|
sdmmc_send_command(device, 0x10507, device->initarg << 0x10);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool sdmmc_sdcard_init()
|
u32 sdmmc_sdcard_init()
|
||||||
{
|
{
|
||||||
|
u32 ret = 0;
|
||||||
InitSD();
|
InitSD();
|
||||||
return (Nand_Init() | SD_Init()) == 0;
|
if(Nand_Init() != 0) ret &= 1;
|
||||||
|
if(SD_Init() != 0) ret &= 2;
|
||||||
|
return ret;
|
||||||
}
|
}
|
@ -91,7 +91,7 @@ typedef struct mmcdevice {
|
|||||||
u32 res;
|
u32 res;
|
||||||
} mmcdevice;
|
} mmcdevice;
|
||||||
|
|
||||||
bool sdmmc_sdcard_init();
|
u32 sdmmc_sdcard_init();
|
||||||
int sdmmc_sdcard_readsectors(u32 sector_no, u32 numsectors, u8 *out);
|
int sdmmc_sdcard_readsectors(u32 sector_no, u32 numsectors, u8 *out);
|
||||||
int sdmmc_sdcard_writesectors(u32 sector_no, u32 numsectors, const u8 *in);
|
int sdmmc_sdcard_writesectors(u32 sector_no, u32 numsectors, const u8 *in);
|
||||||
int sdmmc_nand_readsectors(u32 sector_no, u32 numsectors, u8 *out);
|
int sdmmc_nand_readsectors(u32 sector_no, u32 numsectors, u8 *out);
|
||||||
|
Reference in New Issue
Block a user