Skip to content

NXP-Robotics/rpmsgfs-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rpmsgfs-server

rpmsgfs-server is a Rust-based RPMsg File System (RPMsgFS) server designed to run in Linux user space. It implements the RPMsgFS protocol originally introduced in NuttX and is compatible with both NuttX RPMsgFS and Zephyr RPMsgFS implementations. This server is intended to run on the master / host processor in a heterogeneous multi-core system and export a local file system over RPMsg to a remote processor.

This repository provides the server-side component, enabling a remote core (for example running NuttX) to mount and access files that physically reside on the server core.

Features

  • RPMsg-based file system server
  • Written in Rust
  • Designed for heterogeneous SoCs (e.g. Cortex-A ↔ Cortex-M)
  • Compatible with NuttX and Zephyr

Background

RPMsgFS allows a remote core to mount a directory from another core as if it were a local file system.
Typical use cases include:

  • Debugging and inspection of remote file systems
  • Sharing configuration, logs, or runtime data
  • Simplifying multi-core software architectures

On the server side, a process exposes a directory tree via RPMsg. On the client side, an RPMsgFS driver mounts that directory into the local VFS.

This project implements the server side of that architecture.

Requirements

  • Rust toolchain (stable)
  • Linux kernel with RPMsg and RPMsg char device support enabled
  • Tooling to export the RPMsg channel through IOCTL (eg. rpmsgexport)
  • NuttX OS or an RPMsgFS-compatible client on the remote core

Building

Clone the repository and build using Cargo:

git clone https://github.com/NXP-Robotics/rpmsgfs-server.git
cd rpmsgfs-server
cargo build --release

Running

The server is intended to be launched on the CPU responsible for hosting the exported file system.

A typical workflow is:

  1. Start RPMsg infrastructure on both processors
  2. Mount the exported directory on the remote core. An example for NuttX would be:
    mount -t rpmsgfs -o cpu=netcore,fs=/shared /mnt/rpmsg
  3. On the host core, the RPMsg channel need to be exported through IOCTL. An example with rpmsgexport is:
    rpmsgexport /dev/rpmsg_ctrl0 rpmsgfs 1024 1025
  4. Launch rpmsgfs-server on the host:
    ./rpmsgfs-server /dev/rpmsg0

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages