MMCFW uses specialized SD/MMC (PCI, USB-PCI) card readers to work with eMMC/eMCP..
We divide card readers into several categories (for convenience): PCI, USB-PCI and USB.
PCI - Supports all possible eMMC operations.These readers are typically found in laptops.
They are soldered onto the board and connected directly to the PCI bus. In some laptops, the southbridge may perform the reader function. These readers initialize all partitions: Boot0/1, RPMB, GP, and UserArea.
USB-PCI - Supports all possible eMMC operations except those related to RPMB.
These readers can be used in both laptops and desktop PCs. Typically, these readers have their own separate board. This category includes readers that operate via the USB interface but are converted to PCI devices (readers) by the driver. Currently, only one manufacturer of such readers (controllers) is known: Realtek RTS 51xx.
USB RTS controllers are unable to initialize the RPMB partition. Therefore, RPMB status will be unavailable. The lack of access to the RPMB partition does not affect other functions, even firmware updates.
These readers initialize the following partitions: Boot0/1, GP, and UserArea.
USB - Does not support required eMMC operations.
Such readers are registered in the system as regular USB Mass-storage, and do not have the advanced capabilities that are necessary to work with eMMC. These readers only initialize the UserArea section.
eMMC/eMCP are essentially the same as regular SD cards. However, unlike SD cards, eMMC/eMCP cards have an extended feature set. Any card reader can easily initialize eMMC cards, but not all card readers can handle the extended features of eMMC cards.
Asus R752M (Realtek RTL8411)
Asus A8S (Ricoh R5C833)
Asus F3Ka (Ricoh R5C833)
Asus F401U (FCH)
Asus X552C (Realtek RTL8402)
Asus A9RP (Ricoh R5C841)
Asus X555L (Realtek RTS5170)
Asus n550jv (Realtek RTS5139)
Acer Aspire E1-510 (Realtek RTL8411)
Acer 5920 (Ricoh R5C832/833)
Acer Aspire E1-531G (BCM57785XA0KMLG)
Acer Aspire 4830T(RTS5209)
Dell Latitude PP09S D420 (Ricoh R5C843)
Dell Vostro 3470 (RTS5129)
Dell latitude e6400 (R5C847)
Dell Latitude d430 (R5C843)
Dell Latitude E5410 (R5U242)
DNS W650EH (RTL8411)
DNS C5501Q
HP Pavilion g6 (Realtek RTS5209)
Lenovo G50-70 (Realtek RTS5170)
Lenovo G50-45 (Realtek RTS5170)
Lenovo G50-30 (Realtek RTS5170)
Lenovo G580 (RTS5178)
Lenovo T520 (Ricoh R5U230)
Lenovo Z570 (Realtek RTS5139)
Lenovo 310-15ISK (Realtek RTS5129)
MSI MS-16J5 (Realtek RTS5170)
MSI MS-175A (Realtek RTS5249)
Irbis NB133 (RTS5170)
irbis NB241 (rts5170)
Sony VAIO SVE171A (ti8402)
Samsung NP-R40 (Ricoh R5C843)
Samsung NP355V5C (RTS5127)
Samsung NP350E5C (Realtek RTS5129)
Szyiyun J4125 (RTS5170)
Toshiba Satellite A30x Ricoh (R5C8x)
Xiaomi mi notebook pro (Realtek RTS5170)
Supported (Verified): ✅
Not supported (Verified): ❌
RPMB Status (Verified): 🔑
Not verified: 🔄
Alcor
AU6336 🔄
AU6438 ❌
AU6601 🔄
AU6621 🔄
AU6625 🔄
Broadcom
BCM57785XA0KMLG ✅
BCM2835 ✅ 🔑
Jmicron
JMB709 ✅ 🔑
JMB385 🔄
O2Micro
OZ601 🔄
Ricoh
R5C832 ✅
R5C833 ✅
R5C841 ✅
R5C843 ✅
R5C847 🔄
R5C853 🔄
R5U230 ✅
R5U242 ✅
Realtek
RTS5127 ✅
RTS5129 ✅
RTS5130 ❌
RTS5139 ✅
RTS5141 ❌
RTS5144 ❌
RTS5151 ❌
RTS5158 ❌
RTS5159 ❌
RTS5160 ❌
RTS5170 ✅
RTS5178 ✅
RTS5179 🔄
RTS5209 ✅
RTS5219 ✅
RTS5208 🔄
RTS5209 🔄
RTS5227 🔄
RTS5228 🔄
RTS5229 🔄
RTS522A 🔄
RTS5234S 🔄
RTS5249 🔄
RTS524A 🔄
RTS5250 🔄
RTS525A 🔄
RTS5260 🔄
RTS5261 🔄
RTS5264 🔄
RTS5286 🔄
RTS5287 🔄
RTS5288 🔄
RTS5289
RTL8402 ✅
RTL8411 ✅
RTL5239 🔄
Texas Instruments
TI8402 ✅
When connecting the MMC to the reader, you must adhere to the following rules:
Use the shortest possible length of wires.
All readers are designed to connect MMCs at a specific distance from the reader's controller, and increasing this distance negatively impacts connection stability. This problem can be partially solved using a PLU. By installing the PLU in the intended location, we increase the possible distance for eMMC connection. On RTS readers, this also ensures operation with some problematic eMMCs. Moreover, the wire length should be no more than 10-15 cm from the PLU. For readers without a PLU, the wire length should be kept as short as possible.
Use high-quality wires.
Each cable has its own characteristics and a different metal alloy. This is critical for connecting an eMMC! An IDE cable has proven itself to be a good solution for this problem.
Use single core wire for D0-D3, CMD, CLK.
Stranded wires cannot be used to connect signal lines between the reader, PLU, or eMMC. Stranded wire is only allowed and recommended for VCC, VCCQ, and GND.
Use additional GND.
If it is possible to add another GND wire (from the reader to the eMMC), it would be better to do so. This will have a positive effect on the stability of the connection.
Currently, there are several ways to connect eMMC/eMCP:
1 bit (D0, CLK, CMD, VСС, VССQ, GND, GND).
4 bit (D0, D1 ,D2, D3, CLK, CMD, VСС, VССQ, GND, GND).
Also, don't forget to ground the CD and WP contacts if you are connecting the MMC directly.
#CD (card detect) - gives the controller a kick to initialize the MMC.
WP (write protect) - gives the controller permission to write to the MMC.
Important!
Single-bit connection is only supported in the Рекомендуемой ОС and in the latest official kernel updates, starting from 6.7.9 and higher.
Linux
When you connect a compatible USB RTS reader, MMCFW will automatically display an RTS button in the bottom toolbar.
MMCFW also allows you to check whether a compatible reader is connected to your computer. There are several ways to do this.
For connected readers.
At the top of the program, click the Additional button and select MMC/RW Devices from the menu that opens.
For plug-in readers.
At the top of the program, click the Advanced button and select Logger (KMSG) from the drop-down menu.
After the logger has launched, connect the reader to the computer. Information about the connected device will appear in the log.
By default, the MMC event filter is enabled in Logger (KMSG).
To receive all system events, check the box next to "Track all events."
Windows
In order to check the compatibility of the reader with the program in the Windows OS, a small utility called Reader_Checker was developed.
Important!
MMCFW - identifies a reader by its feature set. The reader's manufacturer and model are irrelevant.
If the reader supports the necessary functions for working with eMMC/eMCP, the program will work with it, even if the reader is unknown.
For signal level matching.
For in-circuit programming.
For connecting VCCQ 1.8v.
For achieving maximum compatibility of the USB reader (REALTEK RTS) with eMMC/eMCP.
For USB readers (REALTEK RTS) it is recommended to use the PLU constantly at any VCCQ voltage (1.8v-3.3v).
All card readers are designed for a voltage of 3.3V. This is the controller supply voltage, which is also switched to the MMC.
For in-circuit programming of the MMC, the VCCQ voltage must be at 1.8V.
This voltage is often used in various devices (boards).
To achieve 1.8v, you can use an additional voltage converter, such as the AMS1117-1.8.
However, simply reducing the voltage to 1.8v is not enough!
Setting the VCCQ voltage to 1.8v also sets the logic level between the reader controller and the MMC to 1.8v.
The reader controller only works with a logic level of 3.3v, so 1.8v is incomprehensible.
To solve this problem and coordinate the different levels, we use the TXS0108 PLU (Logical Level Converter).
Chubaka885's REALTEK RTS-based programmer
Eddave's REALTEK RTS-based programmer
hamelion_81's REALTEK RTS-based programmer
AlexJ87's REALTEK RTS-based programmer
K!lly's REALTEK RTS-based programmer
alyshta's REALTEK RTS-based programmer
jazzman_84's REALTEK RTS-based programmer
vitoz84's REALTEK RTS-based programmer