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.

retargeting for new hardware platform - where are the docs?

Other Parts Discussed in Thread: OMAP-L138, OMAPL138

can someone from TI please post a complete list of docs (links) concerning retargeting these drivers for new hardware:

- biospsp

- edma3

- dsplink

- dspbios

and for the sake of others, though I already have these working:

- UBL

- u-boot

- linux kernel

I'm working within the linux dev environment as much as possible (though with the current  OMAP-L138 SDK, I need to build UBL in windows with CCS).

This stuff is scattered all over the place, and often it's just a matter of reading the source, but then the question is, which source, where, and what's the recommended way to create a new platform?

Thanks.

  • Most SW components include this kind of information in the user's guide, installation guide or porting guide. Following are some links I found searching a) the TI processors wiki and b) the omap-l138 SDK v 4.02:

    -biospsp: necessary changes will depend on the specific driver. 

    http://processors.wiki.ti.com/index.php/PSP_Overview

    http://processors.wiki.ti.com/index.php/Using_a_PSP_Driver_in_DSP/BIOS

    I can't find the User's Guide on line but the pdf is under the folder "biospsp_01_30_01/docs/OMAPL138" .  Retargeting information is included for each driver provided in the release.

    - edma3: this is internal to the SoC so changes to the external hardware does not affect this driver. The wiki for edma2 is at http://processors.wiki.ti.com/index.php/EDMA3

    - dsplink: it needs to be rebuilt for a different memory map. Info is available on-line

    http://processors.wiki.ti.com/index.php/Building_DSPLink, http://processors.wiki.ti.com/index.php/Troubleshooting_DSPLink_build_issues

    http://processors.wiki.ti.com/index.php/Changing_DSPLink_Memory_Map, and

    http://processors.wiki.ti.com/index.php/Configuring_DSPLink_Dynamically 

    The installation guide provide similar information.

    - dspbios: if you are using DSP/ BIOS v5, the memory mapping in the TCONF file needs to reflect the actual hardware. Informaiton is in the API reference guide. Tconf files can be edited manually or graphically using CCS. More information on line related to DSP/BIOS and Tconf is at http://processors.wiki.ti.com/index.php/DSP_BIOS_FAQ 

    The following info is just for completeness as it sounds like you are already on top of the UBL/U-Boot/ Linux stuff:

    UBL: this is the second stage bootloader after the device comes out of reset and is TI device specific. Depending on the boot method selected, information that changes are usually the type of flash used and the address. CCS can be used to modify the UBL and to flash them the serial boot and flash loading utility can be used.

    http://processors.wiki.ti.com/index.php/Serial_Boot_and_Flash_Loading_Utility_for_OMAP-L138

    http://processors.wiki.ti.com/index.php/GSG:_Building_Software_Components_for_OMAP-L1/AM1x

    U-Boot/ Linux: TI-related changes relate to what type of flash, address used. Otherwise the details can be exhaustive. We try to put as much as possible the TI-relevant information at these wikis:

    http://processors.wiki.ti.com/index.php/GSG:_OMAP-L138_DVEVM_Additional_Procedures#Flashing_images

    http://processors.wiki.ti.com/index.php/DaVinci_PSP_03.20.00.11_Device_Driver_Features_and_Performance_Guide

    Hope this helps somewhat. Please let us know if there are specific information you are looking for...

     

     

     

     

  • somewhat (and btw, i've already read every one of documents you've linked, and then some), but:

    biospsp:

    http://processors.wiki.ti.com/index.php/Using_a_PSP_Driver_in_DSP/BIOS - addresses DSP-only devices.  Not OMAP-L138 I'm using and not in the linux context.... it's also for a much older (1.10 vs 1.30) version of biospsp, so how much should it be trusted?

    http://processors.wiki.ti.com/index.php/PSP_Overview - has no real actionable information.  According to that doc, I'm interested in how to retarget LLC layer.  One example - the EVM is using a specific audio codec which uses i2s for audio and i2c for setup.  Well, my codec doesn't have i2c...

    The BIOS PSP User Guide has a useful section:

    18.8 Sources that need re-targeting
    18.8.1 ti/pspiom/cslr/soc_OMAPL138.h (soc specific header file):

    This file contains target (SoC) specific definitions. In most cases, changing the values for the SoC specific details done here should suffice. However, if there are major changes in the hardware instance then the driver file may be needed to change. 

    But that's the extent of retargeting information.  And, what they seem to be saying is to edit that file?  But then I can't set any projects to work on the evm or the customHW.  Shouldn't I make a new one and somehow be able to specify it in my builds?  And there's no mention of the ti/pspiom/cslr/evmOMAPL138 directory and how or if that impacts building biospsp... etc...

    It also doesn't mention anywhere how the 'driver file' should change or where this file is? or is it different files for different drivers?

    dpsbios:

    regarding the memory map is this specifically what you are talking about?  http://processors.wiki.ti.com/index.php/DSP_BIOS_FAQ#Q:_Which_BIOS.C2.A0memory_sections_do_you_recommend_to_place_in_internal_memory.3F

    because there's lots of other junk on that page to weed through...

    edma3, dsplink: nice to know that's the extent of changes needed.

    What would be nice would be something more like 'your memory map is X, so you need to change dsplink here, and dspbios here, UBL here, kernel boot params here, and...'   

    UBL:

    http://processors.wiki.ti.com/index.php/Serial_Boot_and_Flash_Loading_Utility_for_OMAP-L138 the command line util for flash loading will not build with the current SDK.  You have to use the CCS version.  And, if you have a different SPI EEPROM you have to change the program to accomodate different block sizes.  

    The other link is a great link for setting up and building, but it doesn't discuss anywhere how to retarget UBL for other hardware or how that should be done.  Some setup can be done within AISgen, other's can't.  There's EVM-specific setup in the stock UBL that maybe has to be edited.  All... undocumented.

    U-Boot:

    The only doc for how to make a new target is stuff over in the mainline u-boot site. And for the OMAP stuff, that's sparse and the source is very difficult, as you get davinci, dm850, and omap nomenclatures at different points.

    Linux:

    There's a whole EVM platform section in the config menu.  How should you make a new one for your new platform?  Currently, it's read the source.  only.  If you enable the EVM platform, there are lots of hardcoded options.  If you disable it, you can't compile.  I'm betting most people hack the EVM config files, but that doesn't help if you need a unified system with multiple platforms using omap, and/or want to still support builds for the EVM.

    Fortunately for linux and u-boot there are other docs out there from other companies that document their retargeting, the concepts transfer and I was able to get those going.