ZHCAEZ2 February 2025 AM62P
本节描述了实现早期启动屏幕以及从 SBL 阶段到 Linux 内核的无闪烁切换所需的步骤。MCU+ SDK 中的 DSS 共享示例将镜像的早期启动屏幕与 SBL 集成在一起,并支持 OSPI 引导介质、器件管理器和处理器间通信功能。引导加载程序、IPC 和显示功能会在独立的任务中运行。显示任务通过 Alpha 混合显示启动画面,并最终切换到显示共享任务,在该任务中,信号帧会快速来回移动。该示例使用了 Falcon 引导,这意味着跳过了中间的 U-Boot 阶段,SBL 直接启动 Linux 镜像。本 DSS 示例经过一些修改后用于演示。
/board-support 下的 ti-linux-kernel 目录按照以下步骤进行修改。在对 ti-linux-kernel 进行修改后,生成设备树 Blob (DTB) 和镜像文件。这些文件稍后用于创建 linux.appimage,该文件在 RTOS 示例中用于在 A53 内核上运行 Linux。linux.appimage 是使用 Falcon 引导模式构建的。因此,将 bootargs 信息包含在所选节点下的 k3-am62p5-sk.dts 文件中:bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk1p2 rw rootfstype=ext4 rootwait";ti-u-boot 使用帧缓冲区区域元数据动态更新 Linux 内核器件树,并将该区域标记为在 Linux 器件树中保留,如下所示:framebuffer: framebuffer@ff700000 {
reg = <0x00 0xff700000 0x00 0x008ca000>;
no-map;
};simple-framebuffer 节点的状态设置为“oke”,如以下代码所示:framebuffer0: framebuffer@0 {
compatible = "simple-framebuffer";
power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>,
<&k3_pds 243 TI_SCI_PD_EXCLUSIVE>,
<&k3_pds 244 TI_SCI_PD_EXCLUSIVE>;
clocks = <&k3_clks 186 6>,
<&dss0_vp1_clk>,
<&k3_clks 186 2>;
display = <&dss0>;
reg = <0x00 0xff700000 0x00 0x008ca000>;
width = <1920>;
height = <1200>;
stride = <(1920 * 4)>;
format = "x8r8g8b8";
};arch/arm64/configs/defconfig 中删除以下配置选项来手动禁用直接渲染管理器 (DRM) 帧缓冲器设备仿真 功能,如下所述:# CONFIG_DRM_FBDEV_EMULATION 未设置k3-am62p5-sk-microtips-mf101hie-panel.dtbo 应用到 DTB 文件,以支持在 OLDI 面板上的显示。使用以下命令:fdtoverlay -i ./arch/arm64/boot/dts/ti/k3-am62p5-sk.dtb ./arch/arm64/boot/dts/ti/k3-am62p5-sk-microtips-mf101hie-panel.dtbo -o ./../../board-support/prebuilt-images/am62pxx-evm-display-cluster/k3-am62p.dtb/board-support/prebuilt-images/am62pxx-evm-display-cluster 文件夹:k3-am62p.dtb(在上一步中创建)arch/arm64/boot//)examples/drivers/dss/dss_display_share/dss_display_share.c 文件中,删除 DispApp_splashThread() 和 DispApp_displayShareThread() 的使用和定义
图 5-2 代码更改 1
图 5-3 代码更改 2
图 5-4 代码更改 3tools/boot/sbl_prebuild/am62px-sk/default_sbl_ospi_linux_hs_fs_splash_screen.cfg 中编译镜像ti-img-rogue-driver。采用以下步骤:make ti-img-rogue-driver (Value RGX_BVNC="36.53.104.796" in Rules.make)sudo make ti-img-rogue-driver_install DESTDIR=/media/aparna/rootBOOTMODE [ 8 : 15 ] (SW5) = 0000 0000BOOTMODE [ 0 : 7 ] (SW4) = 1100 1110