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!******/# > > >