2.1. Release Notes¶
2.1.1. Overview¶
The Processor Software Development Kit (Processor-SDK) for Linux provides a fundamental software platform for development, deployment and execution of Linux based applications and includes the following:
Bootloaders, Linux Kernel & Filesystem
SDK installer
Setup scripts
Demo applications
Documentation
Note
For building some of the RTOS-based demonstrations, you should also download Processor SDK RTOS installer. For more information, refer to <PSDKRA install path>/index.html.
2.1.2. Licensing¶
Please refer to the software manifest, which outlines the licensing status for all packages included in this release. The manifest can be found on the SDK download page or in the installed directory as indicated below. In addition, see Processor SDK Linux GPLv3 Disclaimer.
2.1.3. Documentation¶
Processor SDK Linux Software Developer’s Guide: Provides information on features, functions, delivery package and, compile tools for the Processor SDK Linux release. This also provides detailed information regarding software elements and software infrastructure to allow developers to start creating applications.
Processor SDK Linux Getting Started Guide: Provides information on getting the software and running examples/demonstrations bundled in the SDK.
Software Manifest: Provides license information on software included in the SDK release. This document is in the release at
[INSTALL-DIR]/docs
.EVM Quick Start Guide: Provides information on hardware setup and running the demonstration application that is loaded on flash. This document is provided as part of the EVM kit.
2.1.4. Supported Platforms¶
See here for a list of supported platforms and links to more information.
2.1.5. Release 07.02.00¶
Released January 2021
2.1.5.1. What’s New¶
pip3 package
pillow package
tensorflow_runtime package
latest commits for TVM and DLR
Wheel files for TVM, DLR and TFlite_runtime (for host emulation)
2.1.5.2. Release features¶
R5 SPL:
Early booting of MCU R5F and Main R5FSS Core0
Bootstrapping 2nd stage boot loader (u-boot) on A72
UART boot support.
eMMC HS400 mode support
eMMC boot support
A72 U-boot:
Early booting of remote cores (C7x, C66x, Main subsystem R5F’s) with configurable order of boot-strapping
Support for booting both compressed and uncompressed kernel image
Basic HYP mode support - boots up uboot in EL2 privileged mode
MMCSD support
SD card boot support
USB Host and mass storage support
Support for DFU download to SD card, eMMC
UFS support
eMMC boot support
Kernel: Kernel image includes support for the following drivers
MMC support
I2C support
CPSW2G Ethernet driver
UART driver, UART console support
USB driver with support for device/host mode of operation
PCIe Root Complex and Endpoint drivers
CPSW9G Virtual driver
USB gadget driver support
Composite device
Multifunction composite device
USB DRD dual role support
Support for dual voltage SD cards (UHS mode)
PCIe backplane support
PCIe Gen3 2xlane support
eMMC HS400 speed mode support
UART DMA mode support
UFS support
ADC basic functionality
Crypto acceleration support for AES, 3-DES, and RNG
Graphics:
Support for OpenGL ® ES 1.x, OpenGL ® ES 2.0 and OpenGL ® ES 3.2 APIs
Weston window composition with GPU acceleration support
DRM-based display backend
Offscreen rendering mode support
DMABUF buffer import support
Support for YUV texture formats
Support for GPU profiling tools (PVRTrace and PVRTune)
IPC:
IPC support between
A72 to C7x
A72 to each C66x core
A72 to each MainSS R5F core
A72 to each MCU island R5F core
Support for IPC in both IPC-only mode (core loaded by u-boot) and remoteproc mode (core loaded by Linux Kernel)
Mailbox and H/W spinlock support
Display:
DSS support for cropping, scaling, gamma correction, per-pixel blending and global alpha blending
DSS support for Color Space Conversion (CSC) and Color Phase Rotation (CPR)
DRM API support
Support for NV12, UYVY, and XRGB888 data
Static partitioning of DSS resources and using video pipelines on shared videoport
Audio:
Audio playback and Audio record support at 48 KHz, 24 bits per sample
Stereo and Multichannel support
Multi-codec support
McASP: Master and slave mode support
Multi-codec support with separate serializer per codec
Profiling
A72 PMU support for Performance profiling
2.1.5.3. Component versions¶
component |
source |
branch |
version |
---|---|---|---|
arm-trusted-firmware |
git://git.ti.com/atf/arm-trusted-firmware.git |
ti-atf |
52c334fc361194e3896ea3b2529c10a06e586a5f |
optee-os |
git://git.ti.com/optee/ti-optee-os.git |
ti-optee-os |
199fca17b575d4c748c9c435e908a6ec9618c75a |
U-boot |
git://git.ti.com/ti-u-boot/ti-u-boot.git |
ti-u-boot-2020.01 |
3c9ebdb87d65aacc4ec302be8bef3df15364bacd |
Linux Kernel |
git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git |
ti-linux-5.4.y |
9574bba32a1898794895ca3816e815154c80226d |
2.1.6. Issues Tracker¶
2.1.6.1. Issues opened in previous releases that were closed on this release¶
Record ID |
Summary |
---|---|
LCPD-18910 |
NFS boot is broken |
LCPD-19067 |
CPSW2G: UDP iperf between two EVMs shows huge packet loss |
LCPD-18909 |
Uboot: SPL: failed to boot from all boot devices |
LCPD-18853 |
UDMA: slave_sg generates TR interrupt at the end of the transfer |
LCPD-16120 |
DP: Link fails right after link training, unless voltage swing is 2 or 3 |
2.1.6.2. Issues found and closed on this release that may be applicable to prior releases¶
Record ID |
Summary |
---|---|
LCPD-19854 |
PCIe: EP: Low Throughput using DMA |
LCPD-19646 |
U-Boot: reset command fails |
LCPD-19641 |
Backport: AM64: presil: J721E: NETDEV WATCHDOG: eth0 (am65-cpsw-nuss): transmit queue 0 timed out |
LCPD-19444 |
TI SDK Kernel boot broken during module loading due to cdns3-ti.ko |
LCPD-19432 |
Linux kernel fails to boot with SYSFW 2020.07-rc1 |
LCPD-19442 |
J7ES,J7VCL: Can’t boot from eMMC alternate boot mode |
LCPD-19445 |
remoteproc/k3-dsp: C66x IPC is not functional with newer SYSFW in remoteproc mode |
LCPD-19234 |
j721e/j7200: Missing PSI-L configuration for the second DMA port of MCU SA2UL |
LCPD-19237 |
J721E fails to boot with SYSFW 2020.06 |
LCPD-19820 |
DP tests fail due to unexpected mode frequency |
LCPD-19568 |
CPSW5g: Cannot get DHCP address |
LCPD-19538 |
j721e-cpsw-virt-mac: dma descriptors not enough |
LCPD-19724 |
hwspinlock/omap: Fix dt binding warnings with k3.yaml |
LCPD-19717 |
am654-gpevm: kernel image boot reports corruption |
LCPD-19720 |
sdhci_am654 driver does not autoload when built as a module |
LCPD-19638 |
u-boot: AM64: presil: J721E: NETDEV WATCHDOG: eth0 (am65-cpsw-nuss): transmit queue 0 timed out |
LCPD-19611 |
U-Boot: Memory leak during OSPI PHY calibration |
LCPD-19781 |
OE: ti-rpmsg-char: Library header files and primary so file are missing in FS |
LCPD-19226 |
remoteproc/k3-r5f: Fix TCM initialization upon reset release failure |
LCPD-19947 |
remoteproc/k3-dsp: Fix erroneous error check on devm_ioremap_wc() |
LCPD-19946 |
remoteproc/k3-r5f: Fix couple of warnings |
LCPD-19837 |
k3conf: DSP frequencies are printed incorrectly as 0 |
LCPD-19790 |
UART boot fails for j721e and j7200 in 07.01-rc4 |
LCPD-19804 |
ti-rpmsg-char: Cleanup of endpoint devices is broken for multiple handles |
LCPD-19789 |
Kernel: Reboot Command Fails |
LCPD-19787 |
ATF: Reboot Command Fails |
LCPD-19754 |
U-boot tries to apply disabled memory regions |
LCPD-19753 |
U-Boot: Overlay loading fails on latest ti-u-boot |
LCPD-19751 |
[ti:ti-linux-5.4.y 3067/10775] drivers/pci/endpoint/pci-epf-bus.c:36:34: warning: unused variable ‘pci_epf_bus_id_table’ |
LCPD-19214 |
arm64: dts: Fix interconnect node names |
LCPD-19570 |
J721e: R5 SPL: Environment bad CRC error |
LCPD-19541 |
U-Boot: Incorrect default value for mtdparts for J721E, AM65x, and J7200 |
2.1.6.3. Errata workarounds¶
Record ID |
Summary |
Workaround |
ErrataID |
---|---|---|---|
LCPD-19068 |
DSS: Disabling a layer connected to Overlay may result in synclost during the next frame |
i2097 |
|
LCPD-19517 |
R5FSS: The same interrupt cannot be nested back-2-back within another interrupt |
i2162 |
|
LCPD-16605 |
MMC: MMC1/2 Speed Issue |
For ES 1.1, apply the following patches:
|
i2090 |
LCPD-17220 |
U-Boot Hyperbus: Hyperflash reads limited to 125MHz max. frequency |
i2088 |
|
LCPD-19047 |
USB: Race condition while reading TRB from system memory in device mode |
i2067 |
|
LCPD-16350 |
DSS: Frame Buffer Flip/Mirror Feature Using RGB24/BGR24 Packed Format can Result in Pixel Corruption |
If the RGB24 or BGR24 packed format is selected, then use the GPU to implement the flip/mirror operation. |
i2039 |
DOCU-145 |
HyperBus: HyperBus is not functional |
For ES 1.1, apply the following patches:
|
i2119 |
2.1.6.4. SDK Known Issues¶
Record ID |
Summary |
Workaround |
---|---|---|
LCPD-19863 |
Bilinear filtering test times out when waiting for deqp-gles3 |
|
LCPD-17182 |
Android: j721e: unable to boot to UI with 2K display |
|
LCPD-17387 |
Underflow and CRTC SYNC LOST observed while running GLMark2 (1x1080p + 1x4k) |
|
LCPD-17213 |
Weston sometimes fails to start when booting with nfs filesystem |
|
LCPD-16921 |
GPU driver doesn’t unregister genpd name on unload |
|
LCPD-16366 |
RGX kick test fails when 32 sync dependencies are set for each command |
|
LCPD-16130 |
Exception triggered by drm_dev_unregister during poweroff |
|
LCPD-17370 |
Android: Executing Andebenchpro benchmark app results in kernel crash |
|
LCPD-18115 |
PVR Error observed while running glmark2 |
|
LCPD-16531 |
video decode: vxd_dec warnings displayed at end of gstreamer hevc playback to kmssink for certain video |
|
LCPD-19822 |
ARM benchmark testcases returning lower than expected performance |
|
LCPD-17368 |
Format support - Mismatch with DDK - Android Allocator (NV12) |
|
LCPD-19894 |
UYVY texture test fails due to internal data stream error |
|
LCPD-19893 |
RGX GLES3 test fails due to KCCB stall |
|
LCPD-19948 |
Yocto: stream recipe is incorrect |
2.1.6.5. U-Boot Known Issues¶
Record ID |
Summary |
Workaround |
---|---|---|
LCPD-19636 |
J7: HS: OSPI Boot broken |
|
LCPD-19776 |
j7: uboot: some socketed evms fail to boot |
|
LCPD-17770 |
U-Boot: Fix order of MCU R5 shutdown depending on cluster mode |
|
LCPD-17406 |
U-boot: Uboot has no knowledge of memory reserved for remote cores |
|
LCPD-17789 |
UBOOT J7: Could not see UFS device by scsi scan |
|
LCPD-19871 |
U-boot: Documentation: Combined Boot flow and SPL Rearch |
2.1.6.6. Linux Kernel Known Issues¶
Record ID |
Summary |
Workaround |
---|---|---|
LCPD-19897 |
Watchdog timer tests fail for unclear reasons |
|
LCPD-19046 |
Very low IPSEC throughput |
|
LCPD-18935 |
IPC tests failed on j721e in 07.00 rc5 |
|
LCPD-18894 |
J7 failed to boot to kernel occasionally |
|
LCPD-17284 |
remoteproc/k3-r5: Cores are started out-of-order when core 0 file size >> core 1 file size |
|
LCPD-16545 |
remoteproc/k3-r5f: PDK IPC echo_test image fails to boot up in remoteproc mode on second run |
|
LCPD-16535 |
remoteproc/k3-dsp: PDK IPC echo test binaries fails to do IPC in remoteproc mode on second run |
|
LCPD-19659 |
Doc: PCIe: Update documentation to indicate how to move to compliance mode |
|
LCPD-19519 |
Kernel: RT Linux build error with SPI NOR hack to find the PHY pattern location |
|
LCPD-19084 |
Few SD cards not enumerating in Kernel with Alpha EVM |
|
LCPD-18912 |
QSPI read performance decreased |
|
LCPD-17814 |
Kingston 16G card could not boot to uboot prompt |
|
LCPD-17794 |
ext4write failed to write firmware to SD card |
|
LCPD-17421 |
CPSW9G: Can’t bring up interface over NFS |
|
LCPD-17172 |
Uboot USBhost: Sandisk Extreme USB 3.0 msc stick could not be detected at second time |
|
LCPD-17171 |
Uboot dhcp occasionally failed |
|
LCPD-16640 |
PCIe RC: GIC ITS misbehaves when more than 4 devices use it simultaneously |
|
LCPD-16628 |
Could not enumerate PLEXTOR pcie SSD |
|
LCPD-16591 |
PCIe wifi ping stress test failed |
|
LCPD-16396 |
J721E: RC: Unsupported request in configuration completion packets results in an abort |
Workaround for Multifunction: Configure all the physical functions supported by the endpoint. For configuring all the 6 functions of PCIe controller instance ‘1’ in J721E, the following can be used. mount -t configfs none /sys/kernel/config; cd /sys/kernel/config/pci_ep/; mkdir functions/pci_epf_test/func1; echo 0x104c > functions/pci_epf_test/func1/vendorid; echo 0xb00d > functions/pci_epf_test/func1/deviceid; echo 1 > functions/pci_epf_test/func1/msi_interrupts; echo 16 > functions/pci_epf_test/func1/msix_interrupts; ln -s functions/pci_epf_test/func1 controllers/d800000.pcie-ep/; mkdir functions/pci_epf_test/func2; echo 0x104c > functions/pci_epf_test/func2/vendorid; echo 0xb00d > functions/pci_epf_test/func2/deviceid; echo 1 > functions/pci_epf_test/func2/msi_interrupts; echo 16 > functions/pci_epf_test/func2/msix_interrupts; ln -s functions/pci_epf_test/func2 controllers/d800000.pcie-ep/; mkdir functions/pci_epf_test/func3; echo 0x104c > functions/pci_epf_test/func3/vendorid; echo 0xb00d > functions/pci_epf_test/func3/deviceid; echo 1 > functions/pci_epf_test/func3/msi_interrupts; echo 16 > functions/pci_epf_test/func3/msix_interrupts; ln -s functions/pci_epf_test/func3 controllers/d800000.pcie-ep/; mkdir functions/pci_epf_test/func4; echo 0x104c > functions/pci_epf_test/func4/vendorid; echo 0xb00d > functions/pci_epf_test/func4/deviceid; echo 1 > functions/pci_epf_test/func4/msi_interrupts; echo 16 > functions/pci_epf_test/func4/msix_interrupts; ln -s functions/pci_epf_test/func4 controllers/d800000.pcie-ep/; mkdir functions/pci_epf_test/func5; echo 0x104c > functions/pci_epf_test/func5/vendorid; echo 0xb00d > functions/pci_epf_test/func5/deviceid; echo 1 > functions/pci_epf_test/func5/msi_interrupts; echo 16 > functions/pci_epf_test/func5/msix_interrupts; ln -s functions/pci_epf_test/func5 controllers/d800000.pcie-ep/; mkdir functions/pci_epf_test/func6; echo 0x104c > functions/pci_epf_test/func6/vendorid; echo 0xb00d > functions/pci_epf_test/func6/deviceid; echo 1 > functions/pci_epf_test/func6/msi_interrupts; echo 16 > functions/pci_epf_test/func6/msix_interrupts; ln -s functions/pci_epf_test/func6 controllers/d800000.pcie-ep/; echo 1 > controllers/d800000.pcie-ep/start; echo 1 > /sys/bus/pci/devices/0000:00:00.0/remove; echo 1 > /sys/bus/pci/rescan; Workaround for switch card: No workarounds available. |
LCPD-19792 |
j721e boot fails sometimes due to EL1 exception |
|
LCPD-18860 |
isolcpus in the command line is not honored |
|
LCPD-18684 |
syscalls sync failures: fdatasync03, fsync04, sync03, syncfs01, sync_file_range02 |
|
LCPD-17780 |
Mbox timedout in resp |
|
LCPD-17673 |
No software documentation for the Timer module |
|
LCPD-17543 |
Some cpuhotplug tests failed |
|
LCPD-17418 |
J7 sometimes failed to boot |
Flash firmware into mmc rootfs |
LCPD-17403 |
PAT: DMA-API warning |
|
LCPD-16505 |
Wrong clock rate is reported for 157:400, 157:401 (HSDIVIDER after PLL4 and 15) |
|
LCPD-19068 |
DSS: Disabling a layer connected to Overlay may result in synclost during the next frame |
|
LCPD-17387 |
Underflow and CRTC SYNC LOST observed while running GLMark2 (1x1080p + 1x4k) |
|
LCPD-17006 |
4k DP Display Shows Blank Screen sometimes when booting |
|
LCPD-16836 |
DP: GeChic display EDID read failures with custom DP cable |
|
LCPD-16616 |
Jailhouse: Failure in mhdp probe while restarting the Linux VM |
|
LCPD-16208 |
FIFO Underflows during video playback on 4k panel |
|
LCPD-18790 |
eMMC tests failed on J7 rev E2 EVM |
|
LCPD-19942 |
UART tests at certain speeds fail on j7200, j721e |
2.1.7. Installation and Usage¶
The Software Developer’s Guide provides instructions on how to setup your Linux development environment, install the SDK and start your development. It also includes User’s Guides for various Example Applications.