Go to previous topic
Go to next topic
Last Post 21 Mar 2008 09:21 PM by  ecastelo
Compile Bootloader issue
 10 Replies
Author Messages
ecastelo
New Member
New Member
Posts:


--
20 Mar 2008 09:21 AM
    I am trying to compile the bootloader given in post http://tdg.logicpd.com/viewtopic.php?f=29&t=1074 and i get an error.
    The error msg is:
    /opt/freescale/usr/local/gcc-4.1.2.-glibc-2.5-nptl-3/arm-none-linux-gnueabi/arm-none-linux-gnueabi/bin/ld: cannot find -lc

    I'm sure if i have missed some step that is causing this error. I changed the path to CC and LD in the Makefile and i changed the COMMAND_LINE in bootloaderstg2.c.

    Do i even need this bootloader if i am using LogicLoader 2.4?

    Is there someone that can give an updated list of commands needed to compile and get a zImage using LTIB and get the bootloader compiled? I am using LTIB imx31_ads_20071008-rel5b-ltib.iso. I am confused now with all the different ways i can make the image. Can i use this LTIB for Linux kernel 2.6.19.2? This kernel seems to have more instructions on this forum but i can never get the LTIB to compile completely and my errors do not seem to match errors people are facing on this forum. I am not sure when and where to apply the patches and config. If i don't use LTIB and just apply the patches from post http://tdg.logicpd.com/viewtopic.php?f=29&t=1135 to a clean 2.6.19.2 kernel, create the .config in the kernel and then do "make zImage", that seems to work. But i still can't compile the bootloader to test this zImage.

    Any help is appreciated.
    tombrus
    New Member
    New Member
    Posts:


    --
    20 Mar 2008 10:02 AM
    You have to change the LIBGCC line to:
    LIBGCC=/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/arm-none-linux-gnueabi/sysroot/usr/lib
    otherwise it can not find the libraries.

    -Tom
    ecastelo
    New Member
    New Member
    Posts:


    --
    20 Mar 2008 10:11 AM
    Sorry, forgot to mention that, ya i changed the LIBGCC line to what you stated also.

    I can't figure out what the -lc is trying to do.

    Thanks
    tombrus
    New Member
    New Member
    Posts:


    --
    20 Mar 2008 10:25 AM
    No problem. BTW: This is also in the script I just posted. Maybe take a look to save some time. I am curious if you will get the same irq-90 problem...
    ecastelo
    New Member
    New Member
    Posts:


    --
    20 Mar 2008 10:26 AM
    Sorry, i was using the wrong lib. You were right. I was using what the instructions had said "also fix LIBGCC path, which is same as above except ends in
    "lib" instead of "bin" "
    I was not using the sysroot lib

    Thanks

    What about getting a 2.6.22.6 kernel working? I believe i got the 2.6.19.2 working, i am going to test that now, but i cannot get the 2.6.22.6 kernel compiled. Instructions are limited.

    Thanks again
    tombrus
    New Member
    New Member
    Posts:


    --
    20 Mar 2008 10:30 AM
    oh, and the -lc is for adding the library (if I remember well libc.a) but it should be in the lib search path, -l<xxx> is short for lib<xxx>.a, see man ld.

    I get 2.6.22.6 compiled all right (with the script ) but I am stuck on the irq-90 for now. Hope someone will help...
    ecastelo
    New Member
    New Member
    Posts:


    --
    20 Mar 2008 11:23 AM
    After i load the loader and zImage to the board.
    I give the command
    exec 0x800d03a8 -
    The board resets.
    Since i loaded the files to RAM, i lose everything.

    What am i doing wrong here?
    macneibfallon
    New Member
    New Member
    Posts:


    --
    20 Mar 2008 11:51 AM
    ecastelo:

    First, could you post a dump of your terminal window, kinda hard to guess where the problem is.
    Though if i had to guess:

    When you are downloading the zImage to the board make sure you check the it's
    size. Otherwise it hangs.

    ls -al /tftpboot/zImage
    -rwxr-xr-x 1 root wheel 1629660 Mar 27 11:40 /tftpboot/zImage

    load raw 0x81000000 1629660 /tftp/129.148.25.210:/tftpboot/zImage

    zImage file size is different for me most of time after i compile.
    Hope this helps
    Reagrds,
    Blair
    ecastelo
    New Member
    New Member
    Posts:


    --
    20 Mar 2008 12:19 PM
    There is actually nothing to dump.
    I set the size and and location per the instructions. There were no errors loading the files. I typed the exec command and the board resets.

    losh> load raw 0x800d03a8 35386 /tftp/172.16.142.68:/tftpboot/loader
    loading from /tftp/172.16.142.68:/tftpboot/loader:
    loading raw binary to 0x800d03a8 (ram) len 00008a3a:
    ........done
    file loaded
    losh> ls
    R : load 35386
    D : tftp 0
    D : etc 0
    D : dev 0
    losh> load raw 0x81000000 1788596 /tftp/172.16.142.68:/tftpboot/zImage
    loading from /tftp/172.16.142.68:/tftpboot/zImage:
    loading raw binary to 0x81000000 (ram) len 001b4ab4:
    ...............................................................................e
    file loaded
    losh> ls
    R : load 1788596
    D : tftp 0
    D : etc 0
    D : dev 0
    losh> exec 0x800d03a8 -

    *****************************************************************

    LogicLoader

    (c) Copyright 2002-2006, Logic Product Development, Inc.
    All Rights Reserved.
    Version 2.4.0-IMX31_10 0001
    *****************************************************************

    losh> ls
    D : tftp 0
    D : etc 0
    D : dev 0
    losh>


    I am following the instructions from the post: http://tdg.logicpd.com/viewtopic.php?f=29&t=1074

    Thanks
    richard.laborde@logicpd.com
    Basic Member
    Basic Member
    Posts:247


    --
    20 Mar 2008 12:38 PM
    ecastelo-

    The exec - t option is enabled in LoLo 2.4.0.
    Type help exec for examples.

    Thanks
    ecastelo
    New Member
    New Member
    Posts:


    --
    21 Mar 2008 09:21 PM
    The kernel would not boot. It would hang on the USB_CLK line whine uncompressing Linux. Using Linux 2.6.19.2
    So i decided to give another try compiling the 2.6.22.6. Here is where my kernel stops compiling. I apply the patches and run ltib again. I select all the settings ( imx31lite, smsc ...)
    Then it starts to compiles and i get the same error:

    It's long sorry

    + '[' '!' -f config/platform/imx31ads/.config -a -f config/platform/imx31ads/defconfig ']'
    + '[' -n '' ']'
    + '[' -n '' ']'
    + cd config/platform/imx31ads
    + mconf main.lkc
    #
    # using defaults found in .config
    #


    *** End of configuration.
    *** Check the top-level Makefile for additional configuration options.

    + cp .config defconfig.dev

    Processing platform: Freescale IMX31 ADS reference board
    ==========================================================
    using config/platform/imx31ads/.config

    Processing: fake-provides
    ===========================

    Processing: kernel-2.6.22-mx
    ==============================

    Cowardly refusing to clobber existing directory:
    /usr/local/ltib/ltib-imx31ads-20071008/rpm/BUILD/linux-2.6.22
    Remove this by hand if you really want to rebuild this package from scratch

    scbuild/scdeploy already unpacked package

    Processing: kernel-2.6.22-mx
    ==============================
    rpmbuild --dbpath /usr/local/ltib/ltib-imx31ads-20071008/rpmdb --define '_unpackaged_files_terminate_build 0' --define '_target_cpu arm' --define '__strip strip' --define '_topdir /usr/local/ltib/ltib-imx31ads-20071008/rpm' --define '_prefix /usr' --define '_tmppath /usr/local/ltib/ltib-imx31ads-20071008/tmp' --define '_mandir /usr/share/man' --define '_sysconfdir /etc' --define '_localstatedir /var' -bc --short-circuit /usr/local/ltib/ltib-imx31ads-20071008/tmp/kernel-2.6.22-mx.spec
    Executing(%build): /bin/sh -e /usr/local/ltib/ltib-imx31ads-20071008/tmp/rpm-tmp.10740
    + umask 022
    + cd /usr/local/ltib/ltib-imx31ads-20071008/rpm/BUILD
    + cd linux-2.6.22
    + '[' -n linux-2.6.22 ']'
    + rm -f /usr/local/ltib/ltib-imx31ads-20071008/rpm/BUILD/linux
    + ln -s linux-2.6.22 /usr/local/ltib/ltib-imx31ads-20071008/rpm/BUILD/linux
    + KSRC_DIR=/usr/local/ltib/ltib-imx31ads-20071008/rpm/BUILD/linux-2.6.22
    + : arm
    + : /usr/bin/gcc -B/usr/bin//
    + : linux-2.6.22-mx31ads.config
    + : /usr/local/ltib/ltib-imx31ads-20071008/config/platform/imx31ads
    + : /usr/local/ltib/ltib-imx31ads-20071008/rpm/BUILD/linux-2.6.22
    + cd /usr/local/ltib/ltib-imx31ads-20071008/rpm/BUILD/linux-2.6.22
    ++ eval echo
    +++ echo
    + KBOUT=
    + KBOUT=.
    + '[' . '!=' . ']'
    + test -d .
    + case $LINTARCH in
    + KTARG=zImage
    + SYSCFG_KTARG=zImage
    + for CFG in '"$PLATFORM_PATH/${PKG_KERNEL_PRECONFIG}.dev"' '"$PLATFORM_PATH/$PKG_KERNEL_PRECONFIG"' '"$KSRC_DIR/arch/$GNUTARCH/configs/$PKG_KERNEL_PRECONFIG"' '"$KSRC_DIR/arch/$LINTARCH/configs/$PKG_KERNEL_PRECONFIG"' notfound
    + '[' -f /usr/local/ltib/ltib-imx31ads-20071008/config/platform/imx31ads/linux-2.6.22-mx31ads.config.dev ']'
    + cp -f /usr/local/ltib/ltib-imx31ads-20071008/config/platform/imx31ads/linux-2.6.22-mx31ads.config.dev ./.config
    + break
    + '[' '!' -f ./.config ']'
    + grep -q CONFIG_PPC_MERGE=y ./.config
    + '[' -n '' ']'
    + '[' -n y -o -n '' ']'
    + make ARCH=arm CROSS_COMPILE= 'HOSTCC=/usr/bin/gcc -B/usr/bin//' menuconfig
    scripts/kconfig/mconf arch/arm/Kconfig


    *** End of Linux kernel configuration.
    *** Execute 'make' to build the kernel or try 'make help'.

    + cp -f ./.config /usr/local/ltib/ltib-imx31ads-20071008/config/platform/imx31ads/linux-2.6.22-mx31ads.config.dev
    + '[' . '!=' . ']'
    + '[' '%{kernel_series}' = 2.4 ']'
    + make ARCH=arm CROSS_COMPILE= 'HOSTCC=/usr/bin/gcc -B/usr/bin//' zImage
    scripts/kconfig/conf -s arch/arm/Kconfig
    *
    * Restart config...
    *
    *
    * MX3 Options
    *
    Support MX31LITE (logicpd lite kit) platforms (MACH_MX31LITE) [Y/n/?] (NEW) Y
    Support MX31ADS platforms (MACH_MX31ADS) [Y/n/?] y
    Enter Doze mode during idle (MX3_DOZE_DURING_IDLE) [N/y/?] n
    Use SDMA API (MXC_SDMA_API) [Y/n/?] y
    MXC NFC Hardware Version 1 (ARCH_MXC_HAS_NFC_V1) [Y/n/?] y
    MXC NFC Hardware Version 2 (ARCH_MXC_HAS_NFC_V2) [Y/n/?] y
    *
    * Ethernet (10 or 100Mbit)
    *
    Ethernet (10 or 100Mbit) (NET_ETHERNET) [Y/n/?] y
    Generic Media Independent Interface device support (MII) [Y/m/?] y
    3COM cards (NET_VENDOR_3COM) [N/y/?] n
    Western Digital/SMC cards (NET_VENDOR_SMC) [N/y/?] n
    SMC 91C9x/91C1xxx support (SMC91X) [N/m/y/?] n
    SMSC LAN911x/LAN921x families embedded ethernet support (SMSC911X) [N/m/y/?] (NEW) y
    DM9000 support (DM9000) [N/m/y/?] n
    Racal-Interlan (Micom) NI cards (NET_VENDOR_RACAL) [N/y/?] n
    AT1700/1720 support (EXPERIMENTAL) (AT1700) [N/m/y/?] n
    DEPCA, DE10x, DE200, DE201, DE202, DE422 support (DEPCA) [N/m/y/?] n
    HP 10/100VG PCLAN (ISA, EISA, PCI) support (HP100) [N/m/y/?] n
    Other ISA cards (NET_ISA) [N/y/?] n
    EISA, VLB, PCI and on board controllers (NET_PCI) [Y/n/?] y
    Ansel Communications EISA 3200 support (EXPERIMENTAL) (AC3200) [N/m/y/?] n
    Apricot Xen-II on board Ethernet (APRICOT) [N/m/y/?] n
    CS89x0 support (CS89x0) [Y/n/m/?] y
    #
    # configuration written to .config
    #
    CHK include/linux/version.h
    SYMLINK include/asm-arm/arch -> include/asm-arm/arch-mxc
    make[1]: `include/asm-arm/mach-types.h' is up to date.
    CHK include/linux/utsrelease.h
    CALL scripts/checksyscalls.sh
    <stdin>:91:1: warning: "__IGNORE_sync_file_range" redefined
    In file included from <stdin>:2:
    include/asm/unistd.h:444:1: warning: this is the location of the previous definition
    <stdin>:1097:2: warning: #warning syscall fadvise64 not implemented
    <stdin>:1265:2: warning: #warning syscall migrate_pages not implemented
    <stdin>:1321:2: warning: #warning syscall pselect6 not implemented
    <stdin>:1325:2: warning: #warning syscall ppoll not implemented
    <stdin>:1365:2: warning: #warning syscall epoll_pwait not implemented
    CHK include/linux/compile.h
    LD arch/arm/mach-mx3/built-in.o
    arch/arm/mach-mx3/mx31lite.o: In function `board_get_ckih_rate':
    mx31lite.c:(.text+0x10): multiple definition of `board_get_ckih_rate'
    arch/arm/mach-mx3/mx31ads.o:mx31ads.c:(.text+0x10): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `board_get_ckih_rate' changed from 48 in arch/arm/mach-mx3/mx31ads.o to 24 in arch/arm/mach-mx3/mx31lite.o
    arch/arm/mach-mx3/mx31lite.o: In function `get_cpu_wp':
    mx31lite.c:(.text+0x28): multiple definition of `get_cpu_wp'
    arch/arm/mach-mx3/mx31ads.o:mx31ads.c:(.text+0x90): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `get_cpu_wp' changed from 56 in arch/arm/mach-mx3/mx31ads.o to 32 in arch/arm/mach-mx3/mx31lite.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `extuart_intr_setup':
    mx31lite_gpio.c:(.text+0x98): multiple definition of `extuart_intr_setup'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x9c): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_lcd_inactive':
    mx31lite_gpio.c:(.text+0x48): multiple definition of `gpio_lcd_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x10): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_lcd_inactive' changed from 28 in arch/arm/mach-mx3/mx31ads_gpio.o to 16 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_sensor_reset':
    mx31lite_gpio.c:(.text+0x88): multiple definition of `gpio_sensor_reset'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x70): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_sensor_reset' changed from 44 in arch/arm/mach-mx3/mx31ads_gpio.o to 16 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_sdhc_active':
    mx31lite_gpio.c:(.text+0x1b44): multiple definition of `gpio_sdhc_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x1688): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_usbh2_inactive':
    mx31lite_gpio.c:(.text+0x1ca4): multiple definition of `gpio_usbh2_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x1820): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_usbh2_inactive' changed from 360 in arch/arm/mach-mx3/mx31ads_gpio.o to 580 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `sdhc_get_card_det_status':
    mx31lite_gpio.c:(.text+0x24a4): multiple definition of `sdhc_get_card_det_status'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x24c0): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_ata_inactive':
    mx31lite_gpio.c:(.text+0x16dc): multiple definition of `gpio_ata_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x1314): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_ata_inactive' changed from 528 in arch/arm/mach-mx3/mx31ads_gpio.o to 772 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_owire_inactive':
    mx31lite_gpio.c:(.text+0x11d0): multiple definition of `gpio_owire_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0xf14): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_usbh1_active':
    mx31lite_gpio.c:(.text+0x15a4): multiple definition of `gpio_usbh1_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x1db8): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_usbh1_active' changed from 360 in arch/arm/mach-mx3/mx31ads_gpio.o to 312 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_uart_active':
    mx31lite_gpio.c:(.text+0xd88): multiple definition of `gpio_uart_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0xbd8): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_uart_active' changed from 688 in arch/arm/mach-mx3/mx31ads_gpio.o to 568 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_usbh2_active':
    mx31lite_gpio.c:(.text+0x1f20): multiple definition of `gpio_usbh2_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x1ad8): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_usbh2_active' changed from 736 in arch/arm/mach-mx3/mx31ads_gpio.o to 524 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_lcd_active':
    mx31lite_gpio.c:(.text+0x6dc): multiple definition of `gpio_lcd_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x4e0): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_lcd_active' changed from 548 in arch/arm/mach-mx3/mx31ads_gpio.o to 536 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `extuart_intr_cleanup':
    mx31lite_gpio.c:(.text+0xbc): multiple definition of `extuart_intr_cleanup'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0xc0): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_owire_active':
    mx31lite_gpio.c:(.text+0x1ee8): multiple definition of `gpio_owire_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x17e8): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_i2c_active':
    mx31lite_gpio.c:(.text+0xa44): multiple definition of `gpio_i2c_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x7f4): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_spi_inactive':
    mx31lite_gpio.c:(.text+0x38): multiple definition of `gpio_spi_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x0): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_keypad_active':
    mx31lite_gpio.c:(.text+0xc38): multiple definition of `gpio_keypad_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0xa88): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_sdhc_inactive':
    mx31lite_gpio.c:(.text+0x19e0): multiple definition of `gpio_sdhc_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x1524): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_usbh1_inactive':
    mx31lite_gpio.c:(.text+0xd0): multiple definition of `gpio_usbh1_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0xd4): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_sensor_active':
    mx31lite_gpio.c:(.text+0x68): multiple definition of `gpio_sensor_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x37c): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_sensor_active' changed from 356 in arch/arm/mach-mx3/mx31ads_gpio.o to 16 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_spi_active':
    mx31lite_gpio.c:(.text+0x254c): multiple definition of `gpio_spi_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x898): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_spi_active' changed from 320 in arch/arm/mach-mx3/mx31ads_gpio.o to 340 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `config_uartdma_event':
    mx31lite_gpio.c:(.text+0x2460): multiple definition of `config_uartdma_event'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x228c): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `sdhc_init_card_det':
    mx31lite_gpio.c:(.text+0x1188): multiple definition of `sdhc_init_card_det'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0xecc): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `extuart_intr_clear':
    mx31lite_gpio.c:(.text+0xac): multiple definition of `extuart_intr_clear'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0xb0): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_usbotg_fs_inactive':
    mx31lite_gpio.c:(.text+0x280): multiple definition of `gpio_usbotg_fs_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0xf4): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_usbotg_fs_inactive' changed from 16 in arch/arm/mach-mx3/mx31ads_gpio.o to 276 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_pcmcia_inactive':
    mx31lite_gpio.c:(.text+0xe0): multiple definition of `gpio_pcmcia_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x104): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_pcmcia_inactive' changed from 44 in arch/arm/mach-mx3/mx31ads_gpio.o to 416 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_pcmcia_active':
    mx31lite_gpio.c:(.text+0xfe8): multiple definition of `gpio_pcmcia_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0xf38): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_pcmcia_active' changed from 456 in arch/arm/mach-mx3/mx31ads_gpio.o to 416 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_usbotg_hs_inactive':
    mx31lite_gpio.c:(.text+0x11f4): multiple definition of `gpio_usbotg_hs_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0xe4): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_usbotg_hs_inactive' changed from 16 in arch/arm/mach-mx3/mx31ads_gpio.o to 432 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_uart_inactive':
    mx31lite_gpio.c:(.text+0x26a0): multiple definition of `gpio_uart_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x2530): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_uart_inactive' changed from 528 in arch/arm/mach-mx3/mx31ads_gpio.o to 472 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `slcd_gpio_config':
    mx31lite_gpio.c:(.text+0x514): multiple definition of `slcd_gpio_config'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x22d0): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `slcd_gpio_config' changed from 496 in arch/arm/mach-mx3/mx31ads_gpio.o to 456 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_sensor_select':
    mx31lite_gpio.c:(.text+0x58): multiple definition of `gpio_sensor_select'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x2c): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_sensor_select' changed from 68 in arch/arm/mach-mx3/mx31ads_gpio.o to 16 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_ata_active':
    mx31lite_gpio.c:(.text+0x212c): multiple definition of `gpio_ata_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x1f20): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_ata_active' changed from 876 in arch/arm/mach-mx3/mx31ads_gpio.o to 820 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_usbotg_hs_active':
    mx31lite_gpio.c:(.text+0x13a4): multiple definition of `gpio_usbotg_hs_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x1100): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_usbotg_hs_active' changed from 532 in arch/arm/mach-mx3/mx31ads_gpio.o to 512 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_activate_audio_ports':
    mx31lite_gpio.c:(.text+0x8f4): multiple definition of `gpio_activate_audio_ports'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x704): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_usbotg_fs_active':
    mx31lite_gpio.c:(.text+0x394): multiple definition of `gpio_usbotg_fs_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x1e4): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_usbotg_fs_active' changed from 408 in arch/arm/mach-mx3/mx31ads_gpio.o to 384 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_i2c_inactive':
    mx31lite_gpio.c:(.text+0x9a4): multiple definition of `gpio_i2c_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x7b4): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_i2c_inactive' changed from 64 in arch/arm/mach-mx3/mx31ads_gpio.o to 160 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_sensor_inactive':
    mx31lite_gpio.c:(.text+0x78): multiple definition of `gpio_sensor_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x1988): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_sensor_inactive' changed from 336 in arch/arm/mach-mx3/mx31ads_gpio.o to 16 in arch/arm/mach-mx3/mx31lite_gpio.o
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_pmic_active':
    mx31lite_gpio.c:(.text+0x24dc): multiple definition of `gpio_pmic_active'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x24f8): first defined here
    arch/arm/mach-mx3/mx31lite_gpio.o: In function `gpio_keypad_inactive':
    mx31lite_gpio.c:(.text+0xae8): multiple definition of `gpio_keypad_inactive'
    arch/arm/mach-mx3/mx31ads_gpio.o:mx31ads_gpio.c:(.text+0x9d8): first defined here
    arm-none-linux-gnueabi-ld: Warning: size of symbol `gpio_keypad_inactive' changed from 176 in arch/arm/mach-mx3/mx31ads_gpio.o to 336 in arch/arm/mach-mx3/mx31lite_gpio.o
    make[1]: *** [arch/arm/mach-mx3/built-in.o] Error 1
    make: *** [arch/arm/mach-mx3] Error 2
    error: Bad exit status from /usr/local/ltib/ltib-imx31ads-20071008/tmp/rpm-tmp.10740 (%build)


    RPM build errors:
    Bad exit status from /usr/local/ltib/ltib-imx31ads-20071008/tmp/rpm-tmp.10740 (%build)
    Build time for kernel-2.6.22-mx: 469 seconds

    Failed building kernel-2.6.22-mx



    Can anyone help me get past this point.
    Thanks


    ---