From 6a2c180684978ffaeb2553d81fc8b5edc58c78fe Mon Sep 17 00:00:00 2001 From: Hiroshi Doyu Date: Mon, 8 Apr 2019 13:35:40 +0000 Subject: [PATCH] workaround: solo5 reads a single sector 512 bytes --- src/fat_fs.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fat_fs.ml b/src/fat_fs.ml index 160ea12..922fc9e 100644 --- a/src/fat_fs.ml +++ b/src/fat_fs.ml @@ -81,7 +81,8 @@ module Make (B: Mirage_block_lwt.S) = struct else if Cstruct.len buf <= 512 then [ buf ] else Cstruct.sub buf 0 512 :: (split (Cstruct.shift buf 512)) in - let page = alloc 4096 in + B.get_info device >>= fun {sector_size; _} -> + let page = alloc sector_size in let rec loop sector_size = function | [] -> Lwt.return (Ok ()) | (sector, buffer) :: xs -> @@ -94,7 +95,6 @@ module Make (B: Mirage_block_lwt.S) = struct Cstruct.blit page (offset mod sector_size) buffer 0 512; loop sector_size xs in - B.get_info device >>= fun {sector_size; _} -> loop sector_size (List.combine xs (split buf)) >|*= fun () -> Ok buf