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.

booting problem for DSP on OMAPL138

Other Parts Discussed in Thread: OMAPL138, OMAP-L138, AM1808

Hello, 

I am using calixto sodimm board of OMAPL138.

Here i have two applications 

1) DSP application on CCS4 which gennerates a .ou t file

2) ARM u-boot application which is bin file.

When using only ARM side i load the u-boot in SPI-flash and boot my board and works fine.

Problem arises when i try to start the DSP application. To do this i have followed all the procedure given by TI on this link

processors.wiki.ti.com/index.php/OMAP-L138_Bootloader

Here it says to configure the HOST1CFG and PSC registers, which i have modified in my u-boot source code.

Using the AISgen tool as described in the wiki page i am not able to start the DSP side.

Can someone suggest me the method how to generate AIS bin file for ARM uboot+DSP .out file.

Sanket

  • Hi Sanket ,

    You can compare your source code with our sample source code provided in the same Wiki Link to check the steps.

    Boot images for OMAP-L138 (sample code and boot images)

    http://processors.wiki.ti.com/index.php/Boot_Images_for_OMAP-L138#Booting_DSP_Binaries

    Wake Up the DSP

    Apart from changing the HOST1CFG register to change the DSP reset vector, you need to follow some more steps outlined in the OMAP-L138 Technical reference manual page no 337 SPRUH77A for waking up the DSP by changing the local power sleep controller (LPSC) module control register

    Regards

    Antony

    • --------------------------------------------------------------------------------------------------------
      Please click the Verify Answer button on this post if it answers your question.
      --------------------------------------------------------------------------------------------------------
  • hey Antony,

    I have tried the code previously from the link

    http://processors.wiki.ti.com/index.php/Boot_Images_for_OMAP-L138#Booting_DSP_Binaries

    Since the code given on dsp side for led blink for EVM, i replaced it mine which also does led blink. but it does not work. 

    Again this code is non-os c code on ARM side, but i want to use linux on ARM side and hence i am trying with u-boot.bin file.

    Now as far as LPSC register i have already mentioned that i have configured it in u-boot.

    Here is what i have done correct me i have done something wrong

    1) create u-boot.bin from u-boot source code in linux host PC. In this source code i have enabled the function dspwake which is already available, the function performs the following. this configures HOST1CFG, LPSC etc.

    /* if the device is ARM only, return */

    if ((REG(CHIP_REV_ID_REG) & 0x3f) == 0x10)
    return;

    if (!strcmp(getenv("dspwake"), "no"))
    return;

    /* setup the DSP reset vector */

    REG(HOST1CFG) = 0x11800000;

    dsp_lpsc_on(1, DAVINCI_LPSC_GEM);
    REG(PSC0_MDCTL + (15 * 4)) |= 0x100;

    2) The linker command for dsp code, i have given code start at location 0x11800000

    3) create .out for DSP side using CCS4

    4) Now if i am using AM1808 i use "HexAIS_OMAP-L138" tool along with ini file as configuration for SPI flash. But since i am using OMAPL138 i have two input files 1) converted .out to .bin file using out2rprc & 2)uboot.bin 

    This creats a bin file for spi flash.

    5) after flashing in spi the ARM side gets invoked properly but DSP does not work.

    6) Now TI website mentions a starterware tool which gives a tool AISgen_d800k008 which is GUI tool for combining the DSP & ARM code. I would like to mention that when i create any combined file, using this tool neither the ARM nor the DSP works.

    Please consider that i have tried lot many options for "AISgen_d800k008" tool but this tool is unworkable.

    Again i want to mention i need a option to combine my uboot and DSP code which is .out file. The uboot i can take as original created from LINUX host pc or after using "HexAIS_OMAP-L138" which creates image for SPI flash using ini file as configuration.

    Sanket

  • Hi Sanket,

    You can try out the following option Which I followed and worked for me. I have not used the u-boot from DaVinci PSP but from the bootloder of OMAPL138 Starterware package. This exercise will help us understanding the conversion mechanism (like .out to .bin and .out to ais e.t.c) as well as details on how to setup the entry point of DSP-app on bootloader source code.

    1. Bootloader code

    a. Source Code - from Starterware (OMAPL138_StarterWare_1_10_03_03\bootloader\src)

    b. CCS project files - ..\OMAPL138_StarterWare_1_10_03_03\build\armv5\cgt_ccs\omapl138\evmOMAPL138\bootloader
    c. Modify just the "entryPoint" in bl_main.c which points to the entry point of your DSP APP.
    ( For e.g., entryPoint = 0x80010000; My DSP app entry point is "ENTRY POINT SYMBOL: "_c_int00"  address: 80010000" )
    d. Using CCS, build and generate a "boot.out"
    e. Using AISGEN tool, load the appropriate *.cfg and convert the boot.out into boot.ais
    ( I used "OMAPL138-DSP-LED-NAND-SPI-UART.cfg" from starterware)
     

    2. DSP APP code (I have taken DSP led bink example)

    a. Using CCS, build and generate the .out. Please ensure that the entry point given in the *.map has the same entry point already given in the bootloader source code.

    b. Using out2rprc tool, convert the DSPapp.out into DSPapp.bin.

    Now, you bootloader binary ( boot.out ) will be in AIS format ( boot.ais ) and DSP app ( DSPapp.out ) will be in *.bin (DSPapp.bin) format.

    3. Using sfh utility, give the following ( assuming you know about the neccessary boot switch settings and serial port configuration settings for flashing these two images.). Make sure the flashing is successful.

    >sfh_OMAP-L138.exe -flash boot.ais DSPapp.bin -targetType OMAPL138_LCDK

    4. Change the boot settings and power-on the board. Will observe that the bootloader wakes up ARM, then DSP and jump into the entry point of DSP app.

    In my setup, the size of the boot.ais is 14 KB which gets flashed at 0x0 and the DSP binary gets flashed at 0x10000. My boot loader size doesnot exceed the memory at which the DSP app is flashed.( My 14KB is lessthan 64KB) ( I mean to say that the bootloader and the DSP app doesnot overlapped with each other. When you use the u-boot, please check the size of your u-boot, load address of the DSP app, e.t.c.

    An alternative method of combining the boot.out and DSPapp.out will also work using the AISGEN tool.

    Using AISGEN, load the *.cfg and in the column of "ARM application file" select the first file as bootloader's *.out and using "+" option select the next DSPapp's *.out and convert it  into single AIS image and flash it using sfh.

    >sfh_OMAP-L138.exe -flash_noubl combined.ais -targetType OMAPL138_LCDK

    Usually people who use the u-boot from Davinci PSP will boot linux at the first shot and then communicate with the DSP core via DSP/SYS LINK. or they just use the ARM UBL + DSP app. Would like to know the significance of this combination ( ARM u-boot+DSP app)

    Regards,

    Shankari.

    -------------------------------------------------------------------------------------------------------

    Please click the Verify Answer button on this post if it answers your question.
    --------------------------------------------------------------------------------------------------------