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.

How to build u-boot for DM6467

I'm attempting to build a NOR u-boot for DM6467.  But first, I want to build the existing davinci_dm6467evm u-boot configuration to determine if I can build it and execute it on the DM6467 EVM.  I built it as follows.

1. Install CodeSourcery ARM/GNU G++ Lite compiler (arm-none-linux-gnueabi-).

2. Extract u-boot v2010.03. from http://git.denx.de/?p=u-boot.git;a=summary.

3. "make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm distclean"

4. "make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm davinci_dm6467evm_config"

5. "make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm"

Then I use the serial load utility from DM646x_FlashAndBootUtils_1_50 to load and execute the u-boot.bin in the DDR memory of the DM6467 EVM: "slh_DM646x.exe -load2DDR u-boot.bin".  When u-boot executes, it continually spits out "BOOTME".

When I load a known working u-boot using the same slh utility, it runs as follows:

        Target: U-Boot 1.2.0 (May 20 2009 - 01:04:07)
        Target: I2C:   ready
        Target: DRAM:  256 MB
        Target: unknown vendor=0 Flash:  0 kB
        Target: NAND:  NAND device: Manufacturer ID: 0x20, Chip ID: 0xf1 (ST Micro NAND 128MiB 3,3V 8-bit)
        Target: 128 MiB (and so on...) 

Any help is greatly appreciated.

  •  I grabbed u-boot-1.2.0.tar.gz from DVSDK 1.4 (dvsdk_1_40_02_33/PSP_01_30_00_082/board_utilities) to try that version.  I built the "davinci_dm646x_config" configuration as described above and it executes properly.  However, when I try to change and save environment variables it says it writes them to NAND, but when I reboot I get  "bad CRC". Anyone know why?.

    Now I'm trying to create a NOR u-boot for 6467.  We created a NOR board that plugs into the 6467 EVM and I can successfully erase and flash it.  So, in include/configs/davinci_dm646x.h,  I uncomment the line "CFG_ENV_IS_IN_FLASH 1", which I've been told enables NOR, and rebuild.  When I load to DDR, it continually says BOOTME.  When I flash to NOR and boot from NOR, the UBL executes, but it hangs when jumping to 0x81080000.  Any ideas?

  • Hi Faul,

    1. As far as i know DM6467 EVM doesnot have nor flash, are you using any custom board?
    2. The U-boot from http://git.denx.de/?p=u-boot.git;a=summary doesnot boot up on dm6467 due to strb/ldrb instructions on UART register access leads to system hang.
    3. You can find the working U-boot for DM6467 at http://www.arago-project.org/git/people/?p=hemant/u-boot-dm646x.git;a=shortlog;h=refs/heads/master.

     

  • 1. As mentioned above, we have a NOR board that plugs into the 6467 EVM and I am able to erase and flash it.

    2. Interesting to find out that the git.denx.de u-boot currently does not work for DM6467.

    3. I tried to compile the u-boot DM6467 EVM configuration for the arago project and I get errors in board.c, line 123, 125...: inline function 'coloured__LED_init' cannot be declared weak.

    I was able to get the NOR u-boot ver 1.2.0 to start executing after the UBL runs.  I added #define CONFIG_SKIP_LOWLEVEL_INIT in the flash boot section.  U-boot cannot find the flash, I get "unknown vendor=0 Flash: 0 kb".  When I try to save environment variables, it says "start and/or end address not on sector boundary".  I looked at the #defines for the flash addresses and they look ok as far as I can tell.

  • The u-boot from arago project compiles and boots without any errors for me. Could you please rebase to latest and try?

    Thanks,

     Prakash

  • I downloaded the snapshot from the arago project dated 2010-04-09 ("dm6467t: adjust bootargs according to DM6467t EVM OOB").  I am using CodeSourcery G++ Lite compiler version 4.4.1 (2010q1-202).  I get still get the same errors.

    board.c:123: error: inline function 'coloured_LED_init' cannot be declared weak
    board.c:125: error: inline function 'red_LED_on' cannot be declared weak
    board.c:127: error: inline function 'red_LED_off' cannot be declared weak
    board.c:129: error: inline function 'green_LED_on' cannot be declared weak
    board.c:131: error: inline function 'green_LED_off' cannot be declared weak
    board.c:133: error: inline function 'yellow_LED_on' cannot be declared weak
    board.c:135: error: inline function 'yellow_LED_off' cannot be declared weak
    board.c:137: error: inline function 'blue_LED_on' cannot be declared weak
    board.c:139: error: inline function 'blue_LED_off' cannot be declared weak

     I am building as follows:

    1. make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm distclean

    2. make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm davinci_dm6467_evm_config

    3. make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm all

    At this point, I will continue to work with u-boot v1.2.0 from the DVSDK (unless the agago project has working NOR flash code).  However, if someone has a suggestion on how to build the arago, I am willing to try it.

  • I downloaded the snapshot from the arago project dated 2010-04-09 ("dm6467t: adjust bootargs according to DM6467t EVM OOB").  I am using CodeSourcery G++ Lite compiler version 4.4.1 (2010q1-202).  I get still get the same errors.

    board.c:123: error: inline function 'coloured_LED_init' cannot be declared weak
    board.c:125: error: inline function 'red_LED_on' cannot be declared weak
    board.c:127: error: inline function 'red_LED_off' cannot be declared weak
    board.c:129: error: inline function 'green_LED_on' cannot be declared weak
    board.c:131: error: inline function 'green_LED_off' cannot be declared weak
    board.c:133: error: inline function 'yellow_LED_on' cannot be declared weak
    board.c:135: error: inline function 'yellow_LED_off' cannot be declared weak
    board.c:137: error: inline function 'blue_LED_on' cannot be declared weak
    board.c:139: error: inline function 'blue_LED_off' cannot be declared weak

     I am building as follows:

    1. make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm distclean

    2. make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm davinci_dm6467_evm_config

    3. make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm all

    At this point, I will continue to work with u-boot v1.2.0 from the DVSDK (unless the agago project has working NOR flash code).  However, if someone has a suggestion on how to build the arago, I am willing to try it.

  • I am using CodeSourcery (Sourcery G++ Lite 2009q1-203) version 4.3.3, Can that be a issue?

    With regards,

    Prakash

  • I verified that the arago u-boot project does indeed build with the older G++ version 4.3.3.  I'll let someone else figure out why it doesn't build with the latest G++.

    I have been successful in configuring and executing a NOR u-boot on the EVM, using version 1.2.0 from the TI DVSDK.  So, I will continue using that one.