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.

Porting SysLink to QNX/OMAP-L138 quesitons

Other Parts Discussed in Thread: OMAP-L138

I'm trying to porting SysLink to QNX on OMAP-L138.  I use existing Linux OMAP-L138 source code as an example. A few questions during the porting process.

  • Why there is no addrTable for SYSLINK_PLATFORM_OMAPL1XX under "\ti\syslink\utils\hlos\knl\osal\Linux\OsalDriver.c" ?  Does default addr=0x80000000 and size =0x80000000 work?
  • In "ti/syslink/ipc/hlos/knl/notifyDrivers/arch/OMAPL1XX/Omapl1xxIpcInt.c",  why there is no define for IO_PHYS and IO_SIZE ? How Linux make its build success?
  • Fortune,

    I cannot explain why there is no addrTable definition for OMAPL1XX. Maybe this is an oversight. You can certainly add a define. Make sure to check the memory map for the proper addresses.

    I could not find definitions for IO_PHYS and IO_SIZE either. Try compiling the code for Linux and add the compile flag to save the output of the pre-processor. You might be able to track this down. Remember that you will not finde 'IO_PHYS' in the output of the preprocessor because it will have been replacec by a number, but you can see which files were included.

    There is also a posibility that it was passed in on the command line. Check for this symbol on the compile command.

    ~Ramsey

  • Thanks Ramsey for the clues,  We will look into it.

    Fortune

  • Added the memory map for OMAPL1XX according to the datasheet including DSP L2 RAM, L1P RAM, L1D RAM and DDR .

    For IO_PHYS, that should be 0x1c0,0000 as the base address.   

    One more question,  most of the phisical address need to map to virtual address space using Memory_map(). But Don't know why in \packages\ti\syslink\family\hlos\knl\omapl1xx\omapl1xxdsp\Linux\omapl1xx_phy_shmem.c(101), there is no memory map?  Is there any special reason for that not mappingPost

  • Fortune,

    I don't really know, I can only guess. On Linux, this code runs as a driver (syslink.ko). The symbols IO_PHYS is defined by a Linux header file, so maybe this address has already been mapped into the kernel address space and does not need to be mapped by the SysLink driver.

    As you port this code to QNX, remember that all Linux driver code will need to run in the 'ipc' process. This is a process with root priviledges so that it can access hardware. The rest of the SysLink code will be linked into the application executable.

    ~Ramsey

  • Ramsy,

    IO_PHYS is used in three place. Other two usages use memory map. And one doesn't.   

    Thanks,

    Fuquan