GSoC Linux UIO driver for PRU
Christian Mauderer
christian.mauderer at embedded-brains.de
Thu Jul 18 08:48:48 UTC 2019
On 18/07/2019 10:30, Nils Hölscher wrote:
> Hi,
>
> Do I need to add an rtems_filesystem_file_handlers_r struct to the pru
> driver to register it or are the cdevsw sufficient?
> Current status of the driver:
> https://github.com/nilhoel1/rtems-pru/blob/pruss-shell/pruss.c#L806
>
> I am still not clear what the differences between these two structs are.
>
> Best,
> Nils
Hello Nils,
maybe there is a misunderstanding here: Vijays driver adds mmap support
to the libbsd devfs. So if you port a driver from FreeBSD via libbsd,
you can use the mmap of that driver (at least if the mmap returns a
pointer without any address translation or similar unsupported stuff).
The driver you just linked creates a RTEMS file system structure
directly. This structure could be used to create a file with
IMFS_make_generic_node directly.
Is there some reason that you try to create your own node instead of
using the already defined ti_pruss_cdevsw structure? With the make_def
in line 630 it should already create a file.
By the way: You create the structure in a
#ifndef __rtems__
but it's a RTEMS type so it maybe should be a
#ifdef __rtems__
instead.
Best regards
Christian
>
> On Wed, 17 Jul 2019 at 11:43, Nils Hölscher <nilhoel1 at gmail.com
> <mailto:nilhoel1 at gmail.com>> wrote:
>
> Hi,
>
> I applied the patch and now all compiles.
> But I haven't tested anything yet, I am currently working on an
> application for testing.
> I will keep in contact concerning the mmap patch.
>
> Best,
> Nils
>
> On Tue, 16 Jul 2019 at 15:47, Christian Mauderer
> <christian.mauderer at embedded-brains.de
> <mailto:christian.mauderer at embedded-brains.de>> wrote:
>
> On 16/07/2019 15:35, Vijay Kumar Banerjee wrote:
> >
> >
> >
> > On Tue, Jul 16, 2019 at 6:57 PM Nils Hölscher
> <nilhoel1 at gmail.com <mailto:nilhoel1 at gmail.com>
> > <mailto:nilhoel1 at gmail.com <mailto:nilhoel1 at gmail.com>>> wrote:
> >
> > Thanks I have been able to resolve this.
> >
> > But I have run into another issue.
> > RTEMS port of the character device switch table doesn't
> support
> > a .d_mmap entry.
> >
> https://github.com/RTEMS/rtems-libbsd/blob/610349693dd31d8b0efd33776516b7187cc5cda2/freebsd/sys/sys/conf.h#L199
> >
> > And I am not certain how the
> > struct rtems_filesystem_file_handlers_r and the
> structs cdevsw are
> > related.
> > The current BSD driver uses two cdevsw structs, one to manage
> > interrupts and one to manage io.
> > Should or can I switch them out?
> >
> > Hi Nils,
> >
> > I have recently worked on a patch to add d_mmap to libbsd. I
> couldn't
> > send it to devel because
> > it could not be tested.
> > Christian, by the time the VT issue is resolved. I would like
> to prepare
> > a separate clean patch
> > for the mmap, what is your suggestion about this?
>
> You create a clean patch only for mmap. Please don't forget to add a
> test case to the libbsd devfs test. Although I would have
> preferred a
> working driver to test it, it should be OK to be added without
> one if
> the devfs test works.
>
> Please send a preview of the patch (without devfs test) to the
> mailing
> list so that Nils can already have a look at it and try it.
>
> Best regards
>
> Christian
>
> >
> > Best,
> > Nils
> >
> > On Tue, 16 Jul 2019 at 13:47, Joel Sherrill
> <joel at rtems.org <mailto:joel at rtems.org>
> > <mailto:joel at rtems.org <mailto:joel at rtems.org>>> wrote:
> >
> >
> >
> > On Tue, Jul 16, 2019, 6:34 AM Nils Hölscher
> <nilhoel1 at gmail.com <mailto:nilhoel1 at gmail.com>
> > <mailto:nilhoel1 at gmail.com
> <mailto:nilhoel1 at gmail.com>>> wrote:
> >
> > Hi,
> >
> > I am currently porting the pruss driver functions,
> that I
> > want to add in:
> > rtems_filesystem_file_handlers_r pruss_irq_handler.
> > But when I add my functions like this:
> > .open_h =ti_pruss_irq_open
> > I receive the following compiler warnings:
> > ../../pruss.c:156:13: warning: initialization from
> > incompatible pointer type
> [-Wincompatible-pointer-types]
> > .open_h = ti_pruss_irq_open,
> > ^~~~~~~~~~~~~~~~~
> > ../../pruss.c:156:13: note: (near initialization for
> > 'pruss_irq_handler.open_h')
> > ../../pruss.c:158:13: warning: initialization from
> > incompatible pointer type
> [-Wincompatible-pointer-types]
> > .read_h = ti_pruss_irq_read,
> >
> > Can anyone help please?
> >
> >
> > This usually means that either the prototype of the
> method has
> > not been seen before it is used or the method
> signature does not
> > match that expected of the indirect method pointer on
> the left
> > hand side. Make sure the signature matches.
> >
> > The full source can be found here:
> >
> https://github.com/nilhoel1/rtems-pru/blob/pruss-shell/pruss.c#L91
> >
> https://github.com/nilhoel1/rtems-pru/blob/pruss-shell/pruss.c#L155
> >
> > Best,
> > Nils
> >
> > On Mon, 15 Jul 2019 at 10:15, Sebastian Huber
> > <sebastian.huber at embedded-brains.de
> <mailto:sebastian.huber at embedded-brains.de>
> > <mailto:sebastian.huber at embedded-brains.de
> <mailto:sebastian.huber at embedded-brains.de>>> wrote:
> >
> > On 15/07/2019 10:10, Nils Hölscher wrote:
> > > Thanks this is very helpful.
> > > But has anyone an existing example of a
> similar driver?
> > > I wasn't able find one in /bsps, maybe I
> didn't search
> > long enough.
> >
> > There are some in cpukit:
> >
> > cpukit/libcsupport/src/consolesimple.c:
> > IMFS_make_generic_node(
> > cpukit/libcsupport/src/termios.c: rv =
> > IMFS_make_generic_node(
> > cpukit/libcsupport/src/consolesimpletask.c:
> > IMFS_make_generic_node(
> > cpukit/include/rtems/imfs.h: * rv =
> > IMFS_make_generic_node(
> > cpukit/include/rtems/imfs.h:extern int
> > IMFS_make_generic_node(
> > cpukit/libfs/src/imfs/imfs_make_generic_node.c:int
> > IMFS_make_generic_node(
> > cpukit/dev/i2c/i2c-bus.c: rv =
> IMFS_make_generic_node(
> > cpukit/dev/i2c/i2c-dev.c: rv =
> IMFS_make_generic_node(
> > cpukit/dev/spi/spi-bus.c: rv =
> IMFS_make_generic_node(
> > cpukit/libblock/src/blkdev-imfs.c: int rv =
> > IMFS_make_generic_node(
> > cpukit/libblock/src/blkdev-imfs.c: rv =
> > IMFS_make_generic_node(
> >
> > --
> > Sebastian Huber, embedded brains GmbH
> >
> > Address : Dornierstr. 4, D-82178 Puchheim, Germany
> > Phone : +49 89 189 47 41-16
> > Fax : +49 89 189 47 41-09
> > E-Mail : sebastian.huber at embedded-brains.de
> <mailto:sebastian.huber at embedded-brains.de>
> > <mailto:sebastian.huber at embedded-brains.de
> <mailto:sebastian.huber at embedded-brains.de>>
> > PGP : Public key available on request.
> >
> > Diese Nachricht ist keine geschäftliche
> Mitteilung im
> > Sinne des EHUG.
> >
> > _______________________________________________
> > devel mailing list
> > devel at rtems.org <mailto:devel at rtems.org>
> <mailto:devel at rtems.org <mailto:devel at rtems.org>>
> > http://lists.rtems.org/mailman/listinfo/devel
> >
> > _______________________________________________
> > devel mailing list
> > devel at rtems.org <mailto:devel at rtems.org>
> <mailto:devel at rtems.org <mailto:devel at rtems.org>>
> > http://lists.rtems.org/mailman/listinfo/devel
> >
> >
> > _______________________________________________
> > devel mailing list
> > devel at rtems.org <mailto:devel at rtems.org>
> > http://lists.rtems.org/mailman/listinfo/devel
> >
>
> --
> --------------------------------------------
> embedded brains GmbH
> Herr Christian Mauderer
> Dornierstr. 4
> D-82178 Puchheim
> Germany
> email: christian.mauderer at embedded-brains.de
> <mailto:christian.mauderer at embedded-brains.de>
> Phone: +49-89-18 94 741 - 18
> Fax: +49-89-18 94 741 - 08
> PGP: Public key available on request.
>
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des
> EHUG.
>
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
--
--------------------------------------------
embedded brains GmbH
Herr Christian Mauderer
Dornierstr. 4
D-82178 Puchheim
Germany
email: christian.mauderer at embedded-brains.de
Phone: +49-89-18 94 741 - 18
Fax: +49-89-18 94 741 - 08
PGP: Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel
mailing list