mirror of
https://github.com/d0k3/GodMode9.git
synced 2025-06-26 13:42:47 +00:00
Misc diskio.c / start.s improvements
This commit is contained in:
parent
3aada172b9
commit
6bd1cace1f
@ -63,9 +63,9 @@ _start:
|
|||||||
mcr p15, 0, r5, c7, c10, 4 @ drain write buffer
|
mcr p15, 0, r5, c7, c10, 4 @ drain write buffer
|
||||||
|
|
||||||
@ Fixes mounting of SDMC
|
@ Fixes mounting of SDMC
|
||||||
ldr r0, =0x10000020
|
ldr r0, =0x10000020
|
||||||
mov r1, #0x340
|
mov r1, #0x340
|
||||||
str r1, [r0]
|
str r1, [r0]
|
||||||
|
|
||||||
bl main
|
bl main
|
||||||
|
|
||||||
|
@ -93,12 +93,12 @@ _start:
|
|||||||
mcr p15, 0, r5, c7, c10, 4 @ drain write buffer
|
mcr p15, 0, r5, c7, c10, 4 @ drain write buffer
|
||||||
|
|
||||||
@ Fixes mounting of SDMC
|
@ Fixes mounting of SDMC
|
||||||
ldr r0, =0x10000020
|
ldr r0, =0x10000020
|
||||||
mov r1, #0x340
|
mov r1, #0x340
|
||||||
str r1, [r0]
|
str r1, [r0]
|
||||||
|
|
||||||
ldr sp,=0x22160000
|
ldr sp, =0x22160000
|
||||||
ldr r3, =main
|
ldr r3, =main
|
||||||
blx r3
|
blx r3
|
||||||
.pool
|
.pool
|
||||||
|
|
||||||
|
@ -130,18 +130,17 @@ DSTATUS disk_initialize (
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (pdrv == 0) { // a mounted SD card is the preriquisite for everything else
|
if (pdrv == 0) { // a mounted SD card is the preriquisite for everything else
|
||||||
if (!sdmmc_sdcard_init())
|
if (!sdmmc_sdcard_init()) return STA_NODISK;
|
||||||
return RES_PARERR;
|
|
||||||
} else if (pdrv < 4) {
|
} else if (pdrv < 4) {
|
||||||
nand_type_sys = CheckNandType(NAND_SYSNAND);
|
nand_type_sys = CheckNandType(NAND_SYSNAND);
|
||||||
if (!nand_type_sys) return RES_PARERR;
|
if (!nand_type_sys) return STA_NODISK;
|
||||||
} else if (pdrv < 7) {
|
} else if (pdrv < 7) {
|
||||||
nand_type_emu = CheckNandType(NAND_EMUNAND);
|
nand_type_emu = CheckNandType(NAND_EMUNAND);
|
||||||
if (!nand_type_emu) return RES_PARERR;
|
if (!nand_type_emu) return STA_NODISK;
|
||||||
} else if (pdrv < 10) {
|
} else if (pdrv < 10) {
|
||||||
if (!GetMountState()) return RES_PARERR;
|
if (!GetMountState()) return STA_NODISK;
|
||||||
nand_type_img = CheckNandType(NAND_IMGNAND);
|
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;
|
return RES_OK;
|
||||||
}
|
}
|
||||||
@ -246,13 +245,13 @@ DRESULT disk_ioctl (
|
|||||||
if (type == TYPE_SDCARD) { // SD card
|
if (type == TYPE_SDCARD) { // SD card
|
||||||
*((DWORD*) buff) = getMMCDevice(1)->total_size;
|
*((DWORD*) buff) = getMMCDevice(1)->total_size;
|
||||||
} else if (type == TYPE_IMAGE) { // FAT image
|
} else if (type == TYPE_IMAGE) { // FAT image
|
||||||
*((DWORD*) buff) = GetMountSize();
|
*((DWORD*) buff) = GetMountSize() / 0x200;
|
||||||
} else if (type != TYPE_NONE) { // NAND
|
} else if (type != TYPE_NONE) { // NAND
|
||||||
*((DWORD*) buff) = get_subtype_desc(pdrv)->size;
|
*((DWORD*) buff) = get_subtype_desc(pdrv)->size;
|
||||||
}
|
}
|
||||||
return RES_OK;
|
return RES_OK;
|
||||||
case GET_BLOCK_SIZE:
|
case GET_BLOCK_SIZE:
|
||||||
*((DWORD*) buff) = 0x2000;
|
*((DWORD*) buff) = (type == TYPE_IMAGE) ? 0x1 : 0x2000;
|
||||||
return RES_OK;
|
return RES_OK;
|
||||||
case CTRL_SYNC:
|
case CTRL_SYNC:
|
||||||
if ((type == TYPE_IMAGE) || (type == TYPE_IMGNAND))
|
if ((type == TYPE_IMAGE) || (type == TYPE_IMGNAND))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user