sysprog21 / semu

A minimalist RISC-V system emulator capable of running Linux kernel
MIT License
251 stars 47 forks source link

Support PMEM #41

Open jserv opened 9 months ago

jserv commented 9 months ago

The virtio-pmem offers a virtual device that emulates a persistent memory device accessible by bytes. It delivers the disk image to the guest through a memory-mapped view of the file, allowing for direct mapping into the guest's address space if both the guest's operating system and filesystem are DAX compatible. The Linux virtio-pmem driver, activated by the CONFIG_VIRTIO_PMEM, makes pmem devices visible as /dev/pmem0, /dev/pmem1, and so on. These devices can be mounted like any regular block device. The riscv_em project includes support for a pmem-based ramdisk. This setup makes the filesystem accessible as /dev/pmem0, which can be mounted from userspace or designated as the root filesystem. It's important to note that this approach bypasses the initrd or initramdisk mechanisms due to their significant size constraints, which involve unpacking/copying the entire filesystem during boot.

See