Hi Alan, This makes sense, but I guess the SD card must be formatted in advance for the "parse_block_partition" to detect and register the partitions as "/dev/mmcsd0p0" and "/dev/mmcsd0p1"? In my use case I was hoping to have this work on a blank SD card.
I was hoping to format a completely unformatted SD card into two partitions in NuttX (when the first time the system is booted with a fresh SD). I've only seen it done with the forceformat option to nx_mount(), but I think that will always format the entire block device (unless called on the individual partition itself like mmcsd0p0, but then it's chicken before the egg scenario). I don't suppose NuttX has any other formatting API that I'm missing? Thank you for all your help, Matteo On Tue, Oct 29, 2024, 5:46 PM Alan C. Assis <acas...@gmail.com> wrote: > Hi Matteo, > > If the /dev/mmc0pX were created you can format it from the NSH> command > line. > > BR, > > Alan > > On Tue, Oct 29, 2024 at 6:17 PM Matteo Golin <matteo.go...@gmail.com> > wrote: > > > While we try to get that working, this would require that the SD card be > > formatted in advance, right? I would imagine we could possibly pre-format > > two FAT partitions, load both partitions and then re-format one of them > to > > be littlefs (since littlefs formatting from a host computer is > non-trivial > > as far as I'm aware). Since we want 1 littlefs and 1 FAT partition. Does > > NuttX have a better way to format an SD into two partitions via an > internal > > API, similar to how you can call `nx_mount` with "forceformat" to > re-format > > an entire block device? > > > > Thank you so much for your help, > > Matteo > > > > On Tue, Oct 29, 2024 at 12:45 AM Xiang Xiao <xiaoxiang781...@gmail.com> > > wrote: > > > > > On Tue, Oct 29, 2024 at 10:02 AM Jia Lin <jia89...@gmail.com> wrote: > > > > > > > On 2024/10/26 05:27:35 Xiang Xiao wrote: > > > > > have you enable CONFIG_GPT_PARTITION or CONFIG_MBR_PARTITION and > > > > > call parse_block_partition: > > > > > > > > > > > > > > > > > > > https://github.com/apache/nuttx/blob/master/include/nuttx/fs/partition.h#L81 > > > > > to register partitions as block devices again, so you can mount the > > > > > different file systems on these new block devices. > > > > > > > > > > Thanks > > > > > Xiang > > > > > > > > > > On Sat, Oct 26, 2024 at 4:51 AM Matteo Golin <ma...@gmail.com> > > wrote: > > > > > > > > > > > I got my hands on a SPI SD card adapter and managed to try out > > SD/MMC > > > > > > support for it through NuttX on my Pico. FAT file > > > > > > systems worked with no problem, and after a little configuring I > > > > managed > > > > > > to get littlefs going as well. > > > > > > > > > > > > Now I'm wondering if NuttX has support for multiple partitions on > > the > > > > same > > > > > > device; I'm hoping I can take a 32GB micro-SD > > > > > > card and have 16GB be littlefs and 16GB be vfat. I haven't been > > able > > > to > > > > > > find any documentation about this though, and > > > > > > after formatting my SD card to have two vfat partitions I can see > > > that > > > > > > NuttX is only able to mount the first one. > > > > > > > > > > > > I managed briefly to get both partitions on one card by first > > > > formatting > > > > > > the card as littlefs, then using fdisk on my > > > > > > host computer to add a vfat partition starting halfway through > the > > > > card, > > > > > > and then was able to mount both on NuttX as two > > > > > > distinct file systems. Unfortunately after putting files on them, > > > > > > rebooting NuttX and trying to remount, the vfat > > > > > > partition was corrupted. > > > > > > > > > > > > Has anyone managed to get multiple partitions to work? How would > I > > go > > > > > > about it? > > > > > > > > > > > > Matteo > > > > > > > > > > > > > > > > > > > Hello everyone, > > > > > > > > I work with Matteo on CUInspace and am currently trying to get Nuttx > to > > > > recognize two partitions on a SD card. Currently I'm a little > confused > > on > > > > how to use / implement parse_block_partition. I did find a previous > > > thread > > > > on a similar subject ( > > > > https://lists.apache.org/thread/q19rdvst6k687s4v045q362j68r2so1t > > > > <(https://lists.apache.org/thread/q19rdvst6k687s4v045q362j68r2so1t > >), > > > but > > > > I > > > > am a bit lost trying to follow the code, specifically on where would > be > > > the > > > > best place to call parse_block_partition. If anyone has any > experience > > > with > > > > mounting an SD card with multiple partitions any help would be > > > appreciated! > > > > > > > > > > > If the card is inserted physically, you can call parse_block_partition > in > > > board initialization like: > > > > > > > > > https://github.com/apache/nuttx/blob/master/boards/risc-v/mpfs/common/src/mpfs_emmcsd.c#L74 > > > if the card is inserted dynamically, you may need insert the call in > > > automount: > > > https://github.com/apache/nuttx/blob/master/fs/mount/fs_automount.c > > > > > > > > > > > > > Thanks, > > > > Tony > > > > > > > > > >