Hi Kuan-Wei,

> Add 9P network filesystem support to U-Boot.
>
> It allows U-Boot to directly mount host directories in virtualization
> environments via virtio.

It would be useful to give an overview in the cover letter how/where
you expect to be used. While new features are always welcome they also
come with a maintenance burden so some background is always useful to
provide more information.

>From a network stack PoV does this work, been tested, with both the
legacy stack and LWIP stack? I would tend to push this towards working
with the LWIP stack as we're moving towards that being the default for
standard U-Boot (not in SPL) and I wouldn't expect 9P to be supported
in SPL.

Peter

> The functionality has been verified on qemu arm64 by successfully
> loading a Linux kernel image and an initramfs image via 9P, and booting
> to the Linux shell.
>
> To test with QEMU:
>   -fsdev local,id=fsdev0,path=/path/to/host/dir,security_model=none \
>   -device virtio-9p-device,fsdev=fsdev0,mount_tag=rootfs
>
> U-Boot usage:
>   => virtio scan
>   => ls 9p rootfs /
>   => ls 9p 0 /
>   => ls 9p - /
>   => load 9p rootfs $kernel_addr_r /Image
>   => load 9p rootfs $ramdisk_addr_r /initramfs.cpio
>   => booti $kernel_addr_r $ramdisk_addr_r:$filesize $fdtcontroladdr
>
> Changes in v2:
> - Introduce DM UCLASS_9P and dm_p9_ops for transport devices.
> - Support selecting devices by mount tag, sequence index, or default.
> - Integrate 9p into disk/part.c and generic VFS null_dev_desc handling.
> - Consistently use 9P2000.L naming across subjects, code, and Kconfig.
> - Add kerneldoc comments and separate filesystem header.
> - Add timeout handling, feature negotiation, and remove callback.
> - Add 9P documentation.
> - Add automated pytest and enable in qemu_arm64_defconfig.
> - Fix error checking, bounds checks, and memory leaks.
>
> Kuan-Wei Chiu (6):
>   net: 9p: Add 9P2000.L protocol support
>   fs: 9p: Add 9P filesystem support
>   virtio: 9p: Add 9P transport driver
>   doc: 9p: Add 9P filesystem documentation
>   test: 9p: Add test for 9P filesystem
>   MAINTAINERS: Add entry for 9PFS
>
>  MAINTAINERS                    |  11 +
>  configs/qemu_arm64_defconfig   |   3 +
>  disk/part.c                    |  16 ++
>  doc/usage/filesystems/9p.rst   |  55 +++++
>  doc/usage/index.rst            |   1 +
>  drivers/virtio/Kconfig         |   7 +
>  drivers/virtio/Makefile        |   1 +
>  drivers/virtio/virtio-uclass.c |   1 +
>  drivers/virtio/virtio_9p.c     | 119 ++++++++++
>  fs/9p/9p.c                     | 185 +++++++++++++++
>  fs/9p/Kconfig                  |   8 +
>  fs/9p/Makefile                 |   5 +
>  fs/Kconfig                     |   2 +
>  fs/Makefile                    |   1 +
>  fs/fs.c                        |  25 ++
>  include/9p.h                   | 203 ++++++++++++++++
>  include/9pfs.h                 |  60 +++++
>  include/dm/uclass-id.h         |   1 +
>  include/fs.h                   |   1 +
>  include/virtio.h               |  12 +-
>  net/9p/Kconfig                 |   5 +
>  net/9p/Makefile                |   5 +
>  net/9p/client.c                | 408 +++++++++++++++++++++++++++++++++
>  net/Kconfig                    |   2 +
>  net/Makefile                   |   1 +
>  test/py/tests/test_9p.py       |  82 +++++++
>  26 files changed, 1219 insertions(+), 1 deletion(-)
>  create mode 100644 doc/usage/filesystems/9p.rst
>  create mode 100644 drivers/virtio/virtio_9p.c
>  create mode 100644 fs/9p/9p.c
>  create mode 100644 fs/9p/Kconfig
>  create mode 100644 fs/9p/Makefile
>  create mode 100644 include/9p.h
>  create mode 100644 include/9pfs.h
>  create mode 100644 net/9p/Kconfig
>  create mode 100644 net/9p/Makefile
>  create mode 100644 net/9p/client.c
>  create mode 100644 test/py/tests/test_9p.py
>
> --
> 2.55.0.897.gb25b4bd76c-goog
>

Reply via email to