前言:
两周前,眺望电子发布了最新RK3576-S核心板的预告,搭载LPDDR5和UFS这一组合引起了不少用户的关注,同时也收到不少关于存储搭配的疑问。本文结合内测调试经验以与客户需求为大家剖析其中关键点。
眺望电子RK3576-S核心板支持LPDDR5,考虑硬件复用性,核心板可选贴UFS和EMMC存储器颗粒,因此会衍生出四种配置场景:

空贴UFS,LPDDR5+EMMC配置;
空贴EMMC,LPDDR5+UFS配置;
同时存在UFS和EMMC,以EMMC为系统磁盘,UFS作为扩展存储器;
同时存在UFS和EMMC,以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目录下实现:
#编译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替换对应文件cpusbplug.bin ../rkbin/bin/rk35/rk3576_usbplug_v1.04.bin
打包固件,以下操作均在SDK根目录下实现:
#重新编译uboot和loader./build.sh uboot
#打包整包固件./build.sh updateimg
五、验证
将打包生成的整包固件烧写,有以下打印证明固件被烧写到EMMC中:

如上则是针对同时存在UFS和EMMC,以EMMC为系统磁盘,UFS作为扩展存储器的软硬件完整修改方案了。掌握此逻辑后,可类比调整其他三种存储配置场景的软硬件参数。
1.文档中存储颗粒的品牌、料号可能随市场供应调整,以实际采购为准;
2. UFS 固件下载工具及操作指南,可联系我司客服人员获取;
3. RK3576-S 核心板为标准品,建议选型时明确存储配置,避免自行调整导致售后问题。
-
存储
+关注
关注
13文章
4708浏览量
89629 -
核心板
+关注
关注
6文章
1350浏览量
31805 -
rk3576
+关注
关注
1文章
230浏览量
1392
发布评论请先 登录
全场景适配:RK3576核心板的行业应用价值图鉴
EAI3576-Core-T(RK3576 核心板)产品数据全解
新品预告 | LPDDR5,小尺寸RK3576-S工业级核心板即将来袭
瑞芯微RK3576与RK3576S有什么区别,性能参数配置与型号差异解析
瑞芯微RK3576核心板规格书,具体参数与配置信息,B2B连接器封装,触觉智能IDO-SOM7608-V1
适配多种系统,米尔瑞芯微RK3576核心板解锁多样化应用
米尔RK3576核心板适配多种系统,解锁多样化应用

突破RK3576-S核心板存储限制:UFS/EMMC双存储启动逻辑剖析
评论