OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9257|回复: 8

Uboot 是如何设置EMMC 和SD卡启动的参数的

[复制链接]

190

主题

401

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1289
金钱
1289
注册时间
2014-6-15
在线时间
143 小时
发表于 2021-5-20 21:31:22 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 wang12zhe 于 2021-5-21 10:28 编辑

玩了一段时间的板子,我认为从EMMC/SD卡/Nand启动用的是同一个Uboot镜像,
我的问题是:   
   1. 在EMMC和SD卡启动的时候uboot的环境变量里mmcdev和mmcpart 是在哪里设置的 ?
   2. Uboot下一个变量的最大长度是多少,如果太长,会把后边的变量覆盖吗?例如findfdt=if test $fdt_file = undefined; then if test $board_name = EVK && test $board_rev = 9X9; then setenv fdt_file imx6ull-9x9-evk.dtb; fi; if test $board_name = EVK && test $board_rev = 14X14; then setenv fdt_file imx6ull-14x14-evk.dtb; fi; if test $fdt_file = undefined; then echo WARNING: Could not determine dtb to use; fi; fi;
      这里的findfdt是一个变量,这个变量的值是字符串,那么最长可以有多少个字符?




最佳答案

查看完整内容[请看2#楼]

在EMMC和SD卡启动的时候uboot的环境变量里mmcdev和mmcpart 是在哪里设置的 ?-----这个是在Uboot源码里哦,是要分析一下uboot源码的,楼主可以看看 include/configs/mx6ull_alientek_emmc.h 这个文件,这些宏定义一层一层剥离开来就分析出是怎么回事了。 关于环境变量长度的话,在uboot源码的common目录下是和环境变量相关的文件,看到command、env_字眼的都是和环境变量有关的 可以先看看env_common.c这个文件,看 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

890

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2390
金钱
2390
注册时间
2019-9-25
在线时间
397 小时
发表于 2021-5-20 21:31:23 | 显示全部楼层
本帖最后由 仰望星空之云 于 2021-9-15 12:30 编辑

在EMMC和SD卡启动的时候uboot的环境变量里mmcdev和mmcpart 是在哪里设置的 ?-----这个是在Uboot源码里哦,是要分析一下uboot源码的,楼主可以看看 include/configs/mx6ull_alientek_emmc.h 这个文件,这些宏定义一层一层剥离开来就分析出是怎么回事了。

6.png
5.png


关于环境变量长度的话,在uboot源码的common目录下是和环境变量相关的文件,看到command、env_字眼的都是和环境变量有关的
9.png
可以先看看env_common.c这个文件,看到ENV_SIZE这个:
1.png
然后去找这个ENV_SIZE这个,在include/environment.h下看到:
#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
# define ENV_HEADER_SIZE        (sizeof(uint32_t) + 1)

#ifdef CONFIG_ENV_AES
#define ENV_SIZE ((CONFIG_ENV_SIZE - ENV_HEADER_SIZE) & ~(16 - 1))
#else
#define ENV_SIZE (CONFIG_ENV_SIZE - ENV_HEADER_SIZE)
#endif
2.png

再在mx6ull_alientek_emmc.h下看到
#define CONFIG_ENV_SIZE                 SZ_8K
上面的 CONFIG_ENV_SIZE 也就是8K。sizeof(uint32_t) 这些我们可以先不算,先不管,看到这里大概知道可能环境变量长度可能有8K的样子(这里只是推断大概的)
不过呢串口软件能输入的字符串长度有限制,这个根据自己使用的软件来,不能一次输入8k的字符串,有的可以输入512个字符,不过这些软件应该可以设置可以输入的字符长度

关于上面的源码,我没有全部分析完毕,我就大概看了几个文件,大概知道差不多是这么大,但是不准确的,楼主感兴趣的话,可以将其分析一遍就可以得出确切的结论了。也可以试试自己设置一个变量,设置长一些看看(PS:能输入多长和串口软件的设置有关,我这里全部的命令能输入进去就512个字符)
10.png












回复

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-8-29
在线时间
12 小时
发表于 2021-9-4 15:06:32 | 显示全部楼层
正点原子官方没解决问题的吗?只管卖板子??
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2021-9-6 02:16:12 | 显示全部楼层
arminker 发表于 2021-9-4 15:06
正点原子官方没解决问题的吗?只管卖板子??

可以去找我们淘宝技术支持。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2021-7-25
在线时间
6 小时
发表于 2021-9-11 16:15:28 | 显示全部楼层
本帖最后由 瓦达 于 2021-9-11 16:20 编辑



个人觉得见解,勿喷
去分析Uboot源码最好不过,所有答案都在uboot源码里。如果懒得分析源码直接就上来要答案,回答问题的人就像是个工具人,问问题的人就像是个只为了要答案的人,不自己去动手,没有收获。感觉linux那么多东西,也回答不完所有的问题。
回复

使用道具 举报

190

主题

401

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1289
金钱
1289
注册时间
2014-6-15
在线时间
143 小时
 楼主| 发表于 2021-9-11 22:08:53 | 显示全部楼层
瓦达 发表于 2021-9-11 16:15
个人觉得见解,勿喷
去分析Uboot源码最好不过,所有答案都在uboot源码里。如果懒得分析源码直接就上来 ...

如果每个人遇到问题都去闷头看代码,要论坛干嘛?要技术支持干嘛
回复

使用道具 举报

0

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2021-7-25
在线时间
6 小时
发表于 2021-9-15 10:32:51 | 显示全部楼层
本帖最后由 瓦达 于 2021-9-15 10:39 编辑
wang12zhe 发表于 2021-9-11 22:08
如果每个人遇到问题都去闷头看代码,要论坛干嘛?要技术支持干嘛


我有强迫症
关键是像这种问题真的就是去翻翻源码就有答案了。。。。不必别人给你指出来,我只是建议一个学习方法。。。。你不喜欢我说的就当做看不见呗。。。。视而不见呗
回复

使用道具 举报

70

主题

6698

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12692
金钱
12692
注册时间
2012-11-26
在线时间
3711 小时
发表于 2021-9-15 10:43:12 | 显示全部楼层
瓦达 发表于 2021-9-15 10:32
我有强迫症
关键是像这种问题真的就是去翻翻源码就有答案了。。。。不必别人给你指出来,我只是建议 ...

很多人都是等着喂的,还要嚼好了喂,不喂就是有罪
学无止境
回复

使用道具 举报

0

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2021-7-25
在线时间
6 小时
发表于 2021-9-15 12:06:46 | 显示全部楼层
本帖最后由 瓦达 于 2021-9-15 13:42 编辑
jermy_z 发表于 2021-9-15 10:43
很多人都是等着喂的,还要嚼好了喂,不喂就是有罪


有的人就是这样的,看看前面个别的发言,我个人觉得有点无语几句话就能逼别人给答案,我看到觉得有点那啥了才发表自己的观点,,,我是没有恶意的,我只是觉得尽量自己自主学习,没必要等别人给答案,类似这种问题大不了打开ubuntu,打开源码,翻一番就有结果了

这里我不说了,可能每个人学习方法不一样吧,有的人一有问题就是等答案,有的人是先自己研究一番,看不懂了会发出来和大家讨论,,,我只是逛帖子看到了多说了两句,,,我自己不应该多说话,这样可能会引起一些不好的讨论,大家看到忽视我这种评论即可吧。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 16:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表