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.

PSDK 3.0: Purpose of "independent" LLDs?

I've been looking at the low-level drivers that are supported in the PDK in PSDK 3.0; that is, those found in the subfolders of:

pdk_am57xx_1_0_3\packages\ti\drv

I see that the drivers are built into several libraries. Let's take the i2c driver as an example. In i2c_component.mk, we see that four libraries are actually built for the I2C driver:

i2c_LIB_LIST = i2c i2c_indp i2c_profile i2c_profile_indp

I am interested in the "_indp" libraries, which seem to be built "independent" of a particular target device (SoC). My question is, what is the purpose of building these independent libraries? In what situation would I want to use the independent library instead of the one that is built specifically for my device? For example, my pdk_am57xx_1_0_3\packages\ti\drv\spi\lib folder contains the following subfolders:

a15   <-- independent library
am571x   <-- SoC-specific libraries
c66   <-- independent library
m4   <-- independent library

Is there a situation where I shouldn't use the libraries that are built into the "am571x" subfolder?

Thanks in advance,
Dave

  • The RTOS team have been notified. They will respond here.
  • The only difference between the independent library and the SOC specific library is that the SOC specific library has the <Module>_soc.c file built into the library. In case of I2C driver for the AM571x SOC library,  you will have I2C_soc.c file from pdk_am57xx_1_0_3\packages\ti\drv\i2c\soc\am571x built into the library. The I2C_soc.c file binds driver with hardware attributes on the SOC through an I2C_config structure. This hardware attributes structure is required for using a specific driver on any platform.

    However if users don`t want to use the default configuration provided by TI, they can link to the independent I2C driver and include the customized/modified version of the I2C_soc.c source file in their project, that provides the required SOC specific hardware attributes to use without requiring to rebuild the driver library.

    Regards,
    Rahul

  • Rahul, thank you for explaining this, it makes sense to me now. I think this would be a good thing to add to the wiki somewhere, although I don't know where would be the right place for it. In any case, thanks again, and have a good day. -- Dave
  • I completely agree with your assessment. We are currently working on an Processor SDK RTOS FAQ that will address this usage. this should be available along with the next release of the software.

    Some drivers do have some verbiage on this topic as you can see from UART configuration structure description here but it does directly address the Soc specific libraries as seen in the build of the drivers:
    processors.wiki.ti.com/.../Processor_SDK_RTOS_UART

    Regards,
    Rahul