mapleft的笔记 https://bbs.21ic.com/?41444 [收藏] [复制] [RSS]

日志

nuc980 UBOOT SD nand / emmc /SD卡 启动设置

已有 1089 次阅读2020-2-25 16:26 |个人分类:工蚁手记|系统分类:兴趣爱好

由于新唐 W25N01GVxxIGIT SPI NAND 的1 bit ECC 的鸡肋原因, 决定使用MKDV1GCL-NE SD NAND 作为启动盘

先进入UBOOT 源码, make menuconfig 
 
关闭SPL启动( 不需要SPL启动, CPU 直接从SD NAND 加载UBOOT)

打开 MMC命令 并且关闭NAND 命令, 就是在UBOOT命令行,关闭掉NAND 操作命令,打开EMMC命令

在驱动菜单中开启EMMC


关闭不再使用的NAND 及SPI NAND 驱动

不是老莫有洁癖非得去掉这个2个NAND 模块。 但是去掉后UBOOT的体积由350多KB 减 少到 160多KB; 启动加载速度飞快,你还不心动么?

接下来需要修改/usr/nuc980/u-boot-2016.11/include/configs/nuc980_iot.h的配置文件
关闭NAND 的配置
/*#define CONFIG_NUC980_HW_CHECKSUM */
/*#define CONFIG_SYS_USE_SPIFLASH  */
/*#define CONFIG_SYS_USE_NANDFLASH */
/*#define CONFIG_ENV_IS_IN_NAND    */
下面的几行的支持EMMC 的环境变量;
#define CONFIG_SYS_MMC_ENV_DEV                0
#define CONFIG_ENV_IS_IN_MMC 
#define CONFIG_ENV_OFFSET       0x80000
#define CONFIG_ENV_SIZE         0x20000
#define CONFIG_ENV_OFFSET_REDUND        (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)

特别说明下CONFIG_SYS_MMC_ENV_DEV                0
这个是MMC 设备, 这个是UBOOT 系统扫描出的MMC卡设备索引, MMC的硬件是挂载在MMC1上的, 不要想当然把设备定义为1;
人家UBOOT是根据实际硬件扫描出来,如果只有1个MMC卡,无论你硬件挂载在那个口, CONFIG_SYS_MMC_ENV_DEV都未0.
只有挂载了2个MMC设备时,才有机会设置为0 或者是1
这个不对的话,环境变量不能存储;

UBOOT 文件烧写
               
 用新唐祖传的烧写软件烧写UBOOT文件Image execute address 要设置为e0000 这个是UBOOT编译的链接地址
/usr/nuc980/u-boot-2016.11/include/configs/nuc980_iot.h 有定义这个; 这个不能搞错,否则你写进入后电路板啥反应也没有,你就等着对住电路板发呆吧

Image start offset 是MMC卡烧写的地址,这个是固定的,CPU上电后从400处加载UBOOT;



QQ交流群:761781147



路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)