AM335X将kernel中液晶屏的参数设置到uboot环境变量的解决方法

原创 2025-01-24 12:10:00

  AM335X将kernel中液晶屏的参数设置到uboot环境变量的解决方法

  1. 原理

  lcd参数默认在uboot和kernel中进行配置,这样做有一点不好的就是缺少灵活性。现在将lcd参数分离出来,以uboot环境变量的方式单独保存在flash里,在uboot和kernel初始化lcd时,从环境变量中读取lcd参数并进行配置,这样就不需要因为换屏而重新编译uboot和kernel,只需配置uboot下的lcd的环境变量即可。

图一 液晶屏显示参数-宽770.jpg

图一 液晶屏显示参数

  2. UBOOT下实现lcd参数分离的具体方法

  LCD环境变量配置在config-lcd-env-RecordedScript.vbs文件中

LCD参数

环境变量名称

取值范围

Name

ename

(string)   !NULL

Refresh

erefresh

(u32)   > 1

Pixels   Per Line

ewidth

(u32)   > 1

Lines   Per Panel

eheight

(u32)   > 1

Horizontal   Sync Pulse Width

ehsw

(u32)   > 1

Horizontal   Front Porch

ehfp

(u32)   > 1

Horizontal   Back Porch

ehbp

(u32)   > 1

Vertical   Sync Pulse Width

evsw

(u32)   > 1

Vertical   Front Porch

evfp

(u32)   > 1

Vertical   Back Porch

evbp

(u32)   > 1

Invert   Pixel Clock

eipc

(bool)   01

Invert   Hsync

eihs

(bool)   01

Invert   Vsync

eivs

(bool)   01

Program   HSYNC/VSYNC Rise or Fall

esync

(bool)   01

  具体请参考RASTER_TIMING_0,RASTER_TIMING_1,RASTER_TIMING_2寄存器

  3. LCD初始化代码在0001-sm-uboot-lcd-logo.patch文件中

  3.1 增加CONFIG_SHOW_LOGO配置选项

  参考include/configs/am335x_evm.h

  3.2 修改LCD管脚配置

  参考board/ti/am335x/mux.c

  3.3 时钟初始化时增加LCD部分

  参考arch/arm/include/asm/arch-ti81xx/cpu.h

  3.4 获取LCD参数

  参考common/show_logo.c中get_fb_param()函数

  3.5 初始化LCD

  参考common/show_logo.c中fb_init()和dma_init()函数

  4. KERNEL下实现lcd参数分离的具体方法

  4.1 LCD环境变量配置

  ●配置lcdcfg环境变量,参考config-lcd-env-RecordedScript.vbs

  ●将lcdcfg变量添加到内核启动参数中,参考boot-from-nand-RecordedScript.vbs

  4.2 LCD初始化代码在0001-sm-kernel-lcd-logo.patch文件中

  ●添加CONFIG_FB_USE_ENV配置选项,参考drivers/video/Kconfig

  ●获取LCD参数及LCD初始化,参考drivers/video/da8xx-fb.c

  维芯科作为TI的官方合作伙伴,专业于TI MPU处理器多年,我司的AM335x核心板,基于TI AM335x处理器设计的工业级核心板,广泛用于各种串口服务器,多串口网关等应用场景,有需要欢迎来询。


相关产品>

  • T153工控板

    ●CPU:T153,4核处理器,最高主频1 6GHz●MCU:600-MHz RISC-V E907●RAM:256MB 512MB 1GB DDR3●NAND:256MB 512MB NAND Flash●eM


    了解详情
    T153工控板
  • 全志T153核心板

    ●CPU:T153,4核处理器,最高主频1 6GHz●MCU:600-MHz RISC-V E907●RAM:256MB 512MB 1GB DDR3...


    了解详情
    全志T153核心板
  • RK3588工控板

    ●CPU:Rockchip RK3588●架构:四核Cortex-A76 + 四核Cortex-A55●NPU:6TOPS●内存:4GB 8GB 16GB LPDDR4x●Flash:32GB


    了解详情
    RK3588工控板
  • 瑞芯微RK3588核心板

    ●CPU:RK3588 RK3588J●架构:四核Cortex-A76 +四核Cortex-A55●NPU:6TOPS●RAM:4GB(默认) 8GB 16GB LPDDR4x●ROM:32GB(默认


    了解详情
    瑞芯微RK3588核心板