kernel:allwinner-r40-tina-sd卡启动不识别核心板emmc

此问题的发现源于工厂测试r40核心板的emmc

通过命令lsblk发现并没有核心板的部分。

 

解决思路以及方法:

首先查看最终生成的dts。位置是:out/targetxxx/images/.sunxi.dts

sd0是sd卡

sd2是核心板的emmc

发现sd0-3四块的status都是ok

 

其次想办法打开PORC_DEVICETREE,这是一个kernel的选项

 

打开以后就可以在/proc里面查看devicetree了。

最后发现 /proc下的devicetree里面的mmc的status被disabled了

================================================

以上现象得出结论:即使我在dts文件里面把他打开了。在img生成以后的烧录以及uboot启动过程中的某个阶段,又因为代码逻辑的判断把sdc2给disabled了。

操作方式:在uboot的过程中通过fdt命令把他打开。

 

在u-boot里面
env set fdtcmd fdt set /soc/sdmmc@01C11000 status okay
env set bootcmd run fdtcmd setargs_mmc boot_normal
env set mmc_root=/dev/mmcblk1p7
env set partition=boot-res@mmcblk1p2:env@mmcblk1p5:boot@mmcblk1p6:rootfs@mmcblk1p7:rootfs_data@mmcblk1p8:private@mmcblk1p9:recovery@mmcblk1p10:misc@mmcblk1p11:UDISK@mmcblk1p1
setargs_mmc=setenv bootargs enforcing=1 earlyprintk=sunxi-uart,0x01c28000 initcall_debug=0 console=ttyS0,115200 loglevel=4 root=/dev/mmcblk1p7 rootwait init=/sbin/init partitions=boot-res@mmcblk1p2:env@mmcblk1p5:boot@mmcblk1p6:rootfs@mmcblk1p7:rootfs_data@mmcblk1p8:private@mmcblk1p9:recovery@mmcblk1p10:misc@mmcblk1p11:UDISK@mmcblk1p1 cma=256M
env save
env set 

至此,sd卡启动的时候能够正常识别核心板emmc并且全部文件系统挂在在sd卡上面。



 

你可能感兴趣的:(kernel,linux,kernel,SD卡启动)