PDK/PDK TDA Release Notes

From Texas Instruments Wiki
Jump to: navigation, search
Pdk tda home page.png

PDK TDA Version 01.08.01

Release Notes
20th December 2017

Important Note

This release is for TDA3xx, TDA2Px, TDA2xx, TDA2Ex and TDA2Ex 17x17 platforms.


This release notes provides important information that will assist you in using the PDK software package. This document provides the product information and known issues that are specific to the PDK software package.

New in this Release

  • VPS
    • PDK-2058: Added IOCTL to set DSS DMA configuration
    • PDK-2095: Added DSS M2M IOCTL to control the peak DDR bandwidth
    • PDK-2105: CSC full dynamic range is set as default option in DSS driver
    • PDK-2114: Added APIs to read UB960/964/954/953 status registers and to enable test pattern
  • Radar
    • Following features have been added as a part of the radar AWR1243 ES2.0 device driver:
      • PDK-2091: Monitoring
      • PDK-2092: Run Time Calibration
      • PDK-2093: Dynamic Chirp Configuration
  • PM
    • PDK-2019: Support for TDA2Px SATA PLL has been added as a clock source for video display clocks.
  • Bug Fixes (Refer Fixed in this Release section)

Installation and Usage

Installation and Usage of the PDK package could be found at PDK Software Developer Guide

Upgrade and Compatibility Information

  • PDK-1964: CSL Arch-M4 Interrupt
    • Interrupt vector table for IPUx_0 and IPUx_1 cores are copied at 0x400U and 0x800U location respectively while default initialized vector table is available at 0x0U. This is required to prevent the corruption of vector table entries of one core when code is loaded and run on other core. New linker command sections ipu_0VectorTable and ipu_1VectorTable added to map the vector tables of respective cores to the right memory location. This might result in linker error and hence add these sections in application linker command files.
    • Intc_Init() API will perform this vector table relocation. While doing so it will clear the vector table. So it is expected that this API will be called at the start of the application only once and before calling any interrupt registration.
  • PDK-2104: Changed Device ID of TDA2Px in SBL from 66 to 88 to differentiate between TDA2xx and TDA2Px. If older TDA2Px app image is booted using latest SBL or latest app image is booted using old SBL a message “WARNING: Device Id Does not Match” will be printed on UART console.


This release requires following tools/packages to be installed.

  • Code Composer Studio Version: CCS 5.4, CCS 5.5 or CCS 6
  • XDC Tools Version:
  • BIOS Version:
  • CG Tool (TMS470) Version: 16.9.1.LTS
  • CG Tool (C6000) Version: 7.4.2
  • CG Tool (ARP32) Version: 1.0.7
  • GCC Tool (Linaro) Version: 4.9-2015q3
  • MMWAVE DFP: (Only for AR1xx Radar)
  • MSHIELD DK: 4.5.3 (Only for TDA2xx HS build)

Devices Supported

  • TDA3xx PG1.0, PG2.0
  • TDA2xx PG1.0, PG1.1, PG2.0
  • TDA2Px PG1.0
  • TDA2Ex PG1.0, PG2.0
  • TDA2Ex_17x17 PG1.0

Application Boards Supported

  • Base Board
    • TDA3xx Base EVM
    • TDA2xx Base EVM
    • TDA2Px Base EVM
    • TDA2Ex Base EVM
    • TDA2Ex 17x17 Base EVM
  • Daughter Board
    • LCD board (480P, 720P, 1080P)
    • TDA3xx Multi-deserializer board
    • TDA3xx UB960 EVM
    • TDA3xx RVP board
    • TDA2xx/TDA2Ex/TDA2Px Vision application board
    • TDA2xx/TDA2Ex/TDA2Px Vision application board with Multi-deserializer board
    • TDA2xx/TDA2Ex/TDA2Px JAMR3 application board

What is Supported

  • CSL:
    • Mailbox, Spinlock, EDMA, OCMC, MMU, Timer
    • DCAN, MCAN
    • RTI, CRC, ESM, ADC, DCC, L3FW, L4FW, WDTimer
  • VPS Drivers:
    • VIP Capture
    • VPE M2M
    • DSS Display
    • DSS Capture Writeback
    • DSS M2M Writeback
    • CAL Capture
    • ISS M2M
  • Secondary Bootloader (SBL)
    • SBL Library
    • SBL Utility Library
    • QSPI Flash Library
    • NOR Flash Library
    • SBL Application
  • BSP LLD (GIO/IOM drivers): UART, McSPI, I2C
  • STW LLD: FATLIB, I2C LLD, UART console
  • IPC LITE Library
  • L3/L4 Firewall Library
  • Diagnostics Library


For details on features, refer to PDK_Requirement_to_Test_Traceability_Report.xlsx under <PDK_INSTALL>/docs/traceability folder.

Supported/Validated Examples

For details on supported/validated examples, refer to test report of each platform under <PDK_INSTALL>/docs/test_report/<platform> folder.

Fixed in this Release

Fixed in this Release
ID Headline Module Affected Versions Affected Platforms
PDK-2128 [CSL-FL] CRC calculation with max pattern count fails CSL PDK_TDA_01.07.00, PDK_TDA_01.08.00 (and starterware_01_03_00_09 releases onwards) TDA3xx
PDK-2089 DSP LID ecc is not working CSL PDK_TDA_01.08.00 TDA2Px
PDK-1964 IPC IPU1_1 binary should set different vector table base address CSL PDK_TDA_01.07.00, PDK_TDA_01.08.00 (and all Starterware releases) TDA2xx, TDA2Ex, TDA3xx, TDA2Px
PDK-2076 DisplayDss Example crashed after loading VPS DSS PDK_TDA_01.07.00, PDK_TDA_01.08.00 TDA3xx
PDK-2104 SBL should set different device id for TDA2xx and TDA2Px SBL PDK_TDA_01.08.00 TDA2Px
PDK-2103 CPU reset should be done before doing subsystem reset in SBLLibCPUReset API SBL PDK_TDA_01.07.00, PDK_TDA_01.08.00 (and all Starterware releases) TDA2xx, TDA2Ex, TDA3xx, TDA2Px
PDK-2117 [SBL] sbl_mflash image not working in HS devices SBL PDK_TDA_01.07.00, PDK_TDA_01.08.00 TDA3xx
PDK-2115 [Mflash] Creating SBL on windows not working SBL PDK_TDA_01.07.00, PDK_TDA_01.08.00 TDA3xx
PDK-2087 [MCAN] Three test cases not validated CSL MCAN UT PDK_TDA_01.08.00 TDA3xx, TDA2Px
PDK-2090 [RADAR] Cascade Radar ES2.0 fails with only data from one channel VPS RADAR PDK_TDA_01.08.00 TDA2xx
PDK-2098 [RADAR] Cascade Radar UT Channel 2 and 4 gives wrong data VPS RADAR PDK_TDA_01.08.00 TDA2xx
PDK-2101 [RADAR] The async task can miss events VPS RADAR PDK_TDA_01.08.00 TDA3xx
PDK-2125 Power Management Unit tests should be modified to support TDA2Px Specific IPs and Clocks PM PDK_TDA_01.08.00 TDA2Px
PDK-2127 [TDA2PX] Not able to print DPLL status from PRCM menu PM PDK_TDA_01.08.00 TDA2Px

Known Issues

Known Issues
ID Headline Module Reported in Release Affected Platforms Workaround in this release
PDK-2107 [1/5 times] Black screen seen with HDMI capture using ADV7611 VPS VIP PDK_TDA_01.08.01 TDA2xx, TDA2Ex, TDA2Px Suspected to be ADV EDID programming issue. Restarting the usecase works fine.
PDK-2075 DSS M2M writeback crop not working on TDA3xx VPS DSS M2M driver PDK_TDA_01.08.00 TDA3xx Write the full frame in the WB path. Note: TDA2xx/TDA2Ex/TDA2Px DSS doesn't support cropping in WB path
PDP-1425 DSS M2M: YUV422I 1080P input downscaled to YUV420SP 720P on write-back path not working VPS DSS M2M driver BSP_01.07.03 TDA2xx, TDA2Ex, TDA2Px, TDA3xx Use the scalar in the input pipeline and do 1x scaling in the write-back path
PDP-1402 DSS M2M driver with input pipe from GRPX not working VPS DSS M2M driver BSP_01.07.03 TDA2xx, TDA2Ex, TDA2Px Use video pipeline as video pipeline also supports RGB input format
PDP-935 After POR, HDMI Capture fails on ADV vision app board with laptop HDMI input VPS VIP BSP_01.05.00 TDA2xx, TDA2Ex, TDA2Px, TDA3xx Disconnect and connect the HDMI cable again after power on reset.

Known Limitations

VIP Capture Driver

  • In case of ADV7611 HDMI in capture, first few frames in the first run after power cycle might have artifacts. This is because when the ADV7611 is configured, it programs the internal EDID for 1080p60 and does Hot Plug Assert (HPA). When this happens the video source will read the EDID and reconfigure itself for the new timing. At this time the video might be corrupted.
  • In TDA2xx/TDA2Ex, HDMI capture from SIL9127 is not supported when Multi-serdes board is connected to VISION daughter card. This is because of the I2C address conflict between SIL9127 and the deserializer (This is a board limitation).
  • 24-bit RAW capture - No support in EVM
  • RGB888 input to VIP - No support in EVM
  • Various discrete sync modes except HSYNC/VSYNC mode - No support in EVM
  • In case of dual output streams from same capture source, below limitations applies
    • YUV422SP output should always be stream 0 (first stream)
    • For YUV422I scaled and YUV420SP non-scaled outputs, YUV422I scaled output should always be stream 0 (first stream)
    • Scaled outputs on both the streams are not supported

DSS Display Driver

  • In TDA3xx SD Venc writeback in RGB format could result in extra bytes write, Below is the explaination for the same and the driver configuration parameters to handle this.
    • With the implementation of the errata i873, where venc size is increased by 2 pixels, and fwd pipe position is also shifted by 2 pixels while programming the DSS registers.
    • With following change in input parameter extra bytes will not be written.
      • Driver takes the overlay size as an input parameter. It should be given as 722 (insted of 720) in case of SD Venc writeback for NTSC or PAL format (with 2 extra pixels per line).
        Vps_CaptDssWbParams->inFmt.width = 722;
      • Following are the three options for writeback and the driver config parameters:
        1. Do not scale the image and writeback 722 pixels per line; This will have first 2 blank pixels and 720 actual video pixels. App should allocate buffer for 722 pixels per line.
        Vps_CaptDssWbParams->outStreamInfo[0].outFmt.width = 722;
        Vps_CaptDssWbParams->inCropCfg.cropHeight = 722;
        2. Scale the writeback buffer; 2 blank + 720 actual video pixels scaled to total 720 pixels in written back buffer. App should allocate buffer for 720 pixels per line.
        Vps_CaptDssWbParams->outStreamInfo[0].outFmt.width = 720;
        Vps_CaptDssWbParams->inCropCfg.cropHeight = 722;
        3. Use region based writeback to crop the image from 2 to 722 pixels per line from overlay. App should allocate 720 pixels per line and writeback without any blank pixels.
        Vps_CaptDssWbParams->outStreamInfo[0].outFmt.width = 720;
        Vps_CaptDssWbParams->inCropCfg.cropHeight = 720;
        Vps_CaptDssWbParams->outStreamInfo[0].cropEnable = TRUE;
  • The region based writeback on TDA3xx has few limitation like writing extra bytes or drop in writeback frame rate.
    Please refer the VPS Display Driver UserGuide.

Serial Drivers

  • When UART driver’s configuration is in interrupt mode and when the RX buffer size is bigger than FIFO size and when UART driver receives data of same length as FIFO size, the GIO_read function does not return until it receives next data due to H/W specification as given below. To workaround this limitation, RX FIFO size and RX buffer size needs to configured as same length.
    • As per the UART IP (given in TRM section Time-out Counter), when there is a break in the continuous UART character received, it will timeout so that the driver can read the last bytes out of the UART FIFO when the bytes received is less that the FIFO threshold. In the above case, since the user has given (Receive data size == FIFO threshold), the driver get the FIFO threshold interrupt instead of timeout interrupt. And the driver reads this out of the FIFO before the UART IP times out. Since this is not a timeout, the driver will wait for few more bytes (since RX size is greater than FIFO size) and doesn’t return with timeout.
  • UART single byte transfer is supported in polled/interrupt Mode and not in DMA Mode
  • Junk characters are observed in the UART terminal whenever we do reset on the board. This is present in TDA3xx-EVM only.

ISS Driver

OV10640 Sensor Drivers
  • On some TDA3xx EVMs, I2C register write for the OV10640 sensor is failing at 400KHz I2C frequency. In this case, change the I2C frequency to 100KHz in gBoardTda3xxI2cInstData[1].busClkKHz in packages/ti/drv/vps/src/boards/src/bsp_boardTda3xx.c file.

diff --git a/packages/ti/drv/vps/src/boards/src/bsp_boardTda3xx.c b/packages/ti/drv/vps/src/boards/src/boarindex
--- a/packages/ti/drv/vps/src/boards/src/bsp_boardTda3xx.c
+++ b/packages/ti/drv/vps/src/boards/src/bsp_boardTda3xx.c
@@ -281,7 +281,7 @@ static Bsp_BoardI2cInstData gBoardTda3xxI2cInstData[] =
        BSP_DEVICE_I2C_INST_ID_1,           /* instId */
        SOC_I2C2_BASE,                      /* baseAddr */
        CSL_INTC_EVENTID_I2CINT2,           /* intNum */
-       400U                                /* busClkKHz */
+       100U                                /* busClkKHz */

  • I2C transaction fails on address 0x33 for some of the OV10640 Parallel sensor. In this case, change the I2C address to 0x31 for the macro BOARD_OV10640_I2C_ADDR_CPI in the file packages/ti/drv/vps/src/boards/src/bsp_boardPriv.h
  • Please refer "User Guide" that came with this release, for EVM modifications required for I2C
Sensor Tuning
  • Tuning the sensor is beyond the scope of this product. An higher level software (such as SDK) will have to tune sensor for the required quality.
  • Quality of the sensor (and/or processing) should not be judged based on the ISS demo applications.

Validation Information

  • This release is validated on TDA2xx, TDA2Ex/TDA2Ex 17x17 and TDA3xx EVM for the above mentioned components

Technical Support and Product Updates

For further information or to report any problems, contact http://e2e.ti.com or http://community.ti.com or http://support.ti.com.