It is planned at the end of this quarter, since we have some features and
optimization not finished yet.

On Tue, Nov 12, 2024 at 11:12 PM Alan C. Assis <acas...@gmail.com> wrote:

> Hi Wang Bowen,
>
> Do you have plans to submit and integrate it on the Linux kernel?
>
> I think this way it will be easier for more people start to use RPMSG
> integrated with Linux and NuttX.
>
> BR,
>
> Alan
>
> On Tue, Nov 12, 2024 at 3:27 AM 汪博文 <wangbow...@xiaomi.com.invalid> wrote:
>
> > Hi Andre,
> >
> > The attachment is the rpmsg_release_tx_buffer patch file.
> >
> > And thanks for sharing the solution to the rpmsgfs bug in linux 6.6, this
> > is very helpful for us.
> >
> > Kind regards,
> > Wang Bowen
> >
> > ---- Replied Message ----
> > From Andre Heinemans<andre.heinem...@nxp.com> <undefined>
> > Date 11/8/2024 21:30
> > To 汪博文<wangbow...@xiaomi.com>,
> > <wangbow...@xiaomi.com>dev@nuttx.apache.org<dev@nuttx.apache.org>
> > <dev@nuttx.apache.org>
> > Subject [External Mail]RE: [EXT] Re: RPMsg FS on NuttX and Linux
> > [外部邮件] 此邮件来源于小米公司外部,请谨慎处理。若对邮件安全性存疑,请将邮件转发给mi...@xiaomi.com进行反馈
> >
> > Hi Wang Bowen,
> >
> > Thanks for sending me the updated files.
> >
> > I think I found the problem with the move/rename. When porting to 6.6.23
> I
> > had to adapt the assignment of 'struct renamedata rd' since the struct
> got
> > changed in commit abf0857.
> > Previously I only updated 'rd.old_mnt_userns = &init_user_ns;' to
> > 'rd.old_mnt_idmap = &nop_mnt_idmap;'. The error disappeared when I added
> > 'rd.new_mnt_idmap = &nop_mnt_idmap;' as well.
> > See below our rpmsgfs_rename_handler.
> >
> > Do you also have the file that contain the rpmsg_release_tx_buffer()
> > function? It could not be resolved. I guess rpmsg_core.c.
> >
> > Kind regards,
> > Andre Heinemans
> >
> > static int rpmsgfs_rename_handler(struct rpmsg_device *rpdev,
> > void *data, int len, void *priv, u32 src)
> > {
> > struct rpmsgfs_rename *msg = data;
> > #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 12, 0)
> > struct renamedata rd;
> > #endif
> > struct path oldpath, newpath;
> > struct dentry *newdentry;
> > char *oldname, *newname;
> > int ret, oldlen;
> > oldname = msg->pathname;
> > oldlen  = (strlen(msg->pathname) + 1 + 0x7) & ~0x7;
> > newname = msg->pathname + oldlen;
> > ret = kern_path(oldname, 0, &oldpath);
> > if (ret < 0)
> > goto fail;
> > if (!oldpath.dentry || !oldpath.dentry->d_parent) {
> > ret = -ENOENT;
> > goto fail1;
> > }
> > newdentry = kern_path_locked(newname, &newpath);
> > if (IS_ERR(newdentry)) {
> > ret = PTR_ERR(newdentry);
> > goto fail1;
> > }
> > #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 12, 0)
> > #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0)
> > rd.old_mnt_idmap = &nop_mnt_idmap;
> > rd.new_mnt_idmap = &nop_mnt_idmap;
> > #else
> > rd.old_mnt_userns = &init_user_ns;
> > #endif
> > rd.old_dir = oldpath.dentry->d_parent->d_inode;
> > rd.old_dentry = oldpath.dentry;
> > rd.new_dir = d_inode(newpath.dentry);
> > rd.new_dentry = newdentry;
> > rd.delegated_inode = NULL;
> > rd.flags = 0;
> > ret = vfs_rename(&rd);
> > #else
> > ret = vfs_rename(oldpath.dentry->d_parent->d_inode, oldpath.dentry,
> > d_inode(newpath.dentry), newdentry, NULL, 0);
> > #endif
> > dput(newdentry);
> > inode_unlock(d_inode(newpath.dentry));
> > path_put(&newpath);
> > fail1:
> > path_put(&oldpath);
> > fail:
> > msg->header.result = ret;
> > return rpmsg_send(rpdev->ept, msg, sizeof(*msg));
> > }
> >
> > -----Original Message-----
> > From: 汪博文 <wangbow...@xiaomi.com>
> > Sent: Friday, 8 November 2024 10:11
> > To: dev@nuttx.apache.org; Andre Heinemans <andre.heinem...@nxp.com>
> > Subject: Re: [External Mail]RE: [EXT] Re: RPMsg FS on NuttX and Linux
> >
> > Caution: This is an external email. Please take care when clicking links
> > or opening attachments. When in doubt, report the message using the
> 'Report
> > this email' button
> >
> > Hi Andre,
> >
> > Sorry for late reply.
> > ‍
> > ‍About your questions:
> > 1. Your small fixes in Linux Rpmsg FS is right or not?
> >
> > ‍‍
> > Yes, your fix is right and we will update our internal version.
> > 2. Any updates in our internal rpmsgfs and rpmsgtty?
> >
> > Actually, only some minor updates:
> > ‍
> > - We changed the rpmsg_fs and rpmsg_tty to kernel modules, and I have
> > attached the new rpmsg_fs.c and rpmsg_tty.c in this email, you can check
> > them;
> > -  We also add some kernel version checks in rpmsg_fs and rpmsg_tty to
> make
> > them can work with both kernel v5.10 and v5.15 And no other updates in
> > rpmsg_fs and rpmsg_tty But we are planing to implement the rpmsg_fs
> client
> > in linux (linux mount nuttx file system) and also port these rpmsg
> > services to
> > the linux kernel v6.6.
> > 3. The panic in linux caused by move or rename operation We haven't
> > encountered this problem before, but we can try this case in v6.6 when we
> > porting rpmsg services to the new kernel version.
> >
> > Kind regards,
> > Wang Bowen
> >
> > ---- Replied Message ----
> > From   Andre Heinemans<andre.heinem...@nxp.com> <mailto:undefined>
> >
> > Date   11/8/2024 00:33
> > To     dev@nuttx.apache.org<dev@nuttx.apache.org>,
> > <mailto:dev@nuttx.apache.org> Xiang Xiao<xiaoxiang781...@gmail.com>,
> > <mailto:xiaoxiang781...@gmail.com> Bowen
> > Wang<bowenwa...@gmail.com> <mailto:bowenwa...@gmail.com>
> > Subject        [External Mail]RE: [EXT] Re: RPMsg FS on NuttX and Linux
> > [外部邮件]
> > 此邮件来源于小米公司外部,请谨慎处理。若对邮件安全性存疑,请将
> > 邮件转发给mi...@xiaomi.com进行反馈
> >
> > Hi Wang Bowen, Xiang Xiao,
> >
> > When I want to move a file through rpmsgfs from within nuttx on a
> > filesystem
> > hosted on linux, then I get this linux kernel oops below.
> > I used the rpmsgfs linux implementation provided on this mail thread but
> > ported it to 6.6.23.
> >
> > It looks like every move or rename gives the error. Do you know what
> could
> > cause the problem?
> >
> > Are there maybe any updates of the linux rpmsgfs driver which I could
> try?
> >
> > Kind regards,
> > Andre
> >
> > [  121.160624] Unable to handle kernel paging request at virtual address
> > ffff8003848c38dc [  121.168612] Mem abort info:
> > [  121.171464]   ESR = 0x0000000096000005
> > [  121.175216]   EC = 0x25: DABT (current EL), IL = 32 bits
> > [  121.180568]   SET = 0, FnV = 0
> > [  121.183660]   EA = 0, S1PTW = 0
> > [  121.186801]   FSC = 0x05: level 1 translation fault
> > [  121.191709] Data abort info:
> > [  121.194592]   ISV = 0, ISS = 0x00000005, ISS2 = 0x00000000
> > [  121.200094]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
> > [  121.205172]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
> > [  121.210511] swapper pgtable: 4k pages, 48-bit VAs,
> > pgdp=000000009216d000 [  121.217236] [ffff8003848c38dc]
> > pgd=100000047ffff003, p4d=100000047ffff003, pud=0000000000000000
> > [  121.225975] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
> > [  121.232241] Modules linked in:
> > [  121.235320] CPU: 0 PID: 8 Comm: kworker/0:0 Not tainted 6.6.23-
> > g32082bae40f6 #55 [  121.242735] Hardware name: NXP i.MX95 19X19
> > board (DT) [  121.247885] Workqueue: imx95-cm7 imx_rproc_vq_work
> > [  121.252703] pstate: a0400009 (NzCv daif +PAN -UAO -TCO -DIT -SSBS
> > BTYPE=--) [  121.259678] pc : cmp_map_id+0x4/0x64 [  121.263266] lr :
> > bsearch+0x50/0xb8 [  121.266698] sp : ffff8000825d39e0 [  121.270026]
> > x29: ffff8000825d39e0 x28: ffff0000812c7600 x27: ffff0000824f8900
> > [  121.277176] x26: ffff8000825d3bd8 x25: ffff800080158ae0 x24:
> > ffff8000825d3a5c [  121.284326] x23: ffff800080fffe1c x22:
> > 000000000000000c x21: 00000000404baf90 [  121.291476] x20:
> > ffff8003848c38dc x19: 0000000080975f1f x18: ffff800082e7be28
> > [  121.298626] x17: 00000000672cba83 x16: 0000000000000fdc x15:
> > 0000000000001000 [  121.305793] x14: ffffffffffffffff x13:
> > ffff00008086e029 x12: ffff8000825d3a74 [  121.312943] x11:
> > 000000075b7a4da2 x10: 0000000000000002 x9 : 0000000000000007
> > [  121.320102] x8 : ffff00008874affc x7 : 000000000000000c x6 :
> > 0000000000000001 [  121.327243] x5 : 0000000000000001 x4 :
> > 0000000000000001 x3 : 000000000000000c [  121.334385] x2 :
> > 0000000080975f20 x1 : ffff8003848c38dc x0 : ffff8000825d3a5c
> > [  121.341536] Call trace:
> > [  121.343997]  cmp_map_id+0x4/0x64
> > [  121.347238]  map_id_up+0xe4/0xec
> > [  121.350479]  from_kuid+0x10/0x1c
> > [  121.353712]  from_vfsuid+0x48/0x7c
> > [  121.357135]  vfs_rename+0x43c/0xa14
> > [  121.360627]  rpmsgfs_rename_handler+0xcc/0x148 [  121.365091]
> > rpmsgfs_callback+0x34/0x88 [  121.368930]
> > rpmsg_recv_done+0x114/0x368 [  121.372874]  vring_interrupt+0x74/0x110
> > [  121.376721]  rproc_vq_interrupt+0x3c/0x90 [  121.380751]
> > imx_rproc_notified_idr_cb+0x18/0x28
> > [  121.385397]  idr_for_each+0x68/0xf4
> > [  121.388907]  imx_rproc_vq_work+0x24/0x30 [  121.392850]
> > process_one_work+0x138/0x260 [  121.396880]
> > worker_thread+0x32c/0x438 [  121.400633]  kthread+0x118/0x11c
> > [  121.403883]  ret_from_fork+0x10/0x20 [  121.407506] Code: 12800000
> > 17ffffdd 00000000 39400004 (29400823) [  121.413609] ---[ end trace
> > 0000000000000000 ]---
> >
> >
> >
> > -----Original Message-----
> > From: Andre Heinemans <andre.heinem...@nxp.com>
> > Sent: Friday, 1 November 2024 12:14
> > To: dev@nuttx.apache.org
> > Subject: RE: [EXT] Re: RPMsg FS on NuttX and Linux
> >
> > Caution: This is an external email. Please take care when clicking links
> > or opening
> > attachments. When in doubt, report the message using the 'Report
> > this email'
> > button
> >
> >
> > Hi Wang Bowen, Xiang Xiao
> >
> > The RPMsg fs and tty works wonderful with the linux drivers I received
> > from you.
> > I was wondering if there are any updates on the linux drivers since the
> > NuttX
> > drivers do get updates quite often. It would be great if you could share
> > these
> > updates.
> >
> > On the rpmsg fs driver in linux I made a small fix on the file flags
> > mapping in
> > rpmsgfs_open_handler(). In NuttX the O_RDONLY symbol resolves to
> > bit 0(value
> > 1) but in linux it has the value 0.
> > When you open a file in NuttX with O_RDWR then on linux it would
> > result in
> > opening the file as write-only.
> >
> > Below change fixed it.
> >
> > diff --git a/drivers/rpmsg/rpmsg_fs.c b/drivers/rpmsg/rpmsg_fs.c
> > index
> > 3cd35196f408..f354c6ac5ab4 100755
> > --- a/drivers/rpmsg/rpmsg_fs.c
> > +++ b/drivers/rpmsg/rpmsg_fs.c
> > @@ -283,12 +283,15 @@ static int rpmsgfs_open_handler(struct
> > rpmsg_device
> > *rpdev,
> > struct rpmsgfs *priv = dev_get_drvdata(&rpdev->dev);
> > struct rpmsgfs_open *msg = data;
> > struct file *filp;
> > -       int id, flags = 0;
> > +       int id, flags = O_RDONLY;
> > +
> > +       if (msg->flags & RPMSGFS_O_WRONLY) {
> > +               if (msg->flags & RPMSGFS_O_RDONLY)
> > +                       flags = O_RDWR;
> > +               else
> > +                       flags = O_WRONLY;
> > +       }
> >
> > -       if (msg->flags & RPMSGFS_O_RDONLY)
> > -               flags |= O_RDONLY;
> > -       if (msg->flags & RPMSGFS_O_WRONLY)
> > -               flags |= O_WRONLY;
> > if (msg->flags & RPMSGFS_O_CREAT)
> > flags |= O_CREAT;
> > if (msg->flags & RPMSGFS_O_EXCL)
> >
> >
> > Kind regards,
> > Andre
> >
> >
> >
> > -----Original Message-----
> > From: Bowen Wang <bowenwa...@gmail.com>
> > Sent: Thursday, 27 June 2024 11:26
> > To: dev@nuttx.apache.org
> > Subject: Re: [EXT] Re: RPMsg FS on NuttX and Linux
> >
> > Caution: This is an external email. Please take care when
> > clicking links or opening attachments. When in doubt, report
> > the
> > message using the 'Report this email' button
> >
> > Hi Andre,
> >
> > The attachment is the patch for rpmsgfs, we only implement
> > the rpmsgfs
> > server side in linux for now, rpmsgfs client side in linux is still
> > under development.
> >
> > So we can access the Linux‘s file system in NuttX, but in Linux,
> > we
> > can't mount the Vela's file system.
> >
> >
> > Kind regards,
> >
> > Wang Bowen
> >
> > Andre Heinemans <andre.heinem...@nxp.com
> > <mailto:andre.heinem...@nxp.com> >
> > 于2024年6月27日周四 17:12写道:
> >
> >
> > Hi Bowen,
> >
> > I am using 6.6.3. But it would be okay for me if I receive the
> > patches for version 5.15. I will try to adapt them.
> >
> > Thanks in advance!
> >
> > Kind regards,
> > Andre
> >
> > -----Original Message-----
> > From: Bowen Wang <bowenwa...@gmail.com
> > <mailto:bowenwa...@gmail.com> >
> > Sent: Thursday, 27 June 2024 03:46
> > To: dev@nuttx.apache.org <mailto:dev@nuttx.apache.org>
> > Subject: [EXT] Re: RPMsg FS on NuttX and Linux
> >
> > Caution: This is an external email. Please take care when
> > clicking links or opening attachments. When in doubt, report
> > the
> > message using the 'Report this email' button
> >
> >
> > Hi, Andre
> >
> > Which Linux version are you using?
> > We have adapted RPMSGFS on 5.4 and 5.15. We are not sure
> > if it
> > meets your requirements.
> >
> > Kind regards,
> > Wang Bowen
> >
> > Xiang Xiao <xiaoxiang781...@gmail.com
> > <mailto:xiaoxiang781...@gmail.com> >
> > 于2024年6月25日周二 22:47写道:
> >
> >
> >
> > rpmsg_fs isn't upstreamed to the Linux community
> > yet. Bowen
> >
> >
> > could give
> >
> >
> > you a patch to try.
> >
> > On Tue, Jun 25, 2024 at 8:44 PM Andre Heinemans
> > <andre.heinem...@nxp.com
> >
> >
> > <mailto:andre.heinem...@nxp.com> >
> >
> >
> > wrote:
> >
> >
> >
> > Hi,
> >
> > I am searching for a solution to share a disk or
> > directory on a
> > Linux
> >
> >
> > host
> >
> >
> > and make it accessible in NuttX through
> > RPMsg. It looks like
> > CONFIG_FS_RPMSGFS is the feature I need.
> > According to this
> >
> >
> > NuttX
> >
> >
> > channel video
> >
> >
> >
> >
> > (https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F
> > %2Fwww
> > .youtube.com%2Fwatch%3Fv%3D-
> >
> >
> > YLAQlJR1vA&data=05%7C02%7Candre.heinemans%
> >
> >
> >
> > 40nxp.com%7C6f0b6a9c5414411f9a6f08dcfa6682e9%7C686ea1d3
> > bc2b4c6fa92c
> > d99
> >
> >
> >
> > c5c301635%7C0%7C0%7C638660565421329758%7CUnknown%7
> > CTWFpbGZsb3
> > d8eyJWIjo
> >
> >
> >
> > iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3
> > D%7C0%7C
> > %7C%
> >
> >
> >
> > 7C&sdata=dQFQqYjk0nIFKGjDD%2FM54PHXW54rnZVWyYojrOGCV%
> > 2BY%3D&res
> > erved=0
> >
> >
> >
> > <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F
> > %2Fwww%2F
> > &data=05%7C02%7Candre.heinemans%40nxp.com%7C6f0b6a9c54
> > 14411f9a6f08
> > dcfa6682e9%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%
> > 7C63866056
> > 5421352725%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAw
> > MDAiLCJQIjoiV
> > 2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdat
> > a=8GauYdm
> > OMhqbLro1EWfPIBGftfYLE%2B79%2BDzvvfBqw7E%3D&reserved=0.
> >
> >
> > youtube.com%2Fwatch%3Fv%3D-
> >
> > YLAQlJR1vA&data=05%7C02%7Candre.heinemans%40nxp.com%7C7
> > b20118b
> >
> >
> >
> > 5af34936356e08dc968b5405%7C686ea1d3bc2b4c6fa92cd99c5c30
> > 1635%7C0%
> >
> >
> >
> > 7C0%7C638550772355433038%7CUnknown%7CTWFpbGZsb3d8ey
> > JWIjoiMC4
> >
> > wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7
> > C0%7C%7
> >
> > C%7C&sdata=wNH%2FytC3N7YXDeP8Cff3UZ3JeMbwpFIqaNWeznee
> > oJ0%3D&
> > reserved=0> )  various RPMsg services in Nuttx are supported
> > in Linux
> > including RPMsg FS.
> >
> >
> >
> > So, I tried setting this up but couldn’t find the
> > correct linux
> > module that is able to interact with this
> > service.
> >
> > When I try to mount a directory with
> > nsh> mount -t rpmsgfs -o
> > cpu=netcore,fs=/mnt /mnt
> >
> > Some interaction happens. See linux dmesg
> > log:
> > [   61.086471] virtio_rpmsg_bus virtio0:
> > creating channel
> > rpmsgfs-0x2000c1c8 addr 0x401
> >
> > But it seems no linux driver is listening to that
> > channel. When I
> > try to access the mounted directory in NuttX
> > then nsh freezes.
> >
> > What do I need to do on Linux to support this
> > service? Do I maybe
> > need a patch or a different fork?
> >
> > Kind regards,
> > Andre
> >
> >
> >
> >
> >
> >
> > #/******本邮件及其附件含有小米公司的保密信息,仅限于发送给上面
> > 地址中列出的个人或群组。禁止任何其他人以任何形式使用(包括但不
> > 限于全部或部分地泄露、复制、或散发)本邮件中的信息。如果您错收
> > 了本邮件,请您立即电话或邮件通知发件人并删除本邮件! This e-mail
> > and its attachments contain confidential information from XIAOMI, which
> is
> > intended only for the person or entity whose address is listed above. Any
> > use
> > of the information contained herein in any way (including, but not
> limited
> > to,
> > total or partial disclosure, reproduction, or dissemination) by persons
> > other
> > than the intended recipient(s) is prohibited. If you receive this e-mail
> > in error,
> > please notify the sender by phone or email immediately and delete
> > it!******/#
> >
> >
> #/******本邮件及其附件含有小米公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件!
> > This e-mail and its attachments contain confidential information from
> > XIAOMI, which is intended only for the person or entity whose address is
> > listed above. Any use of the information contained herein in any way
> > (including, but not limited to, total or partial disclosure,
> reproduction,
> > or dissemination) by persons other than the intended recipient(s) is
> > prohibited. If you receive this e-mail in error, please notify the sender
> > by phone or email immediately and delete it!******/#
> >
>

Reply via email to