IMX6ULL移植篇-EMMC与文件操作命令一

文章介绍了在UBoot环境下如何使用mmc命令来操作EMMC和SD卡,包括mmcinfo显示设备信息,mmcrescan扫描设备,mmclist列出设备,以及mmcdev切换当前设备等。默认情况下,EMMC会被设置为当前设备。

一.  EMMC与 SD卡

uboot 支持 EMMC SD 卡,因此也要提供 EMMC SD 卡的操作命令。
一般认为 EMMC SD 卡是同一个东西,所以没有特殊说明,本文统一使用 MMC 来代指 EMMC SD 卡。

uboot 中常用于操作 MMC 设备的命令为 mmc

二.   文件操作命令

mmc 命令是一系列的命令,其后可以跟不同的参数,输入 “?mmc命令即可查看 mmc 有关的命令。开发板uboot命令模式下输入命令 “?mmc
如下所示:
=> ? mmc 
mmc - MMC sub system

Usage:
mmc info - display info of the current MMC device
mmc read addr blk# cnt
mmc write addr blk# cnt
mmc erase blk# cnt
mmc rescan
mmc part - lists available partition on current mmc device
mmc dev [dev] [part] - show or set current mmc device [partition]
mmc list - lists available devices
mmc hwpartition [args...] - does hardware partitioning
  arguments (sizes in 512-byte blocks):
    [user [enh start cnt] [wrrel {on|off}]] - sets user data area attributes
    [gp1|gp2|gp3|gp4 cnt [enh] [wrrel {on|off}]] - general purpose partition
    [check|set|complete] - mode, complete set partitioning completed
  WARNING: Partitioning is a write-once setting once it is set to complete.
  Power cycling is required to initialize partitions after set to complete.
mmc bootbus dev boot_bus_width reset_boot_bus_width boot_mode
 - Set the BOOT_BUS_WIDTH field of the specified device
mmc bootpart-resize <dev> <boot part size MB> <RPMB part size MB>
 - Change sizes of boot and RPMB partitions of specified device
mmc partconf dev boot_ack boot_partition partition_access
 - Change the bits of the PARTITION_CONFIG field of the specified device
mmc rst-function dev value
 - Change the RST_n_FUNCTION field of the specified device
   WARNING: This is a write-once field and 0 / 1 / 2 are the only valid values.
mmc setdsr <value> - set DSR register value

1.   mmc info命令

mmc info 命令用于输出当前选中的 mmc info 设备的信息。存在 MMC的情况下。
输入如下:
=> mmc info
Device: FSL_SDHC
Manufacturer ID: 3
OEM: 5344
Name: SC16G
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 14.8 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes

2.   mmc recan 命令

mmc rescan 命令用于扫描当前开发板上所有的 MMC 设备,包括 EMMC SD 卡,输入
mmc rescan”即可。 如下所示:
=> mmc rescan
=> 

3.   mmc list 命令

mmc list 命令用于来查看当前开发板一共有几个 MMC 设备。

操作如下:

=> mmc list
FSL-SDHC: 0
FSL-SDHC: 1 (eMMC)

可以看出当前开发板有两个 MMC 设备:FSL_SDHC:0 FSL_SDHC:1 (eMMC),这是因
为我现在用的是 EMMC 版本的核心板,加上 SD 卡一共有两个 MMC 设备,FSL_SDHC:0 SD
卡,FSL_SDHC:1(eMMC)EMMC

默认会将 EMMC 设置为当前 MMC 设备,这就是为什么输入“mmc info”查询到的是 EMMC 设备信息,而不是 SD 卡。

4.  mmc dev命令

mmc dev 命令用于切换当前 MMC 设备,命令格式如下:

mmc dev [dev] [part] 

[dev] 用来设置要切换的 MMC 设备号,

[part] 是分区号。如果不写分区号的话默认为分区 0

例如,切换到 SD卡,如下:

=> mmc dev 0
switch to partitions #0, OK
mmc0 is current device

提供的引用中未提及野火imx6ull开发移植uboot的具体内容,但可根据通用的IMX6ULL开发板uboot移植思路给出个大致步骤: ### 1. 添加板子默认配置文件 可以参考100ask imx6ull开发移植NXP官方UBOOT的做法,复制configs目录下的默认的配置文件,如mx6ull_14x14_evk_emmc_defconfig为mx6ull_野火_defconfig,并进行相应修改 [^3]。 ### 2. 添加开发板对应的头文件 参考IMX6ULL开发板uboot移植学习记录,进入include/configs/目录,拷贝类似的头文件,如cp mx6ullevk.h mx6ull_野火_emmc.h ,然后修改头文件中的宏定义,将#ifndef __MX6ULLEVK_CONFIG_H #define __MX6ULLEVK_CONFIG_H 修改成#ifndef __MX6ULL_野火_EMMC_CONFIG_H #define __MX6ULL_野火_EMMC_CONFIG_H [^4]。 ### 3. 修改设备驱动的设备树 uboot在编译过程中,会对mx6ull_14x14_atk_emmc_defconfig以及各个包含的目录下的Kconfig进行编译,生成个.config文件。若要详细了解uboot编译过程,可查看韦东山关于uboot的教学视频:u-boot完全分析移植_哔哩哔哩_bilibili [^2]。 ### 4. 编译并烧写 编译完成后,会生成个u-boot-imx6ull14x14evk_sd.imx文件,使用命令sudo dd if=./u-boot-imx6ull14x14evk_sd.imx of=/dev/sdb bs=1k seek=1 conv=fsync 烧写到SD卡中,并设置开发板从SD卡启动 [^1]。 ```bash # 示例命令 # 复制配置文件 cp configs/mx6ull_14x14_evk_emmc_defconfig configs/mx6ull_野火_defconfig # 进入头文件目录 cd include/configs/ # 拷贝头文件 cp mx6ullevk.h mx6ull_野火_emmc.h # 编译 make mx6ull_野火_defconfig make # 烧写 sudo dd if=./u-boot-imx6ull14x14evk_sd.imx of=/dev/sdb bs=1k seek=1 conv=fsync ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值