@@ -1127,30 +1127,34 @@ int fs_fat_mount(const char *mp, kos_blockdev_t *dev_pio, kos_blockdev_t *dev_dm
1127
1127
goto error ;
1128
1128
}
1129
1129
1130
+ uint32_t sect_size = (1 << mnt -> dev -> l_block_size );
1131
+
1130
1132
#ifdef FATFS_USE_DMA_BUF
1131
1133
if (mnt -> dev_dma ) {
1132
- DBG ((DBG_DEBUG , "FATFS: Allocating %d bytes for DMA buffer\n" , mnt -> fs -> csize * _MAX_SS ));
1133
- if (!(mnt -> dmabuf = (uint8_t * )memalign (32 , mnt -> fs -> csize * _MAX_SS ))) {
1134
+ DBG ((DBG_DEBUG , "FATFS: Allocating %d bytes for DMA buffer\n" , mnt -> fs -> csize * sect_size ));
1135
+ if (!(mnt -> dmabuf = (uint8_t * )memalign (32 , mnt -> fs -> csize * sect_size ))) {
1134
1136
dbglog (DBG_ERROR , "FATFS: Out of memory for DMA buffer\n" );
1135
1137
}
1136
1138
else {
1137
1139
DBG ((DBG_DEBUG , "FATFS: Allocated %d bytes for DMA buffer at %p\n" ,
1138
- mnt -> fs -> csize * _MAX_SS , mnt -> dmabuf ));
1140
+ mnt -> fs -> csize * sect_size , mnt -> dmabuf ));
1139
1141
}
1140
1142
}
1141
1143
#endif
1142
1144
1143
1145
FATFS * fs ;
1144
- DWORD fre_clust , fre_sect , tot_sect ;
1146
+ DWORD fre_clust ;
1147
+ uint64_t fre_sect , tot_sect ;
1145
1148
rc = f_getfree (mnt -> dev_path , & fre_clust , & fs );
1146
1149
1147
1150
/* Get total sectors and free sectors */
1148
- tot_sect = ( fs -> n_fatent - 2 ) * fs -> csize ;
1151
+ tot_sect = mnt -> dev -> count_blocks ( mnt -> dev ) ;
1149
1152
fre_sect = fre_clust * fs -> csize ;
1150
1153
1151
1154
if (rc == FR_OK ) {
1152
- dbglog (DBG_DEBUG , "FATFS: %lu KiB total drive space and %lu KiB available.\n" ,
1153
- tot_sect / 2 , fre_sect / 2 );
1155
+ dbglog (DBG_DEBUG , "FATFS: %lu MB total, %lu MB free.\n" ,
1156
+ (uint32_t )((tot_sect * sect_size ) / 1024 / 1024 ),
1157
+ (uint32_t )((fre_sect * sect_size ) / 1024 / 1024 ));
1154
1158
}
1155
1159
1156
1160
DBG ((DBG_DEBUG , "FATFS: FAT start sector: %ld\n" , mnt -> fs -> fatbase ));
0 commit comments