我一直在努力让eMMC芯片在我的嵌入式Linux平台上运行。到目前为止,我已经完成了以下工作:
(1)在drivers / mmc / host中添加了自定义驱动程序 (2)编译内核和目标图像 (3)将图像加载到目标和启动板上
在启动过程中,我看到了这些:
.
mmcblk0: mmc0:0001 4YMD3R 3.64 GiB
mmc0: calculated max. discard sectors 4579328 for timeout 2684354 ms
mmcblk0boot0: mmc0:0001 4YMD3R partition 1 4.00 MiB
mmc0: calculated max. discard sectors 4579328 for timeout 2684354 ms
mmcblk0boot1: mmc0:0001 4YMD3R partition 2 4.00 MiB
.
.
mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0, sector 0
.
Buffer I/O error on device mmcblk0, logical block 0
.
mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x900
mmcblk0: retrying using single block read
.
mmcblk0boot1: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x900
mmcblk0boot1: retrying using single block read
.
mmcblk0boot1: unknown partition table
.
mmcblk0boot0: unknown partition table
启动后,这是/ proc / partitions:
的输出# cat /proc/partitions
major minor #blocks name
31 0 7824 mtdblock0
179 0 3817472 mmcblk0
179 16 4096 mmcblk0boot1
179 8 4096 mmcblk0boot0
任何人都可以告诉我以下内容:
在此先感谢,我对此非常陌生,我似乎无法在任何地方找到这些信息。
elDukae
答案 0 :(得分:0)
我的设备是否正常运行?
没有。由于您的设备中多次读取失败。也许你需要检查时间。
如何开始将数据写入userdata分区? (mmcbllk0安装失败)
如果安装失败。您无法访问此设备。 从“cat / proc / partitions”的结果中,您可以执行cmd来检查写入行为。
例如,dd if = dev / zero of = / dev / mmcblk0 bs = 512 offset = 200000 count = 10
如何创建更多通用分区?
您可以阅读通用分区流程图&在JEDEC标准中增强了用户数据区参数设置以获取详细信息。
如何创建更多(常规)分区?
您可以使用fdisk创建分区。
答案 1 :(得分:0)
感谢所有输入。以下是我能够了解的情况:
(1)读取失败:这是由于我板上的I / O和核心电压不正确造成的。 linux代码将自动转到eMMC设备支持的最高速度等级。在这种情况下,我不得不手动告诉linux驱动程序坚持较低的速度,因为这是错误的I / O和核心电压支持。
(2)分区:结果我不需要任何通用分区。读取错误修复后,我只是在/ dev / mmcblk0上运行fdisk并创建了常规分区
再次感谢!