Misc diskio.c / start.s improvements

This commit is contained in:
d0k3 2016-05-01 15:38:57 +02:00
parent 3aada172b9
commit 6bd1cace1f
3 changed files with 16 additions and 17 deletions

View File

@ -63,9 +63,9 @@ _start:
mcr p15, 0, r5, c7, c10, 4 @ drain write buffer
@ Fixes mounting of SDMC
ldr r0, =0x10000020
mov r1, #0x340
str r1, [r0]
ldr r0, =0x10000020
mov r1, #0x340
str r1, [r0]
bl main

View File

@ -93,12 +93,12 @@ _start:
mcr p15, 0, r5, c7, c10, 4 @ drain write buffer
@ Fixes mounting of SDMC
ldr r0, =0x10000020
mov r1, #0x340
str r1, [r0]
ldr sp,=0x22160000
ldr r3, =main
ldr r0, =0x10000020
mov r1, #0x340
str r1, [r0]
ldr sp, =0x22160000
ldr r3, =main
blx r3
.pool

View File

@ -130,18 +130,17 @@ DSTATUS disk_initialize (
)
{
if (pdrv == 0) { // a mounted SD card is the preriquisite for everything else
if (!sdmmc_sdcard_init())
return RES_PARERR;
if (!sdmmc_sdcard_init()) return STA_NODISK;
} else if (pdrv < 4) {
nand_type_sys = CheckNandType(NAND_SYSNAND);
if (!nand_type_sys) return RES_PARERR;
if (!nand_type_sys) return STA_NODISK;
} else if (pdrv < 7) {
nand_type_emu = CheckNandType(NAND_EMUNAND);
if (!nand_type_emu) return RES_PARERR;
if (!nand_type_emu) return STA_NODISK;
} else if (pdrv < 10) {
if (!GetMountState()) return RES_PARERR;
if (!GetMountState()) return STA_NODISK;
nand_type_img = CheckNandType(NAND_IMGNAND);
if (!nand_type_img) return RES_PARERR;
if ((!nand_type_img) && (pdrv != 7)) return STA_NODISK;
}
return RES_OK;
}
@ -246,13 +245,13 @@ DRESULT disk_ioctl (
if (type == TYPE_SDCARD) { // SD card
*((DWORD*) buff) = getMMCDevice(1)->total_size;
} else if (type == TYPE_IMAGE) { // FAT image
*((DWORD*) buff) = GetMountSize();
*((DWORD*) buff) = GetMountSize() / 0x200;
} else if (type != TYPE_NONE) { // NAND
*((DWORD*) buff) = get_subtype_desc(pdrv)->size;
}
return RES_OK;
case GET_BLOCK_SIZE:
*((DWORD*) buff) = 0x2000;
*((DWORD*) buff) = (type == TYPE_IMAGE) ? 0x1 : 0x2000;
return RES_OK;
case CTRL_SYNC:
if ((type == TYPE_IMAGE) || (type == TYPE_IMGNAND))