aboutsummaryrefslogtreecommitdiffstats
path: root/os/various/fatfs_bindings/fatfs_diskio.c
diff options
context:
space:
mode:
Diffstat (limited to 'os/various/fatfs_bindings/fatfs_diskio.c')
-rw-r--r--os/various/fatfs_bindings/fatfs_diskio.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/os/various/fatfs_bindings/fatfs_diskio.c b/os/various/fatfs_bindings/fatfs_diskio.c
index 06ee81acc..3a8b6866e 100644
--- a/os/various/fatfs_bindings/fatfs_diskio.c
+++ b/os/various/fatfs_bindings/fatfs_diskio.c
@@ -7,7 +7,7 @@
#include "ch.h"
#include "hal.h"
-
+#include "ffconf.h"
#include "diskio.h"
#if HAL_USE_MMC_SPI && HAL_USE_SDC
@@ -207,6 +207,11 @@ DRESULT disk_ioctl (
case GET_SECTOR_SIZE:
*((WORD *)buff) = MMC_SECTOR_SIZE;
return RES_OK;
+#if _USE_ERASE
+ case CTRL_ERASE_SECTOR:
+ mmcErase(&MMCD1, *((DWORD *)buff), *((DWORD *)buff + 1));
+ return RES_OK;
+#endif
default:
return RES_PARERR;
}
@@ -224,6 +229,11 @@ DRESULT disk_ioctl (
case GET_BLOCK_SIZE:
*((DWORD *)buff) = 256; /* 512b blocks in one erase block */
return RES_OK;
+#if _USE_ERASE
+ case CTRL_ERASE_SECTOR:
+ sdcErase(&SDCD1, *((DWORD *)buff), *((DWORD *)buff + 1));
+ return RES_OK;
+#endif
default:
return RES_PARERR;
}