mirror of
https://github.com/ApacheThunder/omega-kernel-boot-to-nor.git
synced 2025-06-18 19:25:32 -04:00

* Bring over updated fat lib from DE kernel. * Updated Write_SD_sectors function to include fail condition check introduced in DE's kernel. * Removed old/unused copies of fat lib. * Refactored button detection routine for skipping autoboot/triggering boot last SD list game. * Press A to boot last played game from PSRAM actually triggers now. Unfortunately it doesn't actually seem to be working right now. Previously due to how the old button detection code was setup, the press A code wasn't triggering at all. * Press B option provided in commented out code for dumping fat table. Compile with this enabled (and the related changes in EZcard_OP.c) to enable dumping fat table to SD prior to booting game. Useful for debugging fat table related stuff for custom kernels/external launchers on DS. Disabled by default as this has no practicle use for end users.
78 lines
2.6 KiB
C
78 lines
2.6 KiB
C
/*-----------------------------------------------------------------------/
|
|
/ Low level disk interface modlue include file (C)ChaN, 2019 /
|
|
/-----------------------------------------------------------------------*/
|
|
|
|
#ifndef _DISKIO_DEFINED
|
|
#define _DISKIO_DEFINED
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Status of Disk Functions */
|
|
typedef BYTE DSTATUS;
|
|
|
|
/* Results of Disk Functions */
|
|
typedef enum {
|
|
RES_OK = 0, /* 0: Successful */
|
|
RES_ERROR, /* 1: R/W Error */
|
|
RES_WRPRT, /* 2: Write Protected */
|
|
RES_NOTRDY, /* 3: Not Ready */
|
|
RES_PARERR /* 4: Invalid Parameter */
|
|
} DRESULT;
|
|
|
|
|
|
/*---------------------------------------*/
|
|
/* Prototypes for disk control functions */
|
|
|
|
|
|
DSTATUS disk_initialize (BYTE pdrv);
|
|
DSTATUS disk_status (BYTE pdrv);
|
|
DRESULT disk_read (BYTE pdrv, BYTE* buff, LBA_t sector, UINT count);
|
|
DRESULT disk_write (BYTE pdrv, const BYTE* buff, LBA_t sector, UINT count);
|
|
DRESULT disk_ioctl (BYTE pdrv, BYTE cmd, void* buff);
|
|
|
|
|
|
/* Disk Status Bits (DSTATUS) */
|
|
|
|
#define STA_NOINIT 0x01 /* Drive not initialized */
|
|
#define STA_NODISK 0x02 /* No medium in the drive */
|
|
#define STA_PROTECT 0x04 /* Write protected */
|
|
|
|
|
|
/* Command code for disk_ioctrl fucntion */
|
|
|
|
/* Generic command (Used by FatFs) */
|
|
#define CTRL_SYNC 0 /* Complete pending write process (needed at FF_FS_READONLY == 0) */
|
|
#define GET_SECTOR_COUNT 1 /* Get media size (needed at FF_USE_MKFS == 1) */
|
|
#define GET_SECTOR_SIZE 2 /* Get sector size (needed at FF_MAX_SS != FF_MIN_SS) */
|
|
#define GET_BLOCK_SIZE 3 /* Get erase block size (needed at FF_USE_MKFS == 1) */
|
|
#define CTRL_TRIM 4 /* Inform device that the data on the block of sectors is no longer used (needed at FF_USE_TRIM == 1) */
|
|
|
|
/* Generic command (Not used by FatFs) */
|
|
#define CTRL_POWER 5 /* Get/Set power status */
|
|
#define CTRL_LOCK 6 /* Lock/Unlock media removal */
|
|
#define CTRL_EJECT 7 /* Eject media */
|
|
#define CTRL_FORMAT 8 /* Create physical format on the media */
|
|
|
|
/* MMC/SDC specific ioctl command */
|
|
#define MMC_GET_TYPE 10 /* Get card type */
|
|
#define MMC_GET_CSD 11 /* Get CSD */
|
|
#define MMC_GET_CID 12 /* Get CID */
|
|
#define MMC_GET_OCR 13 /* Get OCR */
|
|
#define MMC_GET_SDSTAT 14 /* Get SD status */
|
|
#define ISDIO_READ 55 /* Read data form SD iSDIO register */
|
|
#define ISDIO_WRITE 56 /* Write data to SD iSDIO register */
|
|
#define ISDIO_MRITE 57 /* Masked write data to SD iSDIO register */
|
|
|
|
/* ATA/CF specific ioctl command */
|
|
#define ATA_GET_REV 20 /* Get F/W revision */
|
|
#define ATA_GET_MODEL 21 /* Get model name */
|
|
#define ATA_GET_SN 22 /* Get serial number */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|