[U-Boot] i2c support for u-boot

Heiko Schocher hs at denx.de
Fri Mar 2 07:32:49 CET 2012


Hello yannick.niane at micromentis.com,

yannick.niane at micromentis.com wrote:
> 
> Hi All,
> I'm trying to build u-boot with i2c support for  a mba2440 board. U-boot version is mba2440-uboot1.1.1. 

you use a very old version of u-boot, you should update to current
version.

> In mba2440.h config file i have selected the i2c commands :

I cannot find such a config file in mainline ...

> #define CONFIG_COMMANDS \
>                         (CONFIG_CMD_DFL         | \
>                         CFG_CMD_CACHE         | \
>                         CFG_CMD_NAND         | \
>                         CFG_CMD_PING         | \
>                         /*CFG_CMD_EEPROM |*/ \
>                         CFG_CMD_I2C         | \
>                         /*CFG_CMD_USB                  |*/ \
>                         CFG_CMD_REGINFO  | \
>                         CFG_CMD_DATE         | \
>                         CFG_CMD_FAT                 | \
>                         CFG_CMD_MMC                 | \
>                         CFG_CMD_NET                 | \
>                         CFG_CMD_ELF)
> 
> I get the following error when trying to build:
> 
> UNDEF_SYM=`arm-linux-objdump -x lib_generic/libgeneric.a board/mba2440/libmba2440.a cpu/arm920t/libarm920t.a lib_arm/libarm.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/sk98lin/libsk98lin.a post/libpost.a post/cpu/libcpu.a common/libcommon.a |sed  -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
>         arm-linux-ld -Bstatic -T /home/developer/Documents/Sensor/CommunicationBoard/Devkit/kraken_bsp/bootloader/mba2440-uboot1.1.1-v2.1_1G/board/mba2440/u-boot.lds -Ttext 0x30F00000          $UNDEF_SYM cpu/arm920t/start.o \
>             --start-group lib_generic/libgeneric.a board/mba2440/libmba2440.a cpu/arm920t/libarm920t.a lib_arm/libarm.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/sk98lin/libsk98lin.a post/libpost.a post/cpu/libcpu.a common/libcommon.a --no-warn-mismatch -L /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3 -lgcc --end-group \
>             -Map u-boot.map -o u-boot
> common/libcommon.a(cmd_i2c.o): dans la fonction << do_i2c_md >>:
> /home/developer/Documents/Sensor/CommunicationBoard/Devkit/kraken_bsp/bootloader/mba2440-uboot1.1.1-v2.1_1G/common/cmd_i2c.c:188: undefined reference to `i2c_read'
> common/libcommon.a(cmd_i2c.o): dans la fonction << do_i2c_mw >>:
> /home/developer/Documents/Sensor/CommunicationBoard/Devkit/kraken_bsp/bootloader/mba2440-uboot1.1.1-v2.1_1G/common/cmd_i2c.c:287: undefined reference to `i2c_write'
> common/libcommon.a(cmd_i2c.o): dans la fonction << do_i2c_crc >>:
> /home/developer/Documents/Sensor/CommunicationBoard/Devkit/kraken_bsp/bootloader/mba2440-uboot1.1.1-v2.1_1G/common/cmd_i2c.c:369: undefined reference to `i2c_read'
> common/libcommon.a(cmd_i2c.o): dans la fonction << mod_i2c_mem >>:
> /home/developer/Documents/Sensor/CommunicationBoard/Devkit/kraken_bsp/bootloader/mba2440-uboot1.1.1-v2.1_1G/common/cmd_i2c.c:458: undefined reference to `i2c_read'
> /home/developer/Documents/Sensor/CommunicationBoard/Devkit/kraken_bsp/bootloader/mba2440-uboot1.1.1-v2.1_1G/common/cmd_i2c.c:507: undefined reference to `i2c_write'
> common/libcommon.a(cmd_i2c.o): dans la fonction << do_i2c_probe >>:
> /home/developer/Documents/Sensor/CommunicationBoard/Devkit/kraken_bsp/bootloader/mba2440-uboot1.1.1-v2.1_1G/common/cmd_i2c.c:550: undefined reference to `i2c_probe'
> common/libcommon.a(cmd_i2c.o): dans la fonction << do_i2c_loop >>:
> /home/developer/Documents/Sensor/CommunicationBoard/Devkit/kraken_bsp/bootloader/mba2440-uboot1.1.1-v2.1_1G/common/cmd_i2c.c:631: undefined reference to `i2c_read'
> common/libcommon.a(exports.o): dans la fonction << jumptable_init >>:
> /home/developer/Documents/Sensor/CommunicationBoard/Devkit/kraken_bsp/bootloader/mba2440-uboot1.1.1-v2.1_1G/common/exports.c:35: undefined reference to `i2c_write'
> /home/developer/Documents/Sensor/CommunicationBoard/Devkit/kraken_bsp/bootloader/mba2440-uboot1.1.1-v2.1_1G/common/exports.c:35: undefined reference to `i2c_read'
> make: *** [u-boot] Erreur 1

As the error message says, some symbols are missing ... if you want to
use i2c, you must enable through a CONFIG option, which i2c driver you
want to use on your hardware. I cannot help you more here, because I
do not know anything about your board.

> I'm new to u-boot programing, am i missing something in the config file?

Yep!

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list