2.2. Release Notes - 09_00_00¶
2.2.1. Introduction¶
This release notes provides important information that will assist you in using the PDK software package for the Jacinto family of devices. This document provides the product information and known issues that are specific to the PDK software package.
New features added / supported is listed below and defects fixed are highlighted in Fixed Issues. Also please check Upgrade and Compatibility for backward compatibility
2.2.2. What’s New¶
ID |
Description |
Module |
Supported Platforms |
---|---|---|---|
PDK-5381 |
R5-SBL - Support to dump EEPROM to shared memory |
SBL |
J721E,J7200,J721S2,J784S4 |
PDK-9656 |
Board: APIs that read from shared memory instead of EEPROM |
BOARD |
J721E,J7200,J721S2,J784S4 |
PDK-11213 |
RTOS SDK shall support HS-FS device |
COMMON |
J721E,J7200,J721S2,J784S4 |
PDK-11504 |
RTOS SDK shall support I2C: EEPROM size of 4 Mbit |
I2C |
J721E,J7200,J721S2,J784S4 |
PDK-11856 |
ARM CLANG 2.0 migration |
COMMON |
J721E,J7200,J721S2,J784S4 |
PDK-11867 |
RTOS SDK Shall support Boot time : SBL loading non-lockstep MCU R5F |
SBL |
J721E,J7200,J721S2,J784S4 |
PDK-11872 |
CSI-Rx RTOS driver shall support Error Detection - Phy, packet, line and frame level |
CSIRX |
J721E,J721S2,J784S4 |
PDK-11880 |
FreeRTOS port shall include a default exception handler to aid in exception debug |
OSAL |
J721E,J7200,J721S2,J784S4 |
PDK-11950 |
70ms CAN + BIST response on GP device |
SBL |
J721E,J7200,J721S2,J784S4 |
PDK-12208 |
Add example program to demonstrate firewall exception notification handling |
SCICLIENT |
J721E,J7200,J721S2,J784S4 |
PDK-12830 |
IPC_ECHO_TESTB shall support with safertos in SPL boot flow on QNX |
IPC |
J721E,J7200,J721S2,J784S4 |
PDK-12831 |
IPC_ECHO_TESTB shall support with safertos in SPL boot flow on Linux |
IPC |
J721E,J7200,J721S2,J784S4 |
PDK-12832 |
PDK shall support eDP to HDMI adapter |
DSS |
J721E,J721S2,J784S4 |
PDK-12874 |
ATF: Shutdown the SOC with PMIC |
PM |
J721E,J7200,J721S2,J784S4 |
PDK-13085 |
FreeRTOS LTS Migration |
OSAL |
J721E,J7200,J721S2,J784S4 |
ETHFW-1175 ETHFW-1191 ETHFW-1254 ETHFW-1309 ETHFW-1312 |
CPSW Enhanced Scheduled Traffic (EST) 802.1Qbv |
ENET |
J721E, J7200, J721S2, J784S4 |
ETHFW-2168 |
Enet: Production-quality PTP stack integration |
ENET |
J721E, J7200, J721S2, J784S4 |
2.2.3. Upgrade and Compatibility¶
2.2.3.1. FreeRTOS¶
OSAL now implements non-recursive version of Mutex. This was done to align with implicit meaning of Mutex, the interface remains unchanged.
2.2.3.2. OSAL¶
QueueP_get
API in the Baremetal OSAL returns NULL when the provided queue is empty.The API earlier returned the queue handle when empty queue handle gets passed.
For SafeRTOS, cache is being enabled in the startup code instead of OS_start(__mpu_init).
Enabling cache in startup code reduces time for .bss initialization.
Application should be updated to use xEnableCache=pdFALSE in OS_start.
SemaphoreP_reset API is removed from OSAL as the underlying FreeRTOS and SafeRTOS kernel do not support the same.
2.2.3.3. OSPI¶
DDR PHY tuning algo is updated to support both full and half cycle lock modes:
phyLockCycle
parameter is provided inOSPI_v0_HwAttrs
for user to configure PHY lock cycle mode.OSPI driver by default uses half clock cycle lock.
User needs to reduce the tuning window ranges to half, when they use full cycle lock mode.
2.2.3.4. TI Arm Clang (R5 Compiler)¶
Updated ti-cgt-arrmllvm(clang) compiler from version 1.3.0 to version 2.3.1
Link Time Optimization feature (-flto) is enabled for release builds
2.3.1 ti-cgt-armllvm compiler exposes errors that were not reported by previous compiler and user needs to fix these to ensure a successful compilation:
If the variable is set but not used then compiler reports an error
Wild cards are not supported in the output section of linker files
For more details, refer TI ARM CLANG Usage and Migration Guidelines
2.2.3.5. Build¶
PDK is updated to remove below warning suppression flags for R5 builds:
-Wno-unused const variable
-Wno-unused variable
-Wno-missing braces
-Wno-macro redefined
-Wno-main-return-type
-Wno-empty-body
-Wno-sometimes-uninitialized
-Wno-absolute-value
-Wno-parentheses-equality
-Wno-inconsistent-missing-override
-Wno-self-assign
-Wno-ignored-attributes
-Wno-pointer-sign
-Wno-ti-macros
-Wno-format-security
2.2.3.6. Sciclient¶
Sciclient has dependency on the board library from this release.
PMIC shutdown feature is implemented by sciclient for which it uses Board_pmPowerOff API which is part of board library.
Applications should be modified to include board dependency to ensure the build
2.2.3.7. Enet¶
New gPTP stack is integrated with Enet LLD, refer to Enet LLD TSN User’s Guide. Previous stack supported in SDK 8.x and earlier releases has been removed.
gPTP stack is supported on mcu2_0 core only.
gPTP stack is supported in FreeRTOS only. No SafeRTOS support.
See Enet TSN Example for further information about gPTP example app.
CPSW EST 802.1Qbv support has been added in this release. Changes in Enet TAS APIs do not have any impact as EST feature was not previuosly supported.
Refer to Enet EST/TAS Support section for further information about EST/TAS implementation for CPSW using Enet LLD. See Enet EST Example for more information about CPSW EST example app.
2.2.4. Device Support¶
J721E SR1.1 and SR 2.0, J721E-HS-SE SR1.1 and SR2.0, J721E-HS-FS SR2.0 (BOARD=j721e_evm)
Associated TIFS versions:
TIFS name
J721E SR revision
tifs.bin
SR1.1 & SR2.0 GP
tifs-sr1.1-hs-enc.bin
SR1.1 HS-SE
tifs_sr2-hs-enc.bin
SR2.0 HS-SE
tifs_sr2-hs-fs-enc.bin
SR2.0 HS-FS
2.2.5. Validation Information¶
For details on the validated examples refer to the platform specific test report available here.
2.2.6. Tool Chain Information¶
Component |
Version |
---|---|
FreeRTOS Kernel |
10.5.1 |
lwIP stack |
2.1.2 |
lwIP-contrib |
2.1.0 |
TI ARM CLANG |
2.3.1.LTS |
GCC ARM code generation tools |
ARCH64 9.2-2019.12 |
CGT XML Processing Scripts |
2.61.00 |
Component |
Version |
---|---|
TI C6x code generation tools |
8.3.7 |
TI C7x code generation tools |
3.1.0.LTS |
2.2.7. Change Request¶
Refer to monthly roadmap slides for changes in the planned features
2.2.8. Fixed Issues¶
ID |
Head Line |
Module |
Affected Versions |
Affected Platforms |
---|---|---|---|---|
DSS: rxBuffer range check missing in DP_mailbox |
DSS |
08.04.00 |
J721E,J721S2,J784S4 |
|
[DSS/eDP]: Busy Waiting in eDP driver causes hang |
DSS |
08.04.00 |
J721E,J721S2,J784S4 |
|
[OSAL]: Mutex implementation uses recursive mutex of FreeRTOS |
OSAL |
08.05.00 |
J721E, J7200, J721S2,J784S4 |
|
[UART]: Driver does not support stop/timeout condition |
UART |
08.05.00 |
J721E, J7200, J721S2,J784S4 |
|
[SafeRTOS] UDMA UT app doesnot work in MMCSD boot |
OSAL |
08.06.00 |
J721E, J7200, J721S2,J784S4 |
|
SemaphoreP_reset does not work with SafeRTOS |
OSAL |
08.06.00 |
J721E, J7200,J721S2,J784S4 |
|
ECAP CSLR register definitions do not match TRM |
CSL |
08.05.00 |
J721E |
|
PDK app takes more time to be loaded on Safertos when compared to Freertos |
OSAL |
08.05.00 |
J721E, J7200, J721S2,J784S4 |
|
[CSITX] vBlank/hBlank values from app are not passed to CSL |
CSI2TX |
08.05.00 |
J721E,J721S2,J784S4 |
|
OSPI PHY Tuning - Finding Rx Min for a given Tx Window |
OSPI |
08.02.00 |
J721E, J7200, J721S2,J784S4 |
|
CSL: OSPI: HW_AUTO_POLL macros are misleading |
CSL, OSPI |
08.06.00 |
J721E, J7200,J721S2,J784S4 |
|
[CSIRX]: YUV422 capture is not working correctly |
CSI2RX |
08.06.00 |
J721E,J721S2,J784S4 |
|
DMA benchmarks for OCM <-> DDR missing in SDK datasheet |
UDMA |
08.06.00 |
J721E, J7200,J721S2,J784S4 |
|
OSPI PHY pipeline mode does not work with NON DMA or NON Cache mode |
OSPI |
08.05.00 |
J721E, J7200,J721S2,J784S4 |
|
[Board]: PLL Init status is overwritten in Board_PLLInitMain() & Board_PLLInitMcu() |
BOARD |
08.06.00 |
J721E, J7200,J721S2,J784S4 |
|
TimerP_getTimeInUsecs() race condition issue |
OSAL |
09.00.00 |
J721E,J7200,J721S2,J784S4 |
|
Correct timeout unit of SemaphoreP_pend() |
OSAL |
09.00.00 |
J721E,J7200,J721S2,J784S4 |
|
PMLIBClkRateSet failed for clock Id = 33 error when run Excelfore gptp |
SCICLIENT |
09.00.00 |
J721E, J7200,J721S2,J784S4 |
|
[FreeRTOS/SafeRTOS] Remove incomplete SemaphoreP_reset implementation from OSAL |
OSAL |
08.06.00 |
J721E,J7200,J721S2,J784S4 |
|
[CSITX] Delete API uses same Semaphore lock resulting in hang |
CSI2TX |
08.06.00 |
J721E,J721S2,J784S4 |
|
[CSITX]: Event UnRegister is not getting called in the delete API |
CSI2TX |
08.06.00 |
J721E,J721S2,J784S4 |
|
SBL combined appimage boot flow diagram missing in SDK |
SBL |
08.06.00 |
J721E,J7200,J721S2,J784S4 |
|
SBL Overrides IO Drive Strength Set by eFuse |
SBL |
08.06.00 |
J721E |
|
[Safertos OSAL] Safertos configures MPU with MPU enabled which causes aborts |
OSAL |
08.06.00 |
J721E,J7200,J721S2,J784S4 |
|
UDMA TR event register failing on C66x core due to change in resource config |
UDMA |
09.00.00 |
J721E |
|
Assertion from EnetMcm_coreAttach API |
ENET |
08.01.00 |
J721E, J7200, J784S4 |
|
ETHFW-2166 |
Enet: lwipif library built with optimizations in ETHFW ‘debug’ builds |
ENET |
08.06.00 |
J721E, J7200, J721S2, J784S4 |
2.2.9. Known Issues¶
ID |
Head Line |
Module |
Reported in Release |
Affected Platforms |
Impact |
Workaround in this release |
---|---|---|---|---|---|---|
[SPI] DMA mode does not work for SPI5 |
MCSPI |
07.01.00 |
J721E |
DMA mode for SPI5 does not work |
NA |
|
[McSPI]: SPI does not work in DMA mode when transfer size is not multiple of trigger level |
MCSPI |
07.03.00 |
J721E |
transfer size should always be a multiple of trigger level |
NA |
|
[McSPI]: Based on fifosize, driver sets the trigger level incorrectly. |
MCSPI |
07.03.00 |
J721E |
When transfer size is less than fifosize, driver sets the trigger level to be same as transfer size |
NA |
|
[McSPI]: Driver allows enable FIFO for all channels in multi-channel mode |
MCSPI |
07.03.00 |
J721E |
Unpredictable output if FIFO is enabled in multi-channel mode |
NA |
|
[McSPI]: No interface to provide DMA information per channel |
MCSPI |
07.03.00 |
J721E |
Specific DMA parameters for each channel in case of multi-channel mode is not possible |
NA |
|
C7x context switch/restore does not happen correctly with Safertos |
OSAL |
08.05.00 |
J721E, J721S2,J784S4 |
snprintf() usage might cause aborts |
snprintf() calls in IPC RTOS echo app has to be protected with Hwip_disable and Hwip_restore. |
|
CSI-TX takes longer time to queue and dequeue in driver than expected. |
CSI2TX |
08.04.00 |
J721E, J721S2,J784S4 |
CSITX performance doesnot meet threoretical performance at 2.5 GBPS |
NA |
|
[GCC11] Payload variable defined inside tisci_protocol.h causing compilation issues |
SCICLIENT |
08.06.00 |
J721E |
GCC11 is not supported |
NA |
|
Sciclient_rmIrqDeleteRoute does not check return status |
SCICLIENT |
08.02.00 |
J721E |
Could report false positive for Sciclient_rmIrqReleaseRaw API status |
NA |
|
[I2C]: Observing reduced I2C frequency when configured for 400KHz |
I2C |
08.06.00 |
J721E |
I2C baudrate mismatch |
NA |
|
Sciserver not building on windows environment |
SCICLIENT |
08.06.00 |
J721E,J721S2,J784S4 |
Sciserver does not build on windows environment |
NA |
|
[FreeRTOS]: Variable overflow in LoadP_getCPULoad API |
OSAL |
08.06.00 |
J721E,J7200, J721S2,J784S4 |
LoadP_getCPULoad overflows if variable goes over 32-bit |
NA |
|
Inconsistent timing in FreeRTOS UT |
OSAL |
08.06.00 |
J721E |
FreeRTOS API execution time is Inconsistent |
NA |
|
[SafeRTOS]: Port does not support post_cinit |
OSAL |
08.06.00 |
J721E, J7200,J721S2,J784S4 |
Application cannot implement post_cinit API |
NA |
|
C7x cannot run new image after running Clear CLEC Secure Claim image |
SBL |
08.06.00 |
J721E,J721S2,J784S4 |
C7x app image cannot start to run after running Clear CLEC Secure Claim image |
Store DSP1_C7X_ID entry point in sbl_rprc.c ,and during secure boot, check if entry point exists and jumps to DSP1_C7X_ID entry point. |
|
[DSS-WB] Path does not support RGB888 format |
DSS |
08.04.00 |
J721E,J721S2,J784S4 |
Cannot use DSS WB writeback path for RGB888 |
NA |
|
Cable connect/disconnect can cause CPSW unrecoverable condition |
ENET |
08.00.00 |
J721E, J7200, J784S4 |
Packets will be dropped on the affected MAC port |
None. Device reboot is required |
|
EthFW will get stuck waiting for link if link partner is not ready |
ENET |
08.x.00 |
J721E, J7200, J721S2, J784S4 |
Indefinite polling could happen in SGMII link is not up |
Link partner should be available when port is open. |
|
SGMII: Wrong RGMII clock after changing SERDES refclk of 156.25MHz |
ENET |
08.06.00, 09.00.00 |
J7200 |
RGMII and SGMII port configuration cannot exist |
None. |
|
enet: mdio: Failure in PHY reg read in manual mode in ‘debug’ profile |
ENET |
09.00.00 |
J721E, J7200, J721S2, J784S4 |
MDIO operations will fail |
Workaround integrated in SDK 9.0 |
2.2.10. Limitations¶
2.2.10.1. PDK¶
PDK examples do not support SMP mode. Some of examples still support build in SMP mode but these binaries are not supported or validated.
TI Clang compiler does not enable O3 optimization level and Thumb2 mode which were enabled by default with TI ARM CGT compiler. This has an impact on driver throughput. E.g. Ethernet performance has reduced by ~20% on J721E
The PMU counter overflow is not handled in Baremetal for use of CycleprofilerP APIs or the TimerP_getTimeInUsecs API.
Applications can periodically use the CycleprofilerP_refreshCounter to check overflow and refresh the higher bits of the PMU counter.
2.2.10.2. ENET¶
Scatter-gather functionality is currently supported only for packet transmission.
gPTP stack is supported only in FreeRTOS.
2.2.10.3. SafeRTOS¶
OSAL APIs namely, HwiP_disable and HwiP_restore can only be called from a privileged mode. These APIs will give an assertion error for an unprivileged context.
When snprintf is interrupted by an ISR, C7X core may crash while returning from the ISR.
As a workaround, snprintf can be protected with Hwip_disable() and HwiP_restore() to disable the interrupts.