您尚未登录。

#1 2020-06-15 11:05:56

路人甲
会员
注册时间: 2017-09-07
累计积分: 191

请教大家,A33 接了 eMMC, Linux识别到 boot0, boot1 是什么操作?eMMC特有的分区?

请教大家,A33 接了 eMMC, Linux识别到 boot0, boot1 是什么操作?eMMC特有的分区?

[    1.585115] mmc2: new DDR MMC card at address 0001
[    1.591821] mmcblk2: mmc2:0001 8GTF4R 7.28 GiB
[    1.597900] mmcblk2boot0: mmc2:0001 8GTF4R partition 1 4.00 MiB
[    1.605394] mmcblk2boot1: mmc2:0001 8GTF4R partition 2 4.00 MiB
[    1.613083]  mmcblk2: p1 p2


通过TF卡烧录 eMMC, 然而重新上电并没有反应:

dd if=/dev/mmcblk0 of=/dev/mmcblk2 bs=1M count=300

离线

#2 2020-06-15 11:07:39

路人甲
会员
注册时间: 2017-09-07
累计积分: 191

Re: 请教大家,A33 接了 eMMC, Linux识别到 boot0, boot1 是什么操作?eMMC特有的分区?

https://www.cnblogs.com/helloworldtoyou/p/6053460.html

在同事的帮助下才知道emmc有boot1,boot2以及RPMB(Replay Protected Memory Block),GPAP(General Purpose Area Partitions,最多可以有4个),UDA(User Data Area)分区。而我们一般只知道UDA分区。

我们通常对emmc进行分区,也只是对UDA分区。boot1,boot2,RPMB分区是固定的,我们并不能控制器大小和分区格式。如下图所示(图片摘自网络):

....

这坑有点深了, 要研究一下了。

离线

#3 2020-06-15 11:18:24

歌以咏志
会员
注册时间: 2019-09-21
累计积分: 193

Re: 请教大家,A33 接了 eMMC, Linux识别到 boot0, boot1 是什么操作?eMMC特有的分区?

http://trac.gateworks.com/wiki/MMC

卡特定数据(CSD)寄存器(EXT_CSD [179])用于配置加电时选择的分区。可以在Linux中通过mmc-utils应用程序进行配置,也可以在U-Boot中通过mmc partconf命令进行配置(请参见下文)。

离线

#4 2020-06-15 11:19:24

路人甲
会员
注册时间: 2017-09-07
累计积分: 191

Re: 请教大家,A33 接了 eMMC, Linux识别到 boot0, boot1 是什么操作?eMMC特有的分区?

歌以咏志 说:

http://trac.gateworks.com/wiki/MMC

卡特定数据(CSD)寄存器(EXT_CSD [179])用于配置加电时选择的分区。可以在Linux中通过mmc-utils应用程序进行配置,也可以在U-Boot中通过mmc partconf命令进行配置(请参见下文)。

感谢提醒, buildroot找到工具了:

# BR2_PACKAGE_MMC_UTILS is not set

离线

#5 2020-06-15 11:31:41

路人甲
会员
注册时间: 2017-09-07
累计积分: 191

Re: 请教大家,A33 接了 eMMC, Linux识别到 boot0, boot1 是什么操作?eMMC特有的分区?

路人甲 说:

感谢提醒, buildroot找到工具了:

# BR2_PACKAGE_MMC_UTILS is not set

https://www.embeddedartists.com/wp-content/uploads/2020/04/Working_with_eMMC.pdf


https://manpages.debian.org/testing/mmc-utils/mmc.1.en.html

还是迷路了, 不知道用哪个子命令。

离线

#6 2020-06-15 11:38:24

路人甲
会员
注册时间: 2017-09-07
累计积分: 191

Re: 请教大家,A33 接了 eMMC, Linux识别到 boot0, boot1 是什么操作?eMMC特有的分区?

找到命令了, 可能是这个: mmc bootpart 1 1 /dev/mmcblk2

现在问题来了, 怎么把 u-boot 烧到 boot0 ?

离线

#7 2020-06-15 11:46:16

路人甲
会员
注册时间: 2017-09-07
累计积分: 191

Re: 请教大家,A33 接了 eMMC, Linux识别到 boot0, boot1 是什么操作?eMMC特有的分区?

找到一个A64的帖子参考, 先围观一下: https://whycan.cn/t_4437.html

离线

#8 2020-06-19 11:58:02

路人甲
会员
注册时间: 2017-09-07
累计积分: 191

Re: 请教大家,A33 接了 eMMC, Linux识别到 boot0, boot1 是什么操作?eMMC特有的分区?

http://trac.gateworks.com/wiki/MMC
https://www.cnblogs.com/Cqlismy/p/12214305.html

# set boot partition to boot0
mmc bootpart enable 1 0 /dev/mmcblk2
# set boot partition to boot1
mmc bootpart enable 2 0 /dev/mmcblk2
# set boot partition to user
mmc bootpart enable 7 0 /dev/mmcblk2

上面三个执行任意一个, 然后再烧录eMMC:

dd if=/dev/mmcblk0 of=/dev/mmcblk2 bs=1M count=200

均不能启动, 这个eMMC有点难度啊。

离线

#9 2020-06-19 14:29:07

路人甲
会员
注册时间: 2017-09-07
累计积分: 191

Re: 请教大家,A33 接了 eMMC, Linux识别到 boot0, boot1 是什么操作?eMMC特有的分区?

翻遍网络,终于找到写boot0和boot1的方法了:

这样就可以为所欲为写boot0:

echo 0 > /sys/block/mmcblk2boot0/force_ro

dd if=/dev/zero of=/dev/mmcblk2boot0 bs=1M count=4

这样就可以为所欲为写boot1:

echo 0 > /sys/block/mmcblk2boot1/force_ro

dd if=/dev/zero of=/dev/mmcblk2boot1 bs=1M count=48

我这块eMMC boot0 最大就4M, boot1 最大48M, 根据命令行反馈推测的:

# dd if=/dev/zero of=/dev/mmcblk2boot0 bs=1M count=5
dd: error writing '/dev/mmcblk2boot0': No space left on device
5+0 records in
4+0 records out

# dd if=/dev/zero of=/dev/mmcblk2boot2 bs=1M count=50
dd: error writing '/dev/mmcblk2boot2': No space left on device
50+0 records in
49+0 records out

离线

#10 2020-08-04 11:28:05

jkl
会员
注册时间: 2019-11-18
累计积分: 155

Re: 请教大家,A33 接了 eMMC, Linux识别到 boot0, boot1 是什么操作?eMMC特有的分区?

请问一下楼主,您这个问题解决了吗,我现在遇到跟你同样的问题????

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn