SPRADK8 February   2025 AM62P

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2Hardware Used
    1. 2.1 AM62Px Processor
    2. 2.2 SK-LCD1
    3. 2.3 Display Subsystem on AM62P
  6. 3Early Splash-Screen Architecture
    1. 3.1 Boot Stages on AM62P
    2. 3.2 Flicker-Free Transition
  7. 4Flicker-Free Transition From SPL to U-Boot
    1. 4.1 Steps to Test
    2. 4.2 Measurements
  8. 5Flicker-Free Transition From SBL to Linux Kernel
    1. 5.1 Steps to Test
    2. 5.2 Measurements
  9. 6Results

Flicker-Free Transition

To achieve flicker-free transition from U-Boot Secondary Program Loader (SPL) to the U-Boot stage, preserve the image framebuffer and do not close the Display Subsystem (DSS) driver. To pass the framebuffer from the SPL stage to the U-Boot proper stage, a region in the memory is reserved and the same region is passed from the SPL stage to U-Boot proper using the bloblist, in the video_post_probe function. At the SPL stage, various parameters like framebuffer region, size, number of pixel columns (xsize ), and the number of pixel rows (ysize) are all stored in a blob. The blobs are reserved memory regions which contain information to be passed from one stage to another. When the initial setup sequence is running in the U-Boot proper stage, reserve_video API is called, which determines if video blob is present. If video blob is present, the Application Programming Interface (API) uses blob data from the previous stage which makes sure the same framebuffer region and parameters are set, thus keeping the splash image intact without any flicker across the stage. If blob is found, the DSS driver is not probed again, which prevents screen refresh.