i2c initialization MVME3100

Heinz Junkes junkes at fhi-berlin.mpg.de
Mon Feb 7 13:42:16 UTC 2022


in bsps/powerpc/mvme3100/start/bspstart.c I can find

RTEMS_SYSINIT_ITEM{
  mvme3100_i2c_initialize,
  RTEMS_SYSINIT_BSP_PRE_DRIVERS,
  RTEMS_SYSINIT_ORDER_MIDDLE
);

mvme3100_i2c_initialize calls BSP_i2c_initialize

This can be found in bsps/powerpc/mvme3100/i2c/i2c_init.c
This function calls rtems_libi2c_initialize() from cpukit/libi2c/libi2c.c

and here rtems_io_register_driver gets called:

sc = rtems_io_register_driver (0, &rtems_libi2c_io_ops, &rtems_libi2c_major);

But in cpukit/sapi/src/ioregisterdriver.c

in rtems_io_register_driver () the call of the associated init routine gets postponed to
a later stage because _IO_All_drivers_initializes is not true in this early of bspstart.
so
} else {
  /* The driver will be initialized together with all other drivers
   * in a later stage by _IO_Initialize_all_drivers();
   */
  return RTEMS_SUCCESSFUL;
}

Now in 
bsps/powerpc/mvme3100/i2c/i2c_init.c

the following calls e.g.
 busno=rtems_libi2c_register_bus(
                                             BSP_I2C_BUS0_NAME,
…
must fail?

I hope I have analysed this correctly. I may be wrong, but the output of the mvme3100 looks like this:

Registering mpc8540 i2c bus driver :No such file or directory
Registering /dev/console as minor 0 (==/dev/ttyS0)
ds1375_probe (open): No such file or directory

This happens during initialization in EPICS. The test suite programmes do not produce this output.

In the test programmes, however, the initialisation probably fails because the MAXIMUM_DRIVER is default 4.
e.g. TEST I2C 1

libi2c: Claiming driver slot failed (rtems status code 10)
Initializing I2C library failed

Danke Heinz




More information about the devel mailing list