Hi Thanassis,

On 08/14/2013 05:25 AM, Thanassis Silis wrote:
Eric,
thank you very much for the answer (I have compiled kernel 3.0.35_1.1.0
by the way, but the code hasn't changed since then).
I do have a question (in my limited kernel knowledge) :)
https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_3.0.35_4.0.0/drivers/i2c/busses/i2c-imx.c#L63

this looks like a module, but as I see in my sabrelite's
/lib/modules/3.0.35-1.1.0+g2dc5560
modules.builtin:92:kernel/drivers/i2c/busses/i2c-imx.ko
it is built in the kernel.

What is the purpose of i2c-imx and how does it relate to imx* boards?

i2c-imx is the device driver for the i2c part on many i.MX
processors, including i.MX6.

Because it's needed for many internal operations, we compile it
into the kernel, instead of as a separately loadable module.

This is a bit of "kernel configuration 101", but when you configure
drivers into the Linux kernel, you can generally choose either
"*" or "M", shown as "y" or "m" in the .config file:
        
https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_3.0.35_4.0.0/arch/arm/configs/nitrogen6x_defconfig#L144

When you choose '*' or 'y', the driver is included in the
kernel itself (uImage on our normal usage).

If you choose 'm', the external .ko file is built.

This is mostly important at startup, since you have to have
a working filesystem and utilities like 'modprobe' or 'insmod'
to load a .ko file.

Regards,


Eric
_______________________________________________
meta-freescale mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/meta-freescale

Reply via email to