config, _IO_Initialize_all_drivers

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Feb 24 07:11:02 UTC 2022


Hello Heinz,

On 18/02/2022 17:18, Heinz Junkes wrote:
> I'm still trying to get the booting and registering and initialising of the i2c devices on the MVME3100 to work properly.
> 
> In confdefs/iodrivers.h the driver address table is built up and then
> _IO_Initialize_all_drivers() is called without registering the individual devices first.

the device drivers are already registered which means they are contained 
in _IO_Driver_address_table.

> 
> If I now enter in already before in bspstart.c
> 
> RTEMS_SYSINIT_ITEM(
>    mvme3100_i2c_initialize,
>    RTEMS_SYSINIT_BSP_PRE_DRIVERS,
>    RTEMS_SYSINIT_ORDER_MIDDLE
> );
> 
> a device (register it and e.g. got the major number 0) this is ignored by the IO_Initialize_all_drivers().
> 
> Shouldn't initialisation be preceded by registration ( rtems_io_register_driver() )?

There are two ways to register a legacy device driver:

1. Through application configuration options which populate 
_IO_Driver_address_table.

2. Via calls to rtems_io_register_driver().

Device drivers registered when _IO_Initialize_all_drivers() is called 
are initialized. Adding a file system node is the job of the 
initialization entry (done using mknod()).

-- 
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/


More information about the devel mailing list