在Amlogic S9xxx Armbian项目中适配RK3399 HD9901开发板的经验分享
硬件背景介绍
RK3399 HD9901是一款基于Rockchip RK3399处理器的开发板,与Smart AM40开发板在硬件设计上较为相似。该开发板采用了三星KLMAG1JETD-B041 eMMC芯片,工作电压为1.8V/3.3V,与AM40开发板使用的闪迪eMMC芯片(1.8V/3.0V)在电压规格上存在差异。
适配过程中遇到的问题
在尝试将Amlogic S9xxx Armbian项目移植到HD9901开发板时,遇到了eMMC存储的只读问题。具体表现为系统启动后,eMMC存储设备被挂载为只读模式,无法进行写入操作。
通过分析内核日志,可以观察到两种不同的启动情况:
正常启动时的日志显示:
mmc0: new HS400 Enhanced strobe MMC card at address 0001
mmcblk0: mmc0:0001 AJTD4R 14.6 GiB
mmcblk0: p1 p2
而出现只读问题时的日志则包含GPT分区表错误信息:
GPT:Primary header thinks Alt. header is not at the end of the disk.
GPT:6324223 != 30535679
GPT:Alternate GPT header not at the end of the disk.
GPT: Use GNU Parted to correct GPT errors.
问题分析与解决方案
经过深入分析,发现问题根源在于电源管理配置。HD9901开发板使用的eMMC芯片需要3.3V工作电压,而原AM40开发板的设备树配置中eMMC供电电压设置为3.0V,导致供电不足,从而引发存储设备的只读问题。
解决方案是调整设备树中的电源管理配置,将vcc_sd
的电压值从原来的0x2dc6c0
提高到0x325aa0
。这一调整确保了eMMC芯片获得足够的工作电压,解决了只读问题。
适配经验总结
-
设备树配置的重要性:不同开发板即使使用相同主控芯片,外围电路设计差异也可能导致兼容性问题。设备树配置需要根据具体硬件进行调整。
-
电源管理需谨慎:存储设备的供电参数必须与硬件规格严格匹配,电压不足可能导致设备工作异常。
-
日志分析是关键:通过仔细分析内核启动日志,可以快速定位问题根源,节省调试时间。
-
测试验证方法:适配过程中需要进行充分的测试验证,包括不同固件版本的兼容性测试,以确保解决方案的可靠性。
最终适配成果
经过多次调试和验证,最终成功为HD9901开发板制作了可用的Armbian固件。该固件解决了eMMC只读问题,各项功能均正常工作,为开发者提供了稳定的开发环境。
这一适配经验不仅解决了HD9901开发板的具体问题,也为其他Rockchip RK3399平台开发板的适配工作提供了有价值的参考。开发者在进行类似硬件适配时,可以借鉴这一思路和方法,提高适配效率和成功率。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考