Saturday, April 15, 2023

TI AM62X supports splash screen in upstream u-boot

EARLY SPLASH SCREEN FOR TI's AM62X


Almost every product that has a screen for user interface expects a very early (< 1 second) display of "product logo" also known as early splash screen when turned ON.

The early splash of logo on screen requires display drivers to be integrated in boot loader, for Linux OS we use u-boot as standard boot loader and even before u-boot it's the SPL that comes up first and initializes the DDR and loads the Linux and file system images. The driver should be enabled in both u-boot and SPL to get an early experience of Splash Screen.

My team at Texas Instruments has introduced the support for AM62x display in u-boot and has successfully up-streamed it.  

This feature will be available in our next release of TI Linux SDK, but our partners and customers can get this feature ported now by upgrading to u-boot version 2023.04 or by back porting these patches to the version of u-boot they are using currently.

The patch series can be found here

Apart from porting the driver, there are few additional steps that need to be implemented to get the feature enabled for your platform.

  1. add support for TIDSS in dts file: arm: dts: k3-am62-main: Add device tree node for TIDSS
  2. enable pin controls :  arm: dts: k3-am625-sk: Add pin control for TIDSS and add panel device tree node 
  3. enable pre-ram flags : arch: arm: dts: k3-am625-sk: add bootph-pre-ram flags 
An example of these dts changes can be found here

NOTE: The video file in the link above demonstrates the splash screen with in 1 sec of turning ON of the board, the first logo is from SPL and then there is a blank screen and the logo appears for the second time and this time it's from u-boot. It's up to our customers to utilize these features as applicable to final product.

The patches for SPL are still under review and not available upstream yet, the patch series can be pulled from the links given below:

Credits:  Nikhil Jain - for the content and upstreaming this feature in u-boot opensource projects.

Sunday, April 2, 2023

TI AM62X SOCs supports simultaneous flashing of multiple boards for factory flashing


As our customers are getting into production with TI's AM62x and AM62A SOCs one of the key requirements has been to provide a tool that can simultaneously flash multiple boards in the factory.

While the standard practice in Industry has been to develop and provide a Windows based tool, my team unleashes the power of u-boot, with just a script and USB DFU support in u-boot we are now able to flash multiple AM62x and AM62A boards dynamically and simultaneously : 

  • Simultaneously - this means, connect as many boards as needed through a USB hub and the script running on host machine detects the number of boards connected and each board will be flashed with default images one by one without manual intervention.
  • Dynamically - the boards that were flashed can be taken out runtime and new boards can be connected while other boards are being flashed. The script keeps finding the newly added boards and continues to flash till the user closes the script.

The feature got added into our latest SDK version 8.6

Steps to flash multiple boards are documented in our SDK documentation, the scripts, environment variables and u-boot sources are part of SDK installer

Steps to build u-boot with DFU support is also documented here

Thanks to Paresh Bhagat and Nitin Yadav for the video and content.