You are on page 1of 5

11/9/23, 6:25 PM eMMC Device Register · Linux Kernel Internals

eMMC device register

OCR register
OCR, Operation Conditions Register, this register contains the voltage mode, data addressing
mode (addressed by Byte or addressed by Sector) and Busy flag bit supported by the eMMC
Device.

The value of this register will be returned to the Host as the response content of CMD1 in Device
Identification Mode.
NOTE:
Voltage Window indicates that eMMC Device supports two operating voltage ranges: 1.70v
- 1.95v and 2.7v - 3.6v. The Access Mode of the eMMC Devcie with a capacity less than or
equal to 2 GB is Byte Mode, and the Access Mode of the eMMC Devcie with a capacity
greater than 2 GB is Sector Mode.

CID register

https://linux-codingbelief-com.translate.goog/zh/storage/flash_memory/emmc/emmc_device_registers.html?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=… 1/5
11/9/23, 6:25 PM eMMC Device Register · Linux Kernel Internals

MID [127:120]
MID is an 8 bit binary number that identifies the device manufacturer. The MID number is
controlled, defined and allocated to an e•MMC manufacturer by JEDEC. This procedure is
established to ensure uniqueness of the CID register.

CBX [113:112]
CBX indicates the device type.

[113:112] Type
00 Device (removable)
01 BGA (Discrete embedded)
10 POP
11 Reserved

OID [111:104]
OID is an 8-bit binary number that identifies the Device OEM and/or the Device contents (when
used as a distribution media either on ROM or FLASH Devices). The OID number is controlled,
defined and allocated to an e•MMC manufacturer by JEDEC. This procedure is established to
ensure uniqueness of the CID register

PNM [103:56]
The product name, PNM, is a string, 6 ASCII characters long.

PRV [55:48]
The product revision, PRV, is composed of two Binary Coded Decimal (BCD) digits, four bits
each, representing an “n.m” revision number. The “n” is the most significant nibble and “m” is the
least significant nibble. As an example, the PRV binary value field for product revision “6.2” will
be: 0110 0010.

PSN [47:16]
PSN is a 32-bit unsigned binary integer.

MDT [15:8]
The manufacturing date, MDT, is composed of two hexadecimal digits, four bits each,
representing a two digits date code m/y; The “m” field, most significant nibble, is the month code.
1 = January. The “y” field, least significant nibble, is the year code. 0 = 1997. As an example, the
binary value of the MDT field for production date “April 2000” will be: 0100 0011

https://linux-codingbelief-com.translate.goog/zh/storage/flash_memory/emmc/emmc_device_registers.html?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=… 2/5
11/9/23, 6:25 PM eMMC Device Register · Linux Kernel Internals

CRC [7:1]
The CRC7 checksum (7 bits). This is the checksum of the CID contents computed according to
0.

CSD register
The Device-Specific Data (CSD) register provides information on how to access the Device
contents. The CSD defines the data format, error correction type, maximum data access time,
data transfer speed, whether the DSR register can be used etc. The programmable part of the
register (entries marked by W or E below) can be changed by CMD27. The type of the CSD
Registry entries below is coded as follows:
R: Read only.
W: One time programmable and not readable.
R/W: One time programmable and readable.
W/E: Multiple writable with value kept after power failure, H/W reset assertion and any CMD0
reset and not readable.
R/W/E: Multiple writable with value kept after power failure, H/W reset assertion and any CMD0
reset and readable.
R/W/C_P: Writable after value cleared by power failure and HW/rest assertion (the value not
cleared by CMD0 reset) and readable.
R/W/E_P: Multiple writable with value reset after power failure, H/W reset assertion and any
CMD0 reset and readable.
W/E_P: Multiple writable with value reset after power failure, H/W reset assertion and any CMD0
reset and not readable.

https://linux-codingbelief-com.translate.goog/zh/storage/flash_memory/emmc/emmc_device_registers.html?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=… 3/5
11/9/23, 6:25 PM eMMC Device Register · Linux Kernel Internals

NOTE:
For more details on CSD register, please refer to eMMC Spec.

RCA register
The writable 16-bit relative Device address (RCA) register carries the Device address assigned
by the host during the Device identification. This address is used for the addressed host-Device
communication after the Device identification procedure. The default value of the RCA register is
0x0001. The value 0x0000 is reserved to set all Devices into the Stand-by State with CMD7.

https://linux-codingbelief-com.translate.goog/zh/storage/flash_memory/emmc/emmc_device_registers.html?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=… 4/5
11/9/23, 6:25 PM eMMC Device Register · Linux Kernel Internals

Extended CSD register


The Extended CSD register defines the Device properties and selected modes. It is 512 bytes
long. The most significant 320 bytes are the Properties segment, that defines the Device
capabilities and cannot be modified by the host. The lower 192 bytes are the Modes segment,
that defines the configuration the Device is working in. These modes can be changed by the
host by means of the SWITCH command.

https://linux-codingbelief-com.translate.goog/zh/storage/flash_memory/emmc/emmc_device_registers.html?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=… 5/5

You might also like