AI老铁 · 2020年07月06日

海思AI芯片(Hi3519A/3559A)(六)Uboot和 kernel不能正常启动问题的解决

本系列为华为海思海思AI芯片(Hi3519A/3559A)方案学习系列之六,系列文章请见底部。这篇文章将为分享下No MMC device available和can't get kernel image两个问题的解决方案。
作者:ltshan139

No MMC device available和can't get kernel image这两个问题分别是和uboot和kernel load相关,下面分别谈谈。 

找不到MMC device

在正常的uboot下面,通过eMMC烧写命令和tftp将某个版本的uboot写道flash里面,重启后遇到以下问题:
1.png

一番折腾后,定位到该版本uboot不支持emmc device。解决办法如下:

1)编译支持emmc device驱动的uboot,其配置文件使用如下:

cp configs/hi3519av100_mmc_defconfig .config

2)用hitool将新编译的支持MMC的uboot直接烧写到MMC里面。如下所示
2.png

注意事项:

a)通过串口方式烧写,记得要先把putty等串口软件关掉。
b)选取 "Burn eMMC or UFS" tab页面
c)勾选fastboot,选择uboot 二进制文件  以及所占总长度
d)烧写时要记得断电和上电一次,这个consol里面会有操作提示,如下所示:
3.png
e)烧写成功后, 会有如下打印提示
4.png

kernel加载不成功

uboot正确启动后发现不能正常加载kernel,其现象如下:
5.png

解决步骤如下:

1)编译支持emmc的kernel

cp arch/arm/configs/hi3519av100_smp_emmc_defconfig .config

2) 通过tftp将新的kernel烧写到flash

3)更新uboot的环境变量。当然里面的参数值要根据自己板子的实际情况进行更改。

a)        

setenv bootargs 'mem=256M console=ttyAMA0,115200 root=/dev/mmcblk0p3                                                                              rw rootfstype=ext4 blkdevparts=mmcblk0:1M(boot),4M(kernel),128M(rootfs)'

 

b)

setenv bootcmd 'mmc read 0 0x22000000 800 2000; bootm 0x22000000'

c)  saveenv 

d)reset

至此,uboot和kernel都能够正常启动。 

版权声明:本文为CSDN博主「ltshan139」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/avideointerfaces/article/details/88807187



海思AI芯片系列文章



更多海思AI芯片方案学习笔记欢迎关注海思AI芯片方案学习

推荐阅读
关注数
855
内容数
40
海思AI芯片(Hi3519A/3559A)方案学习系列笔记,欢迎关注。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息