This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

make uImage for am335x

Other Parts Discussed in Thread: AM3358, UNIFLASH

Hi everyone,

I am a new on flash a board  and i am now following the document "Sitara Linux AM335x Flash Programming Linux Development"  to get the MLO,u-boot and uImage. but when I execute the commond"make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage", some errors appears:

Kernel: arch/arm/boot/Image is ready
Kernel: arch/arm/boot/zImage is ready
multiple (or no) load addresses:
This is incompatible with uImages
Specify LOADADDR on the commandline to build an uImage
make[1]: *** [arch/arm/boot/uImage] error 1
make: *** [uImage] error 2

How to solver it, i really have no idea about it.

Best Regards,

Jun

  • Hi Jun,

    I will ask the SW team to help on this.

  • Hi Jun,

    Can you share which SDK are you using?
    Please follow the EZSDK Software developers guide: processors.wiki.ti.com/.../Processor_SDK_Linux_Software_Developer%E2%80%99s_Guide

    Basically you need the following steps to build kernel:
    host$ export ACRH=arm
    host$ export PATH=$PATH:/<path to ti-processor-sdk-linux-am335x-evm-01.00.00.00>/linuxdevkit/sysroots/i686-arago-linux/usr/bin
    host$ export CROSS_COMPILE=arm-linux-gnueabihf-
    host$ cd ti-processor-sdk-linux-am335x-evm-01.00.00.00/board-support/linux-3.14.26-g2489c02
    host$ make distclean
    host$ make omap2plus_defconfig
    host$ make -j4

    The above steps will build the zImage. If you specifically need the uImage, you need to execute above steps first and then run:
    host$ make LOADADDR=0x82000000 uImage

    This should be enough to overcome the error you're seeing.

    Best Regards,
    Yordan
  • Hi Yordan,

    Thanks for your reply, I'm using the SDK named "ti-processor-sdk-linux-am335x-evm-01.00.00.00".

    To confirm again: 1. the deconfig commend for am3358 is omap2plus_defconfig ?

                                 2. what '-j4' means?

                                 3. can you explain the address 0x82000000 for me, i didn't know what it means

     P.S: I want to build the flasher image(SPL, U-Boot, uImage) for my board(it has a am3358 CPU) and use UniFlash to flash an Android image into the eMMC on my board.

    Best Regards,

    Jun

  • Jun said:
    1. the deconfig commend for am3358 is omap2plus_defconfig ?

     

    For ti-processor-sdk-linux-am335x-evm-01.00.00.00, which uses kernel 3.14.26 the defconfig is: singlecore-omap2plus_defconfig, see the following guide: http://processors.wiki.ti.com/index.php/Linux_Kernel_Users_Guide 

    Jun said:
       2. what '-j4' means?

     

    The -j4 option is actually dependent on your host architecture. Since my host machine has a quad-core processor, I use -j4: this option splits the build process in 4 & executes the four threads in parallel on the different processor cores. It speeds up the build process a little bit. 

    Jun said:
    3. can you explain the address 0x82000000 for me, i didn't know what it means

     

    This is the address in RAM, where kernel image is loaded & executed. See u-boot/include/configs/ti_armv7_common.h: 

    /*
    * Our DDR memory always starts at 0x80000000 and U-Boot shall have
    * relocated itself to higher in memory by the time this value is used.
    * However, set this to a 32MB offset to allow for easier Linux kernel
    * booting as the default is often used as the kernel load address.
    */
    #define CONFIG_SYS_LOAD_ADDR 0x82000000

    Hope this helps. 

    Best Regards, 
    Yordan