• John Calixto's avatar
    mmc: core: Add mmc CMD+ACMD passthrough ioctl · cb87ea28
    John Calixto authored
    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: default avatarJohn Calixto <john.calixto@modsystems.com>
    Reviewed-by: default avatarAndrei Warkentin <andreiw@motorola.com>
    Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarChris Ball <cjb@laptop.org>
    cb87ea28
block.c 31.1 KB