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.

Running IVA2.2 in uboot standalone program

Other Parts Discussed in Thread: OMAP3530

Hi,

 

I want to run IVA2.2 (C64x+) in OMAP3530 so it execute a code from IRAM. I managed to generate a correct BIN file, but the problem is that the entry point "_c_int00" is at 0x40206060 address and you can write to IVA2_BOOTADDR only address aligned to 4k page size. How to place the _c_int00 function at the beginning of the BIN file (at the beginning of IRAM - 0x40200000)?

It seems that linker doesn't hold the sections order from linker's script, because it puts stack before text section. I use CCS 4.1.

My linker script:

-c
-heap  0x2000
-stack 0x4000


MEMORY
{
 L2ROM       : origin = 0x5C7E0000,  len = 0x00004000
 L2RAM       : origin = 0x5C7F8000,  len = 0x00008000
 //L1PRAM         : origin = 0x00E00000,  len = 0x00008000
 L1PRAM         : origin = 0x5CE00000,  len = 0x00008000
 IRAM        : origin = 0x40200000,  len = 0x0010000      
}


SECTIONS
{
    .cinit      >       IRAM
    .text       >       IRAM
    .data       >       IRAM
    .bss        >       IRAM   
    .stack      >       IRAM   
    .cio        >       IRAM
    .const      >       IRAM
    .switch     >       IRAM
    .sysmem     >       IRAM
    .far        >       IRAM
    .ppdata     >       IRAM
}


My script for hex6x to convert *.out file to *.bin image:

program.out
-map DSP.map
-b
-memwidth 32
-romwidth 32
-image

ROMS
{
    FLASHD : origin = 0x40204000, length = 0x0002400, files = { image.bin }
}

SECTIONS
{
    .cinit, .text, .data, .bss, .stack, .cio, .const, .switch, .sysmem, .far, .ppdata:
}

 

Best regards

Thomas

  • Hi again,

    I found one way to get it working. I change origin of IRAM so ENTRY POINT SYMBOL: "_c_int00" be at an address: 40207000. With this settings I can successfully boot IVA2.2 :) But it's a stupid way to make a proper bin image, because entry point address changes with code. Does anyone know a way to put _c_int00 at the beginning of bin file or a fix address?

    Best regards

    Thomas