2.4. Release Notes - 07_01_00¶
2.4.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.
2.4.2. What’s New¶
ID | Description | Module | Supported Platforms |
---|---|---|---|
PDK-4928 | Support Firewall control layer for TISCI features | SCICLIENT | J721E, J7200, AM65xx |
PDK-5593 | Support use case of MPU/Linux and MCU/Baremetal | IPC | J721E, J7200, AM65xx |
PDK-6734 | Support for wire clock feature in TX CFG in ICSSG | EMAC | J721E, J7200, AM65xx |
2.4.3. Upgrade and Compatibility¶
This release introduces the new architecture for System firmware where the TI Foundational Security (TIFS) is running on the DMSC on J7200 and J721E devices and Power Management & Resource Management (collectively known as Device Management (DM)) runs as a library on the MCU1_0 R5F. For AM65xx device, the DM function continues to run on the DMSC. Refer individual sections below regarding the impact to each component.
2.4.3.1. MCUSW¶
This release do not include MCUSW component, please contact local FAE for further information.
2.4.3.2. Build and Packaging¶
The PDK package is now a separate package each platform, i.e. this package contains drivers required for AM65xx platform only.
Only the files applicable to a particular platform is packaged. This is to done to reduce the overall package size, remove unwanted files for users for better file/folder navigation and also to ensure that a file which is not applicable for a platform is not included by application un-intentionally
- Due to this some of the application interface files may be missing from the package compared to last release. Users are advised to remove the inclusion of these files in their application for the respective platform builds
2.4.3.3. Memory Map and Linker Command¶
System Firmware architecture has been updated for J7200 and J721E devices to run Device Management services on the MCU1_0 R5F. For details, see Sciclient upgrade and compatibility information.
In order to support this new architecture, additional memory sections are reserved in MCU MSRAM for the boot and initialization sequence, and new data sections are introduced by the supporting libraries.
SoC-wide
A portion of the MCU SRAM is reserved for exchange of data between SBL and the Device Manager, summarized in the below table:
Address | Size | Purpose | Persistence |
---|---|---|---|
0x41C8_0000 | 8 KB | Hold the Board configuration passed between SPL/SBL and SCISERVER_APP | Can be claimed once MCU1_0 app executes Sciclient_init on MCU1_0 |
0x41cf_fb00 | 1.25 KB | Common header used in ROM combined image format as well. | Can be claimed once MCU1_0 app executes Sciclient_init on MCU1_0 |
For more information on the purpose and implementation of these reserved regions, refer to Board configuration passing between SPL/SBL and MCU1_0 applications. Also, PDK common linker command file could be used as reference PDK_INSTALL_DIR/packages/ti/build/am65xx/linker_r5.lds
MCU1_0 Applications
Linker configuration files for MCU1_0 applications must be updated to comprehend placement of additional sections introduced by the Device Manager implementation
- Passing of the board configuration between SBL and the MCU1_0 application may optionally be replaced by referencing a local copy of the board configuration data structures within the Sciclient library. Regardless of which method for sending board configuration data, the .boardcfg_data section is defined by default for the placement of these structures in the application memory map.
Important
The .boardcfg_data section must be placed in SoC-internal SRAM if the local board configuration data structures are used instead of what is passed by SBL. Do not place this section in DDR.
- MCU1_0 R5F applications are expected to co-host Device Management services
which are implemented via the RM/PM HAL library. This library introduces
additional data sections, which are free to be placed anywhere as required by
the integrating application:
- .const.devgroup.MAIN
- .const.devgroup.MCU_WAKEUP
- .const.devgroup.DMSC_INTERNAL
- .bss.devgroup.MAIN
- .bss.devgroup.MCU_WAKEUP
- .bss.devgroup.DMSC_INTERNAL
2.4.3.4. OSPI Flash Memory Map¶
The default flash memory layout used by the SBL to load multicore application images has been updated in this release. It now uses the following flash address offsets:
Image Type | Flash Offset | Example Binary Name |
---|---|---|
SBL | 0x0 | OSPI/CUST SBL, E.g.: sbl_ospi_img_mcu1_0_release.tiimage |
SYSFW | 0x80000 | sysfw.bin for GP device, or sysfw-hs-enc.bin for HS device |
App Image | 0x100000 | Application image, E.g.: udma_memcpy_testapp_mcu1_0_release.appimage |
Optional: XIP bin | 0x1C0000 | XIP app binary, E.g.: can_profile_xip_app_mcu1_0_release.xer5f.bin |
2.4.3.5. Sciclient¶
No specific changes for AM65xx
2.4.3.6. MCU R5F ATCM¶
As part of SBL starting MCU R5F (MCU 10) with application provided for MCU 10, the MCU R5F would be reset. When the MCU R5F is reset, the TCMs would also be reset / contents lost. When the application is based on sysbios / TI RTOS, the vectors should be placed in ATCM, as detailed in FAQ Copy Vecs to ATCM
- Loss of vectors placed in TCMs
Results in MCU 10 applications not starting
PDK provides an utility (utilsCopyVecs2ATcm) to place the vectors into ATCM as part of application start up
The default sysbios configuration file PDK_INSTALL_DIR/packages/ti/build/am65xx/sysbios_r5f.cfg , employes this utility
- Care should be take to place this utility in memory segements that’s accessible before application initialization,
- The default linker command file PDK_INSTALL_DIR/packages/ti/build/am65xx/linker_r5_sysbios.lds, places this in OCMRAM
- Loss of .text or .data placed in TCMs
- Using TCMs to hold .text, .data and others would be affected
- PDK provides and example that demonstrate the steps required to place sections in TCM’s, refer How to move sections at runtime
2.4.3.7. Execution of apps with CCS¶
The steps to run applications with CCS has been updated. Refer Link for detailed steps.
2.4.3.8. SBL¶
- The SBL provides support on J721E and J7200 for the new split architecture for System Firmware, with TI Foundational Security (TIFS) running on the DMSC and the Device Management (DM) functions running on the MCU R5F. Sciclient API requests for security related operations will continue to be sent to the DMSC, while other Sciclient API requests for the non-secure Resource Managment (RM) and Power Management (PM) operations will be handled directly on the MCU R5F.
- The OSPI PHY on the SoC requires a PHY tuning procedure to be performed to ensure good stability and performance is achieved for the high-speed transfers performed when the PHY is enabled. The BOARD library linked in with the SBL handles this procedure as part of the SBL boot sequence. However, a PHY tuning data binary must be flashed to the start address of the last flash sector of the OSPI/xSPI device on the board. This data is used by the OSPI driver during the boot sequence for tuning the PHY.
- HLOS + RTOS boot is now supported by the SBL, with new SBL build targets for support of HLOS (or U-boot) boot on the Cortex-A cores in the MAIN domain. MMC/SD boot and OSPI/xSPI flash boot options are supported.
- Tooling is provided to created a “combined” .appimage file with the desired HLOS & RTOS images that the SBL can load, parse, and subsequently load & start on each of the remote cores that have been targeted to boot.
2.4.3.9. SYSBIOS Configuration¶
- Main Domain R5F Timer
- Updated to use DM Timers instance 6 & 7 of main domain for Main Domain R5F. By default SYSBIOS uses instance 12 & 13
- DM Timers instances 9 to 20 are not powered on by default, requires to be explicitly powered on
- Without this configuration, sysbios application would not be functional
- The sysbios reserved interrupt number “0”
- MCAN instance 0 in MCU and interrupt line 0 cannot used with default sysbios configuration
- Recommend to re-configure sysbios to use a different interrupt number
2.4.3.10. UDMA¶
- Update in Udma_RmInitPrms->startIrIntr and Udma_RmInitPrms->numIrIntr
- Earlier this parameters referred to the core interrupt range.
- Its updated to refer to IR Interrupt range for alligning with Sciclient BoardCfg RM.
- Udma_eventUnregister for UDMA_EVENT_TYPE_RING / UDMA_EVENT_TYPE_DMA_COMPLETION will return failure when Ring Occupancy is non-zero.
- This is to make sure that there is no resource leak, because unregistering these events will reset the ring.
- All the unprocessed descriptors in the ring / processed descriptors returned to the ring, should be dequeued using Udma_ringFlushRaw / Udma_ringDequeueRaw before unregistering these events.
2.4.3.11. ENET¶
Migration to Enet LLD from the Emac LLD descoped for this release. Emac LLD would continue to support CPSW and ICSSG. Enet LLD code in PDK repo is for reference only and should not be used in development.
2.4.3.12. PMIC¶
Not supported and no impact
2.4.4. Device Support¶
- AM65xx EVM, AM65xx IDK, AM65xx-HS EVM (BOARD=am65xx_evm, am65xx_idk)
2.4.5. Validation Information¶
This release is validated on J7200 EVM for the applicable components. For details on the validated examples refer to the platform specific test report present in PDK_INSTALL_DIR/docs/test_report folder.
2.4.6. Tool Chain Information¶
Refer to SDK level documentation for Tool Chain and dependent component version used to validate this release.
2.4.7. Fixed Issues¶
ID | Head Line | Module | Affected Versions | Affected Platforms |
---|---|---|---|---|
PDK-7479 | Luma and Chroma components are not properly stored | CSI2RX, CSI2TX | 07.00.00 | J721E |
PDK-6852 | CSITX does not work in less than 4 lane mode | CSI2TX | 07.00.00 | J721E |
PDK-6762 | UART test fails for MCU 1_0 | CSL | 07.00.00 | AM65xx, J721E |
PDK-6925 | R5 cache function uses incorrect cache line size | CSL | 07.00.00 | J721E, J7200, AM65xx |
PDK-8203 | DCC source update not working | CSL | 07.00.00 | J721E, J7200, AM65xx |
PDK-6839 | CSL_serdesEnableLanes does not configure torrent SERDES | CSL | 07.00.00 | J721E |
PDK-7573 | IPG setting for ICSSG does not take effect for 2nd port | EMAC | 07.00.00 | AM65xx |
PDK-6734 | Driver updates to support wire clock feature in TX CFG | EMAC | 07.00.00 | AM65xx |
PDK-7536 | C6x: ipc examples: Trace buffer contents remain in the Cache upon a crash | IPC | 07.00.00 | J721E |
PDK-7625 | Message reception is delayed if sent to core before it is booted | IPC | 07.00.00 | J721E |
PDK-8103 | TimerP_getTimeInUsecs API return wrong time value in Bare-metal | OSAL | 07.00.00 | J721E |
PDK-5258 | OSPI PHY Mode Temperature Sensitivity | OSPI | 06.02.00 | J721E |
PDK-7402 | Typo in ICSS instance enums in PRUSS LLD | PRUSS | 07.00.00 | J721E |
PDK-7091 | AM65 pruicss_intc.c interrupt initialization sequence doesn’t protect spurious interrupt | PRUSS | 07.00.00 | AM65xx |
PDK-7045 | Unable to set USE_DKEK flag in SA2UL security context | SA2UL | 07.00.00 | J721E, AM65xx |
PRSDK-5448 | SBL boot from MMCSD fails intermittently | SBL | 05.02.00 | AM65xx |
PDK-8189 | SBL doesn’t allow an external app to use OSPI with DMA | SBL | 07.00.00 | J721E |
PDK-7627 | Multi-Stage bootloading fails on HS device | SBL | 07.00.00 | J721E |
PRSDK-5626 | OSPI Read using UDMA fails on AM65x HS devices. | SBL | 05.03.00 | AM65xx |
PRSDK-6382 | SBL: R5F: Core 1 boot is not working with unsigned binary with ipc images | SBL | 06.01.00 | AM65xx |
PDK-6980 | Inconsistent naming of TISCI defines in sciclient | SCICLIENT | 07.00.00 | J721E, J7200, AM65xx |
PDK-7120 | Incorrect Error interrupt registration in scalar | VHWA MSC | 07.00.00 | J721E |
PDK-7024 | Incorrect max size of the LSC table | VHWA VISS | 07.00.00 | J721E |
PDK-6800 | Watchdog timer diagnostic test fails | DIAG | 07.00.00 | AM65xx |
PRSDK-8607 | Board_init(SBL_PLL_INIT) is configuring PLL directly without going through SYSFW. | BOARD | 06.03.00 | AM65xx |
PRSDK-7891 | CPSW RGMII diagnostic test failure | BOARD | 06.01.00 | J721E |
2.4.8. Known Issues¶
ID | Head Line | Module | Reported in Release | Affected Platforms | Impact | Workaround in this release |
---|---|---|---|---|---|---|
PDK-5224. | Active DP -> HDMI adapter doesn’t work | DSS | 00.09.01 | J721E | DP to HDMI adapter for display cannot be used. | None |
PDK-5040. | Display stops working if two pipelines are started back to back | DSS | 06.02.00 | J721E | None, if the workaround is in place. | Wait for a frame to go out from a pipeline before starting the next one |
PDK-6992. | Display flickers for BT601 output format | DSS | 07.00.00 | J721E | None | |
PDK-8320 | ICSS V1 CSL not up to date with ICSSG | CSL | 07.00.00 | J721E, AM65xx | None | Patch available. Will be included in next release |
PDK-6975. | Pulsar (R5F) : High priority interrupt is missed by VIM | CSL, OSAL | 07.00.00 | J721E, J7200, AM65xx | Baremetal implementation is pending | Use SYSBIOS instead of baremetal |
PDK-6649. | Timer osal - noos - Timer delete doesn’t “free” timer | OSAL | 06.02.00 | J721E | Resource leak if create/delete called in a loop. But typically this is not done for Timer. | Use the same timer in the application without create/deleting multiple times |
PDK-6534. | Timer osal - noos - Timer should be reset first before registering interrupts | OSAL | 06.02.00 | J721E | None if the workaround is in place | Reset the timer before using |
PDK-6758. | pcie qos examples fails for 2 lane configuration | PCIE | 07.00.00 | AM65xx | None | None |
PRSDK-8036 | PCIE-0: Intermittent failures during Gen 3 mode on AM65x PG2.0 | PCIE | 06.02.00 | AM65xx | None | None |
PDK-8407. | J721E: MCU Timer 0 is not usable from application (sysbios) with SBL | OSAL, SBL | 07.01.00 | J721E | None | Use any other timer |
PDK-8586 | Early CAN response measurement is beyond 50 ms for J721E | SBL | 07.01.00 | J721E | None | |
PDK-8300. | UDMA MCU NAVSS Channel Num 5 is not functional, when booting the application using the SBL bootloader. | UDMA | 07.01.00 | J721E | Low Impact. UDMA MCU NAVSS Channel 5 can’t be used when booting the application using the SBL bootloader. | Use any other channel. In the defaultBoardCfg Channel no. 5 is not used. The issue will be seen only when the boardcfg is updated to use channel 5. |
PDK-6789. | MCU/Main NAVSS UDMA memcpy from L2SRAM fails | UDMA | 07.00.00 | J721E | Transfer works fine when source buffer, destination buffer and TRPD buffers are in L2SRAM. The issue happens only when the ring memory is in L2SRAM location | Use ring memory from non-L2SRAM location |
PDK-5228. | Output mismatch when each region requiring 3 TRs | VHWA | 01.00.00 | J721E | In multi-region mode with more then 3 TR per region can’t be used | In multi-region mode for each region less than 3 TR should be used |
PDK-5226. | DOF generated wrong output with SOF if pixel in all row are not enabled | VHWA | 01.00.00, 00.09.01 | J721E | When using the SOF if the Paxel rows without any pixel enabled is not in consecutive pair with lead to lead to output mismatch | This issue is due to shift in flowvector out buffer. While generating the SOF binary map make sure that Paxel rows without any pixel enabled should be in consecutive pair |
PDK-5217. | VPAC VISS driver doesn’t support several valid mux combinations for outputs | VHWA | 01.00.00, 00.09.01 | J721E | VISS output with Chroma only and one of the RGB component enabled may not work | Enable YUV420 instead of Chroma only while using RGB component |
PDK-7048. | Master Slave: Data corruption in mode 0 | McSPI | 07.01.00 | J7200 | None | Most likely EVM looback routing issue. Debug pending |
ETH-1534. | [CPSW] Packet drop with QSGMII ports IPerf | Enet | 06.02.00 | J721E, J7200 | None | None |
ETH-1670. | mcu2_1: loopback: Test fails to setup interrupts in iteration 2 | Enet | 07.01.00 | J721E | None | Avoid restarting Enet LLD on J721E mcu2_1 core |
PDK-6742. | McASP regression test app some tests are failing | McASP | 07.00.00 | AM65xx | The issue is most likely a application configuration | None |
PRSDK-5074 | McASP driver hangs with small buffer size | McASP | 05.01.00 | J721E, AM65xx | None | Use packet size 32 samples or greater |
PDK-8166. | MMCSD read/write failure with 1.8V | MMCSD | 07.00.00 | AM65xx | ||
PDK-8537. | Sciclient_rmIrqRelease API is failing | SCICLIENT | 07.01.00 | J721E | ||
PDK-8502 | Uniflash flash programmer failure in DMA mode | BOARD | 07.01.00 | J721E, AM65xx | ||
PDK-8311. | Recent DDR config update to 4266 MT/s causing DDR memory failures on some boards | BOARD | 07.01.00 | J721E | Occasional failures seen. Restart should work | Issue seen with unqualified sample. Replace sample |
PDK-6549. | MCU2 core diagnostic tests not running through sbl | BOARD | 07.00.00 | J721E | None | Use CCS/JTAG to run the tests |
PDK-6548. | Display port (eDP) diagnostic test failure | BOARD | 07.00.00 | J721E | None | Use display sample application |
PDK-6707. | PCIe diagnostic test failure | BOARD | 07.00.00 | AM65xx | None | Use PCIe driver sample application |
PDK-8131 | PMIC: Asynchronous Interrupt tests failure on Main domain R5 Cores | BOARD | 07.01.00 | J7200 | None | Use Polled mode |
PDK-8577 | PMIC: Asynchronous Interrupt tests failure on Main domain R5 Cores and mcu1_1 core | BOARD | 07.01.00 | J721E | None | Use Polled mode |
PDK-8667 | CSL : Baremetal : udma_baremetal_ospi_flash_testapp failing | CSL | 07.01.00 | AM65xx | None | None mode |
PDK-8711 | SA Baremetal test application does not run on A53 core | SA2UL | 07.01.00 | AM65xx | None | None mode |
PDK-8841 | csl_cbass_baremetal_test_app fails on QoS Test | CSL | 07.01.00 | AM65xx | None | None mode |
PDK-8875 | CUST SBL build not booting MCU1_1 core on AM65xx | SBL | 07.01.00 | AM65xx | None | Use non cust SBL builds |
2.4.9. Limitations¶
- Active DP -> HDMI adapter doesn’t work. As a workaround use the display that supports Active DP
- C7x TI RTOS : Task stack size shall be multiple of 16 KB (size less than 16 KB leads to unexpected behavior)