2.3. Release Notes - 09_00_00

2.3.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.3.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.3.3. Upgrade and Compatibility

2.3.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.3.3.2. OSAL

  1. 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.

  2. 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.

  3. SemaphoreP_reset API is removed from OSAL as the underlying FreeRTOS and SafeRTOS kernel do not support the same.

2.3.3.3. OSPI

  • DDR PHY tuning algo is updated to support both full and half cycle lock modes:

    • phyLockCycle parameter is provided in OSPI_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.3.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:

2.3.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.3.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.3.3.7. Enet

  1. 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 GPTP Example for further information about gPTP example app.

  2. 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.3.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.3.5. Validation Information

For details on the validated examples refer to the platform specific test report available here.

2.3.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.3.7. Change Request

Refer to monthly roadmap slides for changes in the planned features

2.3.8. Fixed Issues

ID

Head Line

Module

Affected Versions

Affected Platforms

PDK-12243

DSS: rxBuffer range check missing in DP_mailbox

DSS

08.04.00

J721E,J721S2,J784S4

PDK-12257

[DSS/eDP]: Busy Waiting in eDP driver causes hang

DSS

08.04.00

J721E,J721S2,J784S4

PDK-12461

[OSAL]: Mutex implementation uses recursive mutex of FreeRTOS

OSAL

08.05.00

J721E, J7200, J721S2,J784S4

PDK-12468

[UART]: Driver does not support stop/timeout condition

UART

08.05.00

J721E, J7200, J721S2,J784S4

PDK-12490

[SafeRTOS] UDMA UT app doesnot work in MMCSD boot

OSAL

08.06.00

J721E, J7200, J721S2,J784S4

PDK-12567

SemaphoreP_reset does not work with SafeRTOS

OSAL

08.06.00

J721E, J7200,J721S2,J784S4

PDK-12596

ECAP CSLR register definitions do not match TRM

CSL

08.05.00

J721E

PDK-12623

PDK app takes more time to be loaded on Safertos when compared to Freertos

OSAL

08.05.00

J721E, J7200, J721S2,J784S4

PDK-12630

[CSITX] vBlank/hBlank values from app are not passed to CSL

CSI2TX

08.05.00

J721E,J721S2,J784S4

PDK-12654

OSPI PHY Tuning - Finding Rx Min for a given Tx Window

OSPI

08.02.00

J721E, J7200, J721S2,J784S4

PDK-12680

CSL: OSPI: HW_AUTO_POLL macros are misleading

CSL, OSPI

08.06.00

J721E, J7200,J721S2,J784S4

PDK-12824

[CSIRX]: YUV422 capture is not working correctly

CSI2RX

08.06.00

J721E,J721S2,J784S4

PDK-12847

DMA benchmarks for OCM <-> DDR missing in SDK datasheet

UDMA

08.06.00

J721E, J7200,J721S2,J784S4

PDK-12880

OSPI PHY pipeline mode does not work with NON DMA or NON Cache mode

OSPI

08.05.00

J721E, J7200,J721S2,J784S4

PDK-12888

[Board]: PLL Init status is overwritten in Board_PLLInitMain() & Board_PLLInitMcu()

BOARD

08.06.00

J721E, J7200,J721S2,J784S4

PDK-12893

TimerP_getTimeInUsecs() race condition issue

OSAL

09.00.00

J721E,J7200,J721S2,J784S4

PDK-12894

Correct timeout unit of SemaphoreP_pend()

OSAL

09.00.00

J721E,J7200,J721S2,J784S4

PDK-12895

PMLIBClkRateSet failed for clock Id = 33 error when run Excelfore gptp

SCICLIENT

09.00.00

J721E, J7200,J721S2,J784S4

PDK-12902

[FreeRTOS/SafeRTOS] Remove incomplete SemaphoreP_reset implementation from OSAL

OSAL

08.06.00

J721E,J7200,J721S2,J784S4

PDK-12910

[CSITX] Delete API uses same Semaphore lock resulting in hang

CSI2TX

08.06.00

J721E,J721S2,J784S4

PDK-12911

[CSITX]: Event UnRegister is not getting called in the delete API

CSI2TX

08.06.00

J721E,J721S2,J784S4

PDK-12912

SBL combined appimage boot flow diagram missing in SDK

SBL

08.06.00

J721E,J7200,J721S2,J784S4

PDK-13030

SBL Overrides IO Drive Strength Set by eFuse

SBL

08.06.00

J721E

PDK-13217

[Safertos OSAL] Safertos configures MPU with MPU enabled which causes aborts

OSAL

08.06.00

J721E,J7200,J721S2,J784S4

PDK-13228

UDMA TR event register failing on C66x core due to change in resource config

UDMA

09.00.00

J721E

ETHFW-2023

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.3.9. Known Issues

ID

Head Line

Module

Reported in Release

Affected Platforms

Impact

Workaround in this release

PDK-9696

[SPI] DMA mode does not work for SPI5

MCSPI

07.01.00

J721E

DMA mode for SPI5 does not work

NA

PDK-10409

[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

PDK-10410

[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

PDK-10411

[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

PDK-10412

[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

PDK-12253

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.

PDK-12540

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

PDK-12850

[GCC11] Payload variable defined inside tisci_protocol.h causing compilation issues

SCICLIENT

08.06.00

J721E

GCC11 is not supported

NA

PDK-12878

Sciclient_rmIrqDeleteRoute does not check return status

SCICLIENT

08.02.00

J721E

Could report false positive for Sciclient_rmIrqReleaseRaw API status

NA

PDK-12901

[I2C]: Observing reduced I2C frequency when configured for 400KHz

I2C

08.06.00

J721E

I2C baudrate mismatch

NA

PDK-12986

Sciserver not building on windows environment

SCICLIENT

08.06.00

J721E,J721S2,J784S4

Sciserver does not build on windows environment

NA

PDK-13065

[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

PDK-13066

Inconsistent timing in FreeRTOS UT

OSAL

08.06.00

J721E

FreeRTOS API execution time is Inconsistent

NA

PDK-13080

[SafeRTOS]: Port does not support post_cinit

OSAL

08.06.00

J721E, J7200,J721S2,J784S4

Application cannot implement post_cinit API

NA

PDK-13174

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.

PDK-13192

[DSS-WB] Path does not support RGB888 format

DSS

08.04.00

J721E,J721S2,J784S4

Cannot use DSS WB writeback path for RGB888

NA

ETHFW-2084

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-2088

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.

ETHFW-2140

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.

ETHFW-2242

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.3.10. Limitations

2.3.10.1. PDK

  1. PDK examples do not support SMP mode. Some of examples still support build in SMP mode but these binaries are not supported or validated.

  2. 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

  3. 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.3.10.2. ENET

  • Scatter-gather functionality is currently supported only for packet transmission.

  • gPTP stack is supported only in FreeRTOS.

2.3.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.

    1. As a workaround, snprintf can be protected with Hwip_disable() and HwiP_restore() to disable the interrupts.