mmc: core: Add mmc CMD+ACMD passthrough ioctl
Allows appropriately-privileged applications to send CMD (normal) and ACMD (application-specific; preceded with CMD55) commands to cards/devices on the mmc bus. This is primarily useful for enabling the security functionality built in to every SD card. It can also be used as a generic passthrough (e.g. to enable virtual machines to control mmc bus devices directly). However, this use case has not been tested rigorously. Generic passthrough testing was only conducted for a few non-security opcodes to prove the feasibility of the passthrough. Since any opcode can be sent using this passthrough, it is very possible to render the card/device unusable. Applications that use this ioctl must have CAP_SYS_RAWIO. Security commands tested on TI PCIxx12 (SDHCI), Sigma Designs SMP8652 SoC, TI OMAP3621/OMAP3630 SoC, Samsung S5PC110 SoC, Qualcomm MSM7200A SoC. Signed-off-by:John Calixto <john.calixto@modsystems.com> Reviewed-by:
Andrei Warkentin <andreiw@motorola.com> Reviewed-by:
Arnd Bergmann <arnd@arndb.de> Signed-off-by:
Chris Ball <cjb@laptop.org>
Showing
- Documentation/ioctl/ioctl-number.txt 1 addition, 0 deletionsDocumentation/ioctl/ioctl-number.txt
- drivers/mmc/card/block.c 201 additions, 0 deletionsdrivers/mmc/card/block.c
- drivers/mmc/core/sd_ops.c 2 additions, 1 deletiondrivers/mmc/core/sd_ops.c
- include/linux/Kbuild 1 addition, 0 deletionsinclude/linux/Kbuild
- include/linux/mmc/Kbuild 1 addition, 0 deletionsinclude/linux/mmc/Kbuild
- include/linux/mmc/core.h 1 addition, 0 deletionsinclude/linux/mmc/core.h
- include/linux/mmc/ioctl.h 54 additions, 0 deletionsinclude/linux/mmc/ioctl.h
Loading
Please register or sign in to comment