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.

OMAP flash and boot utility

Guru 20755 points
Other Parts Discussed in Thread: AM1810, OMAP-L138, OMAP-L137Hello, I am using the flash utility on a custom board using OMAP L-138, and I am trying to erase flash, adding verbose. In the console there is printing that memory initialization done, and memory size is 08000000 , and then erase start "erasing chip" but it stays still on "0%" without any change, there is no other text related to verbose, as should be (there is no text "doing block erase. SENDING" as I see in the EVM board. If the OMAP succeeded in retrieving the memory size and done the initialization of the SPI flash memory, why does there is no progress in the erase block? Regards, Ran
  • If you are using a custom board, have you modified the device_spi.c and device_spi.h to match your board or specific SPI flash? What about the DDR-specific timings in device.c?

    Also what is the output when you try to flash your images using the -flash command?

    Jeff

  • Hello Jeff,

    I see that this files contains only parameters such as :

    const SPI_MEM_ParamsObj DEVICE_SPI_MEM_params =
    {
      SPI_MEM_TYPE_FLASH,
      24,                     // addrWidth
      256,                    // pageSize
      #ifdef AM1810
      4096,                   // sectorSize
      #else
      0,                   // sectorSize
      #endif
      64*1024,                // blockSize
      8*1024*1024             // memorySize          
    };

    I did not find the idcode which is usually used to identify the flash model. On trying to flash u-boot.bin I also get stuck in 0% at the writing phase.

    Regards,

    Ran

  • These numbers are hard-coded so you will have to change and rebuild to match your exact SPI type.

    Also check the DDR memory location (0xC0000000) in CCS to make sure your DDR timings are correct.

    Jeff

  • Hi Jeff, Thanks for the ideas so far. CAn you please add some guidance as to how to rebuild the GNU/sfh_OMAP-L138.exe util after making changes in device_spi.c. I read the instruction in http://processors.wiki.ti.com/index.php/Rebuilding_the_Flash_and_Boot_Utils_Package, but still did not succeed in compiling the changes in common/src/device_spi.c so that they will take effect in GNU/sfh_OMAP-L138.exe util, can you put some light on that ? Also I'd like to understand about the DDR memory location (0xC0000000) , what is the purpose here ? this is the same OMAP as used in the EVM, I did not understand what and where to check this register value, did you mean to check in with the emulator ? Thank you! Ran
  • Are you using Cygwin or Linux? Did you follow the instructions here for the appropriate platform? If you do a 'make clean' and a 'make' do you see any errors, and is the timestamp on the output exe current?

    As for the DDR location, yes I meant check with an emulator to make sure that memory region is accessible.

    Jeff

     

  • Hi Jeff, I've tried it in linux ,is it possible only in windows with cygwin ? Ran
  • No this should work in Linux too. What were the build errors?

    Jeff

  • Hi Jeff,

    I think the device_spi.c you mentioned before, is part of SPIWriter_ARM.out which is run from CCS. What about the sfh_OMAPL-138.exe utility which is run in UART boot mode.
    Are there any guidelines as to the changes that should be made and how to compile them ?

    Regards,

    Ran

  • Dear Jeff:

    I have the same problem running slf_OMAP-L137.exe for custom OMAPL137 board.

    <Serial Port>:Read error !

    <AIS Parse>: I/O Error in read!

    .....

    According forum discussion, it seems host response to fast, omapl137 can't answer in time. So I try to modify the host tool.

    I have add the TEMP, TMP and csc.exe path into .bashrc, modify the device.mak to make omapl137 only. When I run the make, it shows that somethings  can't find, can you teach me how to solve the problem:

    I try to re-build the host tool from cygwin,  but can't successfully yet. My log message is as following:

    make[1]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/AISUtils'
    make[2]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/AISUtils/AISextra'
    make -C src
    make[3]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/AISUtils/AISextra/src'
    make[3]: Nothing to be done for `all'.
    make[3]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/AISUtils/AISextra/src'
    make[2]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/AISUtils/AISextra'
    make[2]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/AISUtils/HexAIS'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/AISUtils/HexAIS'
    make[1]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/AISUtils'
    make[1]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/genecc'
    make[1]: Nothing to be done for `all'.
    make[1]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/genecc'
    make[1]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sfh'
    make -C ../sft all
    make[2]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sft'
    make[3]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sft/build'
    make[3]: Nothing to be done for `all'.
    make[3]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sft/build'
    make[3]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sft/build'
    make[3]: Nothing to be done for `all'.
    make[3]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sft/build'
    make[2]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sft'
    Microsoft (R) Visual C# 2010 編譯器版本 4.0.30319.1
    Copyright (C) Microsoft Corporation. All rights reserved.

    sfh_ais.module(49,17): error CS0234: 命名空間 'System.IO' 中沒有型別或命名空間名稱 'Ports' (您是否遺漏了組件參考?)
    SerialIO.module(41,17): error CS0234: 命名空間 'System.IO' 中沒有型別或命名空間名稱 'Ports' (您是否遺漏了組件參考?)
    sfh_ais.module(195,19): error CS0246: 找不到型別或命名空間名稱 'SerialPort' (您是否遺漏 using 指示詞或組件參考?)
    SerialIO.module(58,70): error CS0246: 找不到型別或命名空間名稱 'SerialPort' (您是否遺漏 using 指示詞或組件參考?)
    SerialIO.module(118,39): error CS0246: 找不到型別或命名空間名稱 'SerialPort' (您是否遺漏 using 指示詞或組件參考?)

    make[1]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sfh'
    make[1]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sft'
    make[2]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sft/build'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sft/build'
    make[2]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sft/build'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sft/build'
    make[1]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/sft'
    make[1]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/slh'
    make[1]: Nothing to be done for `all'.
    make[1]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/slh'
    make[1]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/ubl'
    make[2]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/ubl/build'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/ubl/build'
    make[2]: Entering directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/ubl/build'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/ubl/build'
    make[1]: Leaving directory `/cygdrive/d/CodeCompsoerWorkspace4/OMAP-L137_FlashAndBootUtils_2_20/OMAP-L137/GNU/ubl'

     

     

  • I got the same error:

    AISGen_OMAP-L138.module(48,19): error CS0234: The type or namespace name 'RegularExpressions' does not exist in the namespace
            'System.Text' (are you missing an assembly reference?)

    This provides the inspiration:
    http://blogs.msdn.com/b/csharpfaq/archive/2004/04/29/123028.aspx

    So I patched:
    OMAP-L138_FlashAndBootUtils_2_36\OMAP-L138\GNU\sfh\makefile
    -  @$(DOTNETCOMPILE) /t:exe $(patsubst %,/resource:%,$(SFTIMAGES)) /out:$(EXECUTABLE) /win32icon:$(ICONPATH) $(OBJECTS)
    +  @$(DOTNETCOMPILE) /t:exe /reference:System.dll $(patsubst %,/resource:%,$(SFTIMAGES)) /out:$(EXECUTABLE) /win32icon:$(ICONPATH) $(OBJECTS)
    OMAP-L138_FlashAndBootUtils_2_36\OMAP-L138\GNU\AISUtils\HexAIS\makefile
    -  @$(DOTNETCOMPILE) /t:exe /resource:$(ARM_AISEXTRAIMAGE) /resource:$(DSP_AISEXTRAIMAGE) /out:$(EXECUTABLE) /win32icon:$(ICON) $(LOCALSOURCES) $(OBJECTS)
    +  @$(DOTNETCOMPILE) /t:exe /reference:System.dll /resource:$(ARM_AISEXTRAIMAGE) /resource:$(DSP_AISEXTRAIMAGE) /out:$(EXECUTABLE) /win32icon:$(ICON) $(LOCALSOURCES) $(OBJECTS)
    OMAP-L138_FlashAndBootUtils_2_36\OMAP-L138\GNU\slh\makefile
    -  @$(DOTNETCOMPILE) /t:exe /out:$(EXECUTABLE) /win32icon:$(ICONPATH) $(OBJECTS)
    +  @$(DOTNETCOMPILE) /t:exe /reference:System.dll /out:$(EXECUTABLE) /win32icon:$(ICONPATH) $(OBJECTS)

    I also had to copy back OMAP-L138_FlashAndBootUtils_2_31\OMAP-L138\GNU\AISUtils\HexAIS_OMAP-L138.exe after 'make clean' as it complains about it missing it

    and make completes without error.