- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在嵌入式系统中安全删除 MMC 卡。但是,我的 ioctl(BLKSECDISCARD)
返回 EOPNOTSUPP
(与 BLKDISCARD
一样)。
MMC驱动通过读取内核代码,在kernel/linux/drivers/mmc/card/queue.c mmc_queue_setup_discard()
中设置QUEUE_FLAG_DISCARD
使能DISCARD,即调用如下:
if (mmc_can_erase(card))
mmc_queue_setup_discard(mq->queue, card);
其中 mmc_can_erase()
在 kernel/linux/drivers/mmc/core/core.c
中定义为:
int mmc_can_erase(struct mmc_card *card)
{
if ((card->host->caps & MMC_CAP_ERASE) &&
(card->csd.cmdclass & CCC_ERASE) && card->erase_size)
return 1;
return 0;
}
要满足 mmc_can_erase()
中的条件需要什么?
它是卡、 Controller 、驱动程序、内核构建方式还是其他原因的特性?
理想情况下,我想启用 BLKSECDISCARD
功能,但不确定我需要做什么,或者即使它在我的嵌入式系统上是可能的。可以吗?
最佳答案
card->host->caps
描述了主机 Controller 的能力。设置的位置(假设它受支持)取决于您使用的 Controller ,例如,对于 SDHCI Controller ,其设置在 sdhci_setup_host()
中。 .
card->csd.cmdclass
从卡的 CSD(卡/设备特定数据)中读取,并指示卡支持的命令类别。在这种情况下,代码正在检查命令的删除类。参见 mmc_decode_csd()
.
card->erase_size
也从卡的 CSD(如果卡有扩展 CSD)中读取,并设置在 mmc_set_erase_size()
中。 .
这些都不取决于内核的构建方式,而是硬件的功能。要找出哪些阻止您使用安全删除,您需要向内核添加一些工具以打印这些字段的值。
关于security - 安全删除 eMMC 卡(BLKSECDISCARD 返回 EOPNOTSUPP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49503307/
我需要在嵌入式系统中安全删除 MMC 卡。但是,我的 ioctl(BLKSECDISCARD) 返回 EOPNOTSUPP(与 BLKDISCARD 一样)。 MMC驱动通过读取内核代码,在kerne
我是一名优秀的程序员,十分优秀!