mirror of
https://github.com/fail0verflow/mini.git
synced 2024-11-24 12:19:21 +01:00
cleanup sdmmc <-> fatfs glue
This commit is contained in:
parent
abb179e675
commit
f806abdac2
2
crypto.c
2
crypto.c
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
crypto support
|
crypto support
|
||||||
|
|
||||||
Copyright (C) 2008, 2009 Haxx Enterprises
|
Copyright (C) 2008, 2009 Haxx Enterprises <bushing@gmail.com>
|
||||||
Copyright (C) 2008, 2009 Sven Peter <svenpeter@gmail.com>
|
Copyright (C) 2008, 2009 Sven Peter <svenpeter@gmail.com>
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
107
diskio.c
107
diskio.c
@ -1,29 +1,39 @@
|
|||||||
/*-----------------------------------------------------------------------*/
|
/*
|
||||||
/* Low level disk I/O module skeleton for FatFs (C)ChaN, 2007 */
|
mini - a Free Software replacement for the Nintendo/BroadOn IOS.
|
||||||
/*-----------------------------------------------------------------------*/
|
|
||||||
/* This is a stub disk I/O module that acts as front end of the existing */
|
glue layer for FatFs
|
||||||
/* disk I/O modules and attach it to FatFs module with common interface. */
|
|
||||||
/*-----------------------------------------------------------------------*/
|
Copyright (C) 2008, 2009 Sven Peter <svenpeter@gmail.com>
|
||||||
|
Copyright (C) 2008, 2009 Haxx Enterprises <bushing@gmail.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, version 2.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
#include "diskio.h"
|
#include "diskio.h"
|
||||||
#include "string.h"
|
#include "string.h"
|
||||||
#include "sdmmc.h"
|
#include "sdmmc.h"
|
||||||
//#include "sdhc.h"
|
|
||||||
|
|
||||||
#ifndef MEM2_BSS
|
#ifndef MEM2_BSS
|
||||||
#define MEM2_BSS
|
#define MEM2_BSS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//static sdhci_t sdhci;
|
|
||||||
static u8 buffer[512] MEM2_BSS ALIGNED(32);
|
static u8 buffer[512] MEM2_BSS ALIGNED(32);
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------*/
|
// Initialize a Drive
|
||||||
/* Inidialize a Drive */
|
|
||||||
|
|
||||||
DSTATUS disk_initialize (
|
DSTATUS disk_initialize (BYTE drv) {
|
||||||
BYTE drv /* Physical drive nmuber (0..) */
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (sdmmc_check_card(SDMMC_DEFAULT_DEVICE) == SDMMC_NO_CARD)
|
if (sdmmc_check_card(SDMMC_DEFAULT_DEVICE) == SDMMC_NO_CARD)
|
||||||
return STA_NOINIT;
|
return STA_NOINIT;
|
||||||
|
|
||||||
@ -33,16 +43,9 @@ DSTATUS disk_initialize (
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------*/
|
// Return Disk Status
|
||||||
/* Return Disk Status */
|
|
||||||
|
|
||||||
DSTATUS disk_status (
|
|
||||||
BYTE drv /* Physical drive nmuber (0..) */
|
|
||||||
)
|
|
||||||
{
|
|
||||||
// if (sd_inserted(&sdhci) == 0)
|
|
||||||
// return STA_NODISK;
|
|
||||||
|
|
||||||
|
DSTATUS disk_status (BYTE drv) {
|
||||||
if (sdmmc_check_card(SDMMC_DEFAULT_DEVICE) == SDMMC_INSERTED)
|
if (sdmmc_check_card(SDMMC_DEFAULT_DEVICE) == SDMMC_INSERTED)
|
||||||
return 0;
|
return 0;
|
||||||
else
|
else
|
||||||
@ -51,76 +54,44 @@ DSTATUS disk_status (
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------*/
|
// Read Sector(s)
|
||||||
/* Read Sector(s) */
|
|
||||||
|
|
||||||
DRESULT disk_read (
|
DRESULT disk_read (BYTE drv, BYTE *buff, DWORD sector, BYTE count) {
|
||||||
BYTE drv, /* Physical drive nmuber (0..) */
|
|
||||||
BYTE *buff, /* Data buffer to store read data */
|
|
||||||
DWORD sector, /* Sector address (LBA) */
|
|
||||||
BYTE count /* Number of sectors to read (1..255) */
|
|
||||||
)
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
DRESULT res;
|
|
||||||
|
|
||||||
res = RES_OK;
|
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
if (sdmmc_read(SDMMC_DEFAULT_DEVICE, sector+i, 1, buffer) != 0){
|
if (sdmmc_read(SDMMC_DEFAULT_DEVICE, sector+i, 1, buffer) != 0)
|
||||||
res = RES_ERROR;
|
return RES_ERROR;
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
memcpy(buff + i * 512, buffer, 512);
|
memcpy(buff + i * 512, buffer, 512);
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return RES_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------*/
|
// Write Sector(s)
|
||||||
/* Write Sector(s) */
|
|
||||||
|
|
||||||
#if _READONLY == 0
|
#if _READONLY == 0
|
||||||
DRESULT disk_write (
|
DRESULT disk_write (BYTE drv, const BYTE *buff, DWORD sector, BYTE count) {
|
||||||
BYTE drv, /* Physical drive nmuber (0..) */
|
|
||||||
const BYTE *buff, /* Data to be written */
|
|
||||||
DWORD sector, /* Sector address (LBA) */
|
|
||||||
BYTE count /* Number of sectors to write (1..255) */
|
|
||||||
)
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
DRESULT res;
|
|
||||||
|
|
||||||
res = RES_OK;
|
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
memcpy(buffer, buff + i * 512, 512);
|
memcpy(buffer, buff + i * 512, 512);
|
||||||
|
|
||||||
/* if(sd_write(&sdhci, sector + i, 1, buffer) != 0) {
|
if(sdmmc_write(SDMMC_DEFAULT_DEVICE, sector + i, 1, buffer) != 0)
|
||||||
res = RES_ERROR;
|
return RES_ERROR;
|
||||||
break;
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return RES_OK;
|
||||||
}
|
}
|
||||||
#endif /* _READONLY */
|
#endif /* _READONLY */
|
||||||
|
|
||||||
|
#if _USE_IOCTL == 1
|
||||||
|
DRESULT disk_ioctl (BYTE drv, BYTE ctrl, void *buff) {
|
||||||
/*-----------------------------------------------------------------------*/
|
|
||||||
/* Miscellaneous Functions */
|
|
||||||
|
|
||||||
DRESULT disk_ioctl (
|
|
||||||
BYTE drv, /* Physical drive nmuber (0..) */
|
|
||||||
BYTE ctrl, /* Control code */
|
|
||||||
void *buff /* Buffer to send/receive control data */
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (ctrl == CTRL_SYNC)
|
if (ctrl == CTRL_SYNC)
|
||||||
return RES_OK;
|
return RES_OK;
|
||||||
|
|
||||||
return RES_PARERR;
|
return RES_PARERR;
|
||||||
}
|
}
|
||||||
|
#endif /* _USE_IOCTL */
|
||||||
|
45
diskio.h
45
diskio.h
@ -1,6 +1,19 @@
|
|||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
/ Low level disk interface modlue include file R0.07 (C)ChaN, 2009
|
/ Low level disk interface modlue include file R0.07 (C)ChaN, 2009
|
||||||
/-----------------------------------------------------------------------*/
|
/-----------------------------------------------------------------------
|
||||||
|
/ FatFs module is an open source project to implement FAT file system to small
|
||||||
|
/ embedded systems. It is opened for education, research and development under
|
||||||
|
/ license policy of following trems.
|
||||||
|
/
|
||||||
|
/ Copyright (C) 2009, ChaN, all right reserved.
|
||||||
|
/
|
||||||
|
/ * The FatFs module is a free software and there is no warranty.
|
||||||
|
/ * You can use, modify and/or redistribute it for personal, non-profit or
|
||||||
|
/ commercial use without any restriction under your responsibility.
|
||||||
|
/ * Redistributions of source code must retain the above copyright notice.
|
||||||
|
/
|
||||||
|
/----------------------------------------------------------------------------*/
|
||||||
|
// original source: http://elm-chan.org/fsw/ff/00index_e.html
|
||||||
|
|
||||||
#ifndef _DISKIO
|
#ifndef _DISKIO
|
||||||
|
|
||||||
@ -9,7 +22,6 @@
|
|||||||
|
|
||||||
#include "integer.h"
|
#include "integer.h"
|
||||||
|
|
||||||
|
|
||||||
/* Status of Disk Functions */
|
/* Status of Disk Functions */
|
||||||
typedef BYTE DSTATUS;
|
typedef BYTE DSTATUS;
|
||||||
|
|
||||||
@ -26,15 +38,15 @@ typedef enum {
|
|||||||
/*---------------------------------------*/
|
/*---------------------------------------*/
|
||||||
/* Prototypes for disk control functions */
|
/* Prototypes for disk control functions */
|
||||||
|
|
||||||
BOOL assign_drives (int argc, char *argv[]);
|
|
||||||
DSTATUS disk_initialize (BYTE);
|
DSTATUS disk_initialize (BYTE);
|
||||||
DSTATUS disk_status (BYTE);
|
DSTATUS disk_status (BYTE);
|
||||||
DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);
|
DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);
|
||||||
#if _READONLY == 0
|
#if _READONLY == 0
|
||||||
DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE);
|
DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE);
|
||||||
#endif
|
#endif
|
||||||
|
#if _USE_IOCTL == 1
|
||||||
DRESULT disk_ioctl (BYTE, BYTE, void*);
|
DRESULT disk_ioctl (BYTE, BYTE, void*);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Disk Status Bits (DSTATUS) */
|
/* Disk Status Bits (DSTATUS) */
|
||||||
@ -44,27 +56,10 @@ DRESULT disk_ioctl (BYTE, BYTE, void*);
|
|||||||
#define STA_PROTECT 0x04 /* Write protected */
|
#define STA_PROTECT 0x04 /* Write protected */
|
||||||
|
|
||||||
|
|
||||||
/* Command code for disk_ioctrl() */
|
#if _USE_IOCTL == 1
|
||||||
|
/* Command code for disk_ioctl() */
|
||||||
/* Generic command */
|
#define CTRL_SYNC 0 /* Mandatory for write functions */
|
||||||
#define CTRL_SYNC 0 /* Mandatory for write functions */
|
#endif
|
||||||
#define GET_SECTOR_COUNT 1 /* Mandatory for only f_mkfs() */
|
|
||||||
#define GET_SECTOR_SIZE 2
|
|
||||||
#define GET_BLOCK_SIZE 3 /* Mandatory for only f_mkfs() */
|
|
||||||
#define CTRL_POWER 4
|
|
||||||
#define CTRL_LOCK 5
|
|
||||||
#define CTRL_EJECT 6
|
|
||||||
/* MMC/SDC command */
|
|
||||||
#define MMC_GET_TYPE 10
|
|
||||||
#define MMC_GET_CSD 11
|
|
||||||
#define MMC_GET_CID 12
|
|
||||||
#define MMC_GET_OCR 13
|
|
||||||
#define MMC_GET_SDSTAT 14
|
|
||||||
/* ATA/CF command */
|
|
||||||
#define ATA_GET_REV 20
|
|
||||||
#define ATA_GET_MODEL 21
|
|
||||||
#define ATA_GET_SN 22
|
|
||||||
|
|
||||||
|
|
||||||
#define _DISKIO
|
#define _DISKIO
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user