首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Petalinux

    MPSoc如何固定EMMC的索引(mmc0mmc1 index)

    一、需求/问题 MPSoc器件,如果2个SD Controller全部使能了,在同一块硬件同一个软件版本,硬件反复上电重启,uboot或者linux下的mmc index有一定概率会发生变化:大部分情况下 emmc是mmc0或者mmcblk0,但是在某次重启有可能emmc 变成了mmc1或者mmcblk1,这种情况会导致Linux寻找内核镜像或者文件系统过程中出现错误,导致启动失败。 二、Uboot下index的来源: 2.1 emmc index使用过程 我们看下mmc 的index是从哪里获取的: 系统启动过程中会有一个默认打印: MMCmmc@ff160000: 0, mmcmmc_bind过程中,调用了blk_create_device函数: 最终index赋值给了blk_desc的devnum 三、Linux下mmcblkX的index查找使用过程: 3.1 mmc driver的注册过程: sdhci_arasan_probe -->sdhci_pltfm_init-->mmc_alloc_host 可以看到mmc的index也来源于设备树的mmc 的别名。

    49310编辑于 2024-12-02
  • 来自专栏linux驱动个人学习

    mmc core(第六章)——mmc core主模块

    一、说明 1、mmc core概述 mmc core主模块是mmc core的实现核心。也是本章的重点内容。 对应代码位置drivers/mmc/core/core.c。 二、API总览 1、mmc core初始化相关 mmc_init & mmc_exit (模块内使用) 2、mmc host的管理和维护相关 mmc_claim_host & mmc_try_claim_host & mmc_release_host (模块内使用) mmc_power_up & mmc_power_off mmc_start_host & mmc_stop_host mmc_power_save_host ) mmc_hw_reset & mmc_hw_reset_check & mmc_card_awake & mmc_card_sleep mmc_card_is_prog_state mmc_can_erase 5、host的mmc总线相关 mmc_resume_bus mmc_attach_bus & mmc_detach_bus 6、mmc请求相关 mmc_request_done mmc_wait_for_req

    3K20发布于 2019-05-25
  • 来自专栏linux驱动个人学习

    mmc core(第五章)——card相关模块(mmc type card)

    对应代码: drivers/mmc/core/mmc.c(提供接口), drivers/mmc/core/mmc-ops.c(提供和mmc type card协议相关的操作), drivers/mmc /core/mmc-ops.h 2、另外,这里继续强调一下mmc的概念 mmc core是指mmc subsystem的核心实现,这里的mmc是表示mmc总线、接口、设备相关的一种统称,可以理解为一种软件架构 而mmc type card则是指mmc卡或者emmc。 总之,这里的mmc是两种概念概念,需要自己先消化一下。 3、mmc总线和mmc_bus 在本文里面这两个是不同的概念。 原型:int mmc_attach_mmc(struct mmc_host *host) 2、mmc type card协议相关操作 mmc_ops提供了部分和mmc type card协议相关操作,这些操作会在 三、接口代码说明 1、mmc_attach_mmc实现 用于通过mmc_host获取mmc type card信息,初始化mmc_card,并进行部分驱动,最后将其注册到mmc_bus上。

    3K21发布于 2019-05-25
  • 来自专栏韦东山嵌入式

    Linux MMC 开发指南

    1.3 适用范围 产品名称 内核版本 驱动文件 A133 Linux-5.4 sunxi_mmc* h616 Linux-5.4 sunxi_mmc* v853 Linux-4.9 sunxi_mmc* R853 Linux-4.9 sunxi_mmc* F133 Linux-5.4 sunxi_mmc* 2 模块介绍 2.1 模块功能介绍 Linux 提供了 MMC 子系统来实现对各种 SD/MMC /EMMC/SDIO 设备访问,MMC 子系统由上到下可以分为三层,MMC/SD card 层,MMC/SD core 层以及 MMC/SD host 层,它们之间的层次关系如下所示。 MMC/SD host 层是实现对 SD/MMC 控制器相关的操作,直接操作硬件,也是主要实现部分。 MMC 卡的 High speed mmc-ddr-1_8v MMC 卡的 ddr50 mmc-hs200-1_8v MMC 卡的 hs200 mmc-hs400-1_8v MMC 卡的 hs400

    3.6K20编辑于 2023-02-25
  • 来自专栏全栈程序员必看

    uboot中的mmc命令

    一:mmc的命令例如以下: 1:对mmc读操作 mmc read addr blk# cnt 2:对mmc写操作 mmc write addr blk# cnt 3:对 mmc擦除操作 mmc erase blk# cnt 4:又一次搜索mmc设备 mmc rescan 5:列出mmc的分区 mmc part – lists available partition oncurrent 显示boot分区号 mmc bootpart [dev] [part] – show or setboot partition 8:列出当前的mmc设备 mmc list – lists available : 3 分析:boot中配置了四个mmc资源,SD卡是2,EMMC是3 3:mmc dev[dev] [part] – show or set current mmc device [partition ] 输入: mmc dev 3 显演示样例如以下: mmc3(part 0) is current device 分析:表示当前处于EMMC设备的第0个分区 输入: mmc dev 3 1 显演示样例如以下

    1.9K20编辑于 2022-07-12
  • 来自专栏全栈程序员必看

    MMC卡的详细介绍

    1.了解MMCMMC卡是有由美国SANDISK公司和德国西门子公司在 1997年 共同开发研制的一种多功能存储卡。 工作在52MHz、 × 8 bit模式下,数据传输率可达52MB/s,由于后来推出的SD卡标准中保留了设备对MMC卡的兼容,所以虽然使用MMC卡的设备无法使用SD卡,但使用SD卡的设备却可以轻易使用MMC 卡,Pretec公司今年宣布了符合MMC4.0标准的极速2GB MMC存储卡的问世,使得MMC卡的容量开始接近CF卡。 在MMC卡本来就很小的基础上,形状正好是MMC卡的一半,长度比MMC卡的一半长一点(MMC的长度为32mm,RS-MMC的长度为18mm)。通过在后面安装专用适配器还可以用作MMC卡。 至于MMC卡容量的选择,一般来说,购买128M或256M的就足够了,从实际使用的角度来看,MMC主要用于存储应用软件、图像等,最好配备256M以上的产品。

    2.6K50编辑于 2022-09-06
  • 来自专栏嵌入式艺术

    MMC还可以这样测试!

    Linux下mmc_test测试工具使用 很多朋友也都有疑问,如何在Linux下,测试emmc/sd模块呢? 当然,mmc core提供了mmc_test.c来作为mmc driver的测试文件。 如何使用mmc_test.c测试文件测试mmc 驱动呢? mmc_test工具测试,需要将mmc设备绑定到该mmc_test驱动上。 2.1、查看驱动编号 通过下面命令,查询对应的mmc编号,如下:mmc0:0001,忽略掉\ ls /sys/bus/mmc/drivers/mmcblk/mmc0\:0001/ 2.2、解绑mmc原驱动 echo mmc0:0001 > /sys/bus/mmc/drivers/mmcblk/unbind 2.3、绑定mmc_test驱动 echo mmc0:0001 > /sys/bus/mmc

    1.1K40编辑于 2023-01-18
  • 来自专栏全栈程序员必看

    MMC卡SPI模式「建议收藏」

    MMC/SD卡简单SPI模式驱动 1. SPI模式下CRC检验无效的。 2. 命令格式是6个字节,采用大端法进行数据传输。 3. 第一个是(命令号|0x40)。 4. 7).返回R1,即MMC的回复。 (完) 7. MMC卡初始化函数 1).SPI初始化。 2).发送74个时钟以上。 3).发送命令CMD0. 4).不断发送时钟信号等回复0x01.成功。 5).再不断发送命令CMD1,等回复0x00,成功则MMC卡初始化成功。 (完) 8.MMC卡读函数。 1).不断发送命令CMD17。 2).等待0x00,则成功。 (完) 9.MMC卡写数据。 1).发送不断CMD24命令。 2).等待0x00回复。 3).成功回复,再发送至少8个时钟。 4).发送0xfe。 5).发送512字节写进去。 (完) 基于LPC2124芯片的MMC/SD卡SPI模式简单读写实验。 附加说明:MMC卡在SPI模式与SD卡的SPI模式是一样。

    62020编辑于 2022-09-05
  • 来自专栏嵌入式进阶之路

    Linux内核MMC里的轮询机制

    mmc_of_parse函数,路径是drivers\mmc\core\core.c,of_property_read_bool函数读broken-cd字段,如果读到,就给host设置MMC_CAP_NEEDS_POLL INIT_DELAYED_WORK(&host->detect, mmc_rescan); mmc_rescan就是扫描卡的函数 void mmc_rescan(struct work_struct * (host); mmc_power_off(host); mmc_release_host(host); goto out; } mmc_claim_host(host); for ; } mmc_release_host(host); out: if (host->caps & MMC_CAP_NEEDS_POLL) mmc_schedule_delayed_work ,也就是mmc_rescan。

    2.7K10编辑于 2023-02-26
  • 来自专栏全栈程序员必看

    MMC卡修复心得与方法

    4.MMC卡读写速度越来越慢,远不如刚买会的时候同样是存储设备,手机中的MMC存储卡和电脑中的一样,用了一段时间以后回因为频繁的删除和拷贝回出现磁盘碎片从而影响读写速度然而,硬盘的磁盘格式是FAT32或 NTFS,手机中的MMC卡是FAT16的.因此,手机通过电脑的磁盘碎片整理后往往会出现一系列的错误,严重的回在MMC卡插入手机中抱错.其实我们只需要将MMC卡中的隐藏文件拷贝将卡格式化然后将文件拷入即可 7.1GB的MMC卡,拷入600MB的文件,在电脑上无法将存储卡安全移除,于是拔除,储存卡装入手机后显示” 卡已损坏” ,如再将卡连接pc,pc不识别!

    1.4K20编辑于 2022-09-05
  • 来自专栏嵌入式进阶之路

    深入浅出MMC子系统

    mmc_request_fn通过wake_up_process唤醒了mmc_queue_thread,该函数在mmc_init_queue函数中完成初始化赋值,随后执行mmc_queue_thread ,该函数在queue.c(drivers/mmc/card),代表着从此进入了MMC子系统card层。 MMC core层 在mmc_queue_thread函数,通过blk_fetch_request从mmc queue中取出请求,然后执行mq->issue_fn下发请求,mq->issue_fn 在mmc_blk_alloc_req函数完成初始化,即执行mmc_blk_issue_rq下发请求。 static void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq) { struct sdhci_host *host;

    1.9K20编辑于 2022-08-23
  • 来自专栏全栈程序员必看

    SD卡 MMC卡 MS卡 TF卡

    SD卡的技术是基于MultiMedia卡(MMC)格式上发展而来,大小和MMC卡差不多,尺寸为32mm x 24mm x 2.1mm。 长宽和MMC卡一样,只是比MMC卡厚了0.7mm,以容纳更大容量的存贮单元。 SD卡与MMC卡保持着向上兼容,也就是说,MMC卡可以被新的SD设备存取,兼容性则取决于应用软件,但SD卡却不可以被MMC设备存取。 Mini SD MiniSD由松下和SanDisk共同开发。 MMCMMC卡(Multimedia Card) 翻译成中文为“多媒体卡”。是一种快闪存储器卡标准。 MMC卡大小与一张邮票差不多,约24mm x 32mm x 1.5mm。

    4.7K20编辑于 2022-09-03
  • 来自专栏全栈程序员必看

    SD卡与MMC卡的区别

    (吉田義人) 首先得从MMC卡的发展谈起。 MMC卡是由西门子设计,和SanDisk合作开发的小型存储卡标准。 図2:MMC和SD卡的比较 MMCに比べて、SDカードは端子が多く、より高速なデータ転送に対応している 厚みもSDカードのほうが大きいが、SDカードスロットにはMMCも挿入することができる 以MMC SD卡的表面积和MMC卡是相同大小的,但是厚度比1.4毫米的MMC增大了0.7毫米,变成2.1毫米。 然而,SD卡的左右部分和MMC卡的厚度一样的,为1.4毫米,所以MMC卡可以直接插入SD卡插槽。 (相反,SD卡不能插入MMC卡插槽) 接口的规格也是在MMC卡的管脚排列基础上添加的两条信号线到两侧,传输方法因为和MMC相兼容,也可以从SD卡host访问到MMCMMC中只有一个数据信号通道,但在SD中MMC中的7号管脚(数据信号)和一号管脚(在MMC中未使用),加上新加的8,9号管脚一共4个通道可以使用,这样就能达到更高的传输速度。

    2.4K10编辑于 2022-07-01
  • android系统里,MMC测试是什么意思?

    非常好的问题 , “MMC测试”在 Android 系统开发(尤其是底层、BSP、工厂测试阶段)里是一个很常见的术语。我们来系统地解释一下: 一、什么是 MMCMMC = MultiMediaCard(多媒体卡) 它是一种 存储设备标准,和我们常见的 SD 卡(Secure Digital) 属于同一家族。 所以,当你看到“MMC 测试”时,几乎都是在测试 设备的内部闪存(eMMC)读写功能。 二、MMC 测试在 Android 系统中的意义在 Android 开发、工厂生产和系统调试中,MMC 测试 通常用来: ✅ 检测 eMMC 是否正常工作 是否能识别 是否能正确读写数据 块设备是否损坏 : new high speed MMC card at address 0001mmcblk0: mmc0:0001 HBG4e 29.1 GiB 五、在 MTK 平台上的“MMC 测试”在 MTK

    63010编辑于 2025-10-15
  • 来自专栏wOw的Android小站

    查看MTD,EMMC,MMC三种设备的分区

    几乎每个设备都有它自己的分区设计,这个和生产商有关,但常见的有MTD,EMMC和MMC设备。 MMC MultiMedia Card 它的分区信息只能从/proc/partitions获得: cat /proc/partitions major minor #blocks name 254

    7.2K21发布于 2020-01-20
  • 来自专栏全栈程序员必看

    SD卡、TF卡、MMC卡、emmc、sdio扫盲

    一、sd卡、tf卡,mmc卡的区别: 共同点:SD TF MMC都是在MMC基础上演化发展不同的规范,比如物理尺寸,封装,电压,管脚,位宽,时钟信号等不同,但都使用相同的总线规范。 MMC(multiMedia card)是一种通信协议,支持两种模式SPI和MMC,定义了诸如卡的形态、尺寸、容量、电气信号、和主机之间的通信协议等。 ;第二是传输速度比2.11版mmc卡快。 六、MMC卡 1、简介 MMCMMC就是MultiMediaCard的缩写,即多媒体卡。 MMC是一个接口协定(一种卡式),能符合这接口的内存器都可称作mmc储存体(mmc卡)。

    19.9K20编辑于 2022-08-27
  • 来自专栏计算机工具

    排队模型:MMc和MM1区别

    M/M/c和M/M/1是排队论中常见的两种排队模型,它们之间的主要区别在于服务器的数量以及由此带来的系统性能差异。下面是对这两种模型的详细比较及举例说明:

    1.3K21编辑于 2024-10-12
  • 来自专栏菩提树下的杨过

    mmc如何管理本机上的(数字x.509)证书

    MMC 中,展开“证书 - 当前用户”,再展开“个人”。 在右侧窗格中,用鼠标右键单击并指向“所有任务”,然后单击“申请新证书”。 MMC 中的新证书申请 ?

    97750发布于 2018-01-24
  • 来自专栏linux驱动个人学习

    mmc core数据结构和宏定义说明

    一、host相关 1、struct mmc_host struct mmc_host是mmc core由host controller抽象出来的结构体,用于代表一个mmc host控制器。 0) #define MMC_RSP_R1 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) #define MMC_RSP_R1B (MMC_RSP_PRESENT |MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY) #define MMC_RSP_R2 (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC |MMC_RSP_CRC|MMC_RSP_OPCODE) #define MMC_RSP_R6 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) #define MMC_RSP_R7 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) 2、struct mmc_data mmc core用struct mmc_data来表示一个命令包

    1.5K31发布于 2019-05-25
  • 来自专栏linux驱动个人学习

    mmc core(第四章)——host模块说明

    一、API总览 1、mmc host分配、注册相关 mmc_alloc_host & mmc_free_host 底层host controller驱动调用,用来分配或者释放一个struct mmc_host 原型:int mmc_add_host(struct mmc_host *host) 原型:void mmc_remove_host(struct mmc_host *host) 2、mmc host 原型:void mmc_of_parse(struct mmc_host *host) 4、mmc host时钟相关 mmc_host_clk_hold & mmc_host_clk_release mmc /devices/7824900.sdhci/mmc_host/mmc0 // /sys/class/mmc_host/mmc0 /* 使能mmc host的class_dev的异步suspend /mmc0 4、mmc_of_parse实现 解析mmc_host的dtsi节点的部分属性。

    1.3K31发布于 2019-05-25
领券