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.

UPP driver in SYSBIOS 6 and ARM

Other Parts Discussed in Thread: SYSBIOS

Hello,

I'm working in a signal processing system and I need to use UPP. I've implemented it using the driver you provide and I have it running in an OMAP L138 with DSPBIOS 5. However we need to implement it in the ARM core instead the DSP one so we need to make it run in SYSBIOS.

Is there any possibility to make uPP driver to run on ARM (to use it with SYSBIOS)?? Are you planning to publish a new version which support SYSBIOS? In short, is there any way to use UPP with high-level functions, without the need of going down to registers level?

Best Regards

  • Dear Marcos Doblado,

    Sorry there is no plan to publish a SYSBIOS version of UPP driver running on ARM. But as you have that driver running on DSPBIOS 5 on DSP, you can port the same on to SYSBIOS for ARM. If you face any issues druing the port, please ping us.

    - Shanmuga

  • Hi Marcos,

     

    The DSP/BIOS and SYS/BIOS both support the IOM driver model.

    Model used by the device is identified by the function table -

            IOM_Fxns for IOM model

            DEV_Fxns for DEV/SIO Model

    BIOS PSP drivers conform to the IOM driver model.

    Porting Driver –

    The drivers are intended to inherit the IOM Driver interfaces. Thus the driver module becomes an object of IOM Driver class.

    To port the driver from DSPBIOS(IOM model) to SYSBIOS(IOM model) following points needs to be considered

    • Inclusion of appropriate header files. (Please refer bios_6_xx_xx_xx\docs\cdoc\ index.html for this)
    • Replace all existing DSPBIOS API’s, Macros, Error codes in driver to SYSBIOS API’s. For example, API’s like

                 BCACHE_wbInv(…) should be replaced by Cache_wbInv(…)
                 QUE_empty(…) should be replaced by Queue_empty(…).., etc

    • Registering interrupts by calling appropriate SYSBIOS API’s

                 ECM_dispatchPlug(…) should be changed to EventCombiner_dispatchPlug(…)

                 ECM_enableEvent(…) to EventCombiner_enableEvent(…), etc

                 For ARM,  Hwi_create(..) , Hwi_enableInterrupt(…) etc, API’s are to be used.

    Porting Application –

    • In BIOS 5.x and BIOS 6.x, creation of driver (for both static and dynamic instances) result in the execution of the mdBindDev function at runtime. Except that, the APIs used/called to create and delete the driver instances are different.
    • In BIOS 6.x a *.cfg file is used for configuring the BIOS and driver options whereas in the BIOS 5.x the “tcf” and “tci” files are used for configuring the options.
    • BIOS IOM drivers have an XXX_init function which needs to be called by the application once per driver. This XXX_init function initializes the driver data structures. The application needs to call this function in the application initialization functions. The functionality and behavior of the functions is the same for both driver models.
    • Both in BIOS 5.x and BIOS 6.x, the application would invoke the driver routines through the GIO API Calls. Difference is that, the SYSBIOS 6.x has some additional API’s. For Ex: GIO_issue(…), GIO_reclaim(…), etc. Please refer the SYS BIOS User guide for more details.

    There is a lot of difference when it comes to porting the application.

    You can simply refer to; one of the BIOS PSP 03.00.01.00 drivers and associated application and port the existing UPP driver. You can simply compare a driver like i2c of PSP 1.30.01(DSPBIOS) with i2c of BIOSPSP 3.00.01(SYSBIOS) release. Accordingly, you can port the driver and write an application.

    Hope this helps

    Best Regards,

    Raghavendra

  • Hello Raghavendra,

    I've already implemented uPP by configuring the needed registers, it has been a hard work but it is very flexible if we finally decide not to use the BIOS.

    Now I'm testing it and it seems to work fine. However, if something goes wrong and could try to port the driver using your indications.,

    Thanks

    Best Regards