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