[PATCH 6/6] fbd : Port to RTEMS

Vijay Kumar Banerjee vijaykumar9597 at gmail.com
Sun Jun 30 19:38:14 UTC 2019


On Mon, Jul 1, 2019 at 12:46 AM Christian Mauderer <list at c-mauderer.de>
wrote:

> On 30/06/2019 19:57, Vijay Kumar Banerjee wrote:
> >
> > On Sun, Jun 30, 2019 at 10:17 PM Christian Mauderer <list at c-mauderer.de
> > <mailto:list at c-mauderer.de>> wrote:
> >
> >     On 30/06/2019 18:29, Vijay Kumar Banerjee wrote:
> >     >     > @@ -366,6 +374,9 @@ driver_t fbd_driver = {
> >     >     >  devclass_t   fbd_devclass;
> >     >     >
> >     >     >  DRIVER_MODULE(fbd, fb, fbd_driver, fbd_devclass, 0, 0);
> >     >     > +#ifdef __rtems__
> >     >     > +DRIVER_MODULE(fbd, am335x_lcd, fbd_driver, fbd_devclass, 0,
> 0);
> >     >
> >     >     Why is this necessary in this case? I don't see a similar
> >     connection in
> >     >     FreeBSD.
> >     >
> >     > the fbd needs to be linked to the am335x_lcd which provides the
> >     fb0 device
> >     > and the fbd needs to attach to fb0.
> >
> >     It seems that this connection (or a similar one) hasn't been there on
> >     FreeBSD. So I wonder why it should be necessary on RTEMS.
> >
> >     Note that the situation is a bit different from the one of the i2c
> bus.
> >     There your driver implemented a base for a bus system. Therefore the
> >     generic bus had been connected to a device specific driver. I'm not
> sure
> >     that's the case here.
> >
> >     It's quite possible that you just have to link the fbd with a line
> like
> >     the following in nexus-devices.h:
> >
> >         SYSINIT_MODULE_REFERENCE(fbd);
> >
> > This is not working :
> > ```
> > fb0: failed to attach fbd device
> > ```
> >
> >     Best regards
> >
> >     Christian
> >
>
> OK. I had a more detailed look: In FreeBSD it's the following connection:
>
> fbd->fb->fb_mod
>
> For some devices (like freescale/imx/imx51_ipuv3_fbd.c) a specialized fb
> is connected to simplebus. So one of the following should work and
> should be most likely more correct:
>
> Either
>
>     SYSINIT_DRIVER_REFERENCE(fbd, fb);
>     SYSINIT_DRIVER_REFERENCE(fb, fb_mod);
>     SYSINIT_MODULE_REFERENCE(fb_mod);
>
> This worked!

> or
>
>     SYSINIT_DRIVER_REFERENCE(fbd, fb);
>     SYSINIT_DRIVER_REFERENCE(fb, simplebus);
>
> For the second one the following line will be necessary in fbd.c
>
>     DRIVER_MODULE(fbd, simplebus, fbd_driver, fbd_devclass, 0, 0);
>
> Can you try whether one of these two works? It's just odd to connect the
> frame buffer device driver to a specialized device instead of the
> general frame buffer where it is connected in FreeBSD. I would expect
> problems later with the current construction.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20190701/59a44afe/attachment-0002.html>


More information about the devel mailing list