本帖最后由 gztwdz4379 于 2025-10-31 09:05 编辑
前言: 两周前,眺望电子发布了最新RK3576-S核心板的预告,搭载LPDDR5和UFS这一组合引起了不少用户的关注,同时也收到不少关于存储搭配的疑问。本文结合内测调试经验以与客户需求为大家剖析其中关键点。 眺望电子RK3576-S核心板支持LPDDR5,考虑硬件复用性,核心板可选贴UFS和EMMC存储器颗粒,因此会衍生出四种配置场景:
如上四种场景均需软硬件协同修改,以下以最复杂的 “UFS 与 EMMC 共存且 EMMC 为系统盘” 场景为例,详解原理与操作方法。
一、问题描述
当 RK3576-S 核心板同时搭载 UFS 与 EMMC 时,会出现两个异常现象: 1、芯片首次上电,固件默认烧写至 UFS 而非 EMMC; 2、即使 UFS 烧写固件成功,系统上电仍无法启动,始终进入 maskrom 模式。
二、硬件分析
问题根源在于易被忽视的:BOOT启动项配置 SARADC_IN0_BOOT 专用于 SYSTEM BOOT 启动顺序的设置,不能用于其它功能,通过上下拉电阻分压采样得到的值,用来判断从哪个接口进行 BOOT,设置如下表:(Rup/Rdown 代表上、下拉电阻) 我司RK3576-S核心板SARADC_IN0_BOOT 引脚内部上下拉配置为Config 10状态,对应启动顺序为EMMC->SDMMC0->USB。 这就导致:若 EMMC 为空(未烧写固件),即使 UFS 已烧写固件,系统仍会因优先检测 EMMC 失败而进入 maskrom 模式。 若要设置UFS为系统磁盘,必须保证SYSTEM BOOT配置中UFS比EMMC的启动优先级高。硬件调整方法也很简单:根据下表更换上下拉电阻阻值。
对于场景【3】来说,光调整硬件可还不行,uboot也是关键。
三、Uboot分析
芯片进入烧写模式时,默认走usbplug的uboot。查看启动usbplug的启动log发现系统只扫描到UFS就进行启动了,并没有扫描EMMC。
定位到SDK/u-boot/arch/arm/mach-rockchip/usbplug.c文件中bootdev_rockusb_cmd函数会根据dev_list数组定义的顺序来依次对存储介质进行初始化等操作,如果扫描到对应的存储设备就会直接从该存储介质中启动,也就是将固件烧写到该存储介质中。 从dev_list数组可以看到初始化存储介质的顺序为SCSI(UFS)->MMC(EMMC)。
所以对于有UFS颗粒和EMMC颗粒的核心板,当扫描到UFS存储介质之后,就会退出循环,不再对EMMC等存储介质进行扫描。
最后将扫描到的存储介质类型和设备号组合成“rockusb 0 xxx x”命令,最终在board_init函数中运行此命令,将固件烧写到对应的存储中。
四、软件修改
要实现默认烧写固件到EMMC中而不是UFS中,需要让系统扫描到UFS后只做初始化,不退出循环,直到扫描到EMMC才退出循环,因此需要对bootdev_rockusb_cmd函数做以下修改:
修改后需要重新编译usbplug,以下操作均在u-boot目录下实现: - <font color="#000000">#编译usbplug
- ./make.sh CROSS_COMPILE=/home/talowe/talowe-rk3576-linux-v1.01/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- rk3576-usbplug
- #拷贝usbplug.bin到rkbin替换对应文件
- cp usbplug.bin ../rkbin/bin/rk35/rk3576_usbplug_v1.04.bin</font>
打包固件,以下操作均在SDK根目录下实现: - <font color="#000000">
- #重新编译uboot和loader
- ./build.sh uboot
- #打包整包固件
- ./build.sh updateimg</font>
五、验证
将打包生成的整包固件烧写,有以下打印证明固件被烧写到EMMC中:
如上则是针对同时存在UFS和EMMC,以EMMC为系统磁盘,UFS作为扩展存储器的软硬件完整修改方案了。掌握此逻辑后,可类比调整其他三种存储配置场景的软硬件参数。 工程师Tips 📢 🛡️ 1.文档中存储颗粒的品牌、料号可能随市场供应调整,以实际采购为准;
🚀 2. UFS 固件下载工具及操作指南,可联系我司客服人员获取;
🔋 3. RK3576-S 核心板为标准品,建议选型时明确存储配置,避免自行调整导致售后问题。
产品预告Tips 📢 2025年11月7日,眺望电子Core-RK3576-S核心板即将上市,敬请期待! 现在行动,抢先锁定三大特权: ①首批内测开发者名额(限10位) ② 专属技术方案定制礼包 ③ 早鸟采购折扣(仅限本月)
|