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

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.


2.1.8. Host Support

For the specific supported hosts for current SDK, see this page.

Note

Processor SDK Installer is 64-bit, and installs only on 64-bit host machine.