On 12/09/2019 10:28, Vijay Kumar Banerjee wrote: > > > > On Wed, Sep 11, 2019 at 4:38 PM Christian Mauderer > <christian.maude...@embedded-brains.de > <mailto:christian.maude...@embedded-brains.de>> wrote: > > On 11/09/2019 10:48, Vijay Kumar Banerjee wrote: > > > > Hi, > > > > Since adding I2C in BBB initialization seems like the right solution, > > should we ask > > in devel and user lists in a separate thread, to know if anyone is > > opposed to this change? > > Hello Vijay, > > just send a patch. That will start the discussion if someone objects > to it. > > > > > Where should I be looking for to add i2c in BBB initialization? > > Please take a look at the dependencies. If there are any (like clocks or > similar) you have to add it afterwards. > > Take a look at some other BSPs where similar hardware (like I2C, SPI, > some external chips, ...) is initialized. For example the mvme3100 uses > a RTEMS_SYSINIT_ITEM to pick a random sample. But I think most BSPs use > a special init function similar to the one in BBB. > > Hi, > > I tried a very similar approach and added RTEMS_SYSINIT_ITEM > : > ``` > diff --git a/bsps/arm/beagle/start/bspstart.c > b/bsps/arm/beagle/start/bspstart.c > index 224f9ecf3b..35839e774b 100644 > --- a/bsps/arm/beagle/start/bspstart.c > +++ b/bsps/arm/beagle/start/bspstart.c > @@ -17,6 +17,8 @@ > #include <bsp/irq-generic.h> > #include <bsp/fdt.h> > #include <bsp/linker-symbols.h> > +#include <bsp/i2c.h> > +#include <rtems/sysinit.h> > > #include "bspdebug.h" > > @@ -41,3 +43,15 @@ uint32_t bsp_fdt_map_intr(const uint32_t *intr, > size_t icells) > { > return intr[0]; > } > + > +static void bbb_i2c_0_initialize(void) > +{ > + bbb_register_i2c_0(); > +} > + > +RTEMS_SYSINIT_ITEM( > + bbb_i2c_0_initialize, > + RTEMS_SYSINIT_BSP_PRE_DRIVERS, > + RTEMS_SYSINIT_ORDER_MIDDLE > +); > ``` > This is successfully calling the `am335x_i2c_bus_register` but > the issue with this approach is that it's returning the following > internal error after `am335x_i2c_reset` call. > ``` > _Terminate (the_source=the_source@entry=INTERNAL_ERROR_CORE, > the_error=the_error@entry=30) > ``` > > Any hint on what might be the cause of the error?
Just a guess: Are you sure that "BSP_PRE_DRIVERS" is the right order? It's a driver so maybe somewhen during the drivers? Does bbb_i2c_0_initialize has a type that is compatible with the sysinit items? > > Best regards > > Christian > -- -------------------------------------------- embedded brains GmbH Herr Christian Mauderer Dornierstr. 4 D-82178 Puchheim Germany email: christian.maude...@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@rtems.org http://lists.rtems.org/mailman/listinfo/devel