#### Plugin: eMMC

## Introduction

This plugin reads the sysfs attributes corresponding to eMMC devices. It uses the kernel MMC API for flashing devices.

## Protocol

eMMC devices support the `org.jedec.mmc` protocol.

## GUID Generation

These devices use the following instance values:

- `EMMC\NAME_%name%`
- `EMMC\NAME_%name%&REV_%rev%`
- `EMMC\MAN_%manfid%&OEM_%oemid%` (only-quirk)
- `EMMC\MAN_%manfid%&OEM_%oemid%&NAME_%name%`
- `EMMC\MAN_%manfid%&NAME_%name%&REV_%rev%`
- `EMMC\MAN_%manfid%&OEM_%oemid%&NAME_%name%&REV_%rev%`

One deprecated instance ID is also added; new firmware should not use this.

- `EMMC\%manfid%&%oemid%&%name%`

## Update Behavior

The firmware is deployed when the device is in normal runtime mode, but it is only activated when the device is rebooted.

## Quirk Use

This plugin uses the following plugin-specific quirks:

### EmmcBlockSize

The block size used for Emmc writes

Since: 1.9.7

## Vendor ID Security

The vendor ID is set from the EMMC vendor, for example set to `EMMC:{$manfid}`

## External Interface Access

This plugin requires ioctl `MMC_IOC_CMD` and `MMC_IOC_MULTI_CMD` access.

## Version Considerations

This plugin has been available since fwupd version `1.3.3`.