eMMC "stuck being busy"

Hey there,

I have a v1 switch that was stuck on black screen. I was able to inject hekate, which reported an eMMC problem.
I ordered one of the mmcblkNX eMMC readers and connected it to my computer.
It didn’t show up under lsblk, but dmesg was seeing the connection and reported:
mmc0: Card stuck being busy! __mmc_poll_for_busy

Is there any way to force it out of this busy state so I can mount the device and see if the data is corrupted?

Thanks in advance :slight_smile:

What is the resistance to ground on CLK and CMD lines?

Do you have the ability to check these signals with a scope?

Unfortunately, in most cases it’s the EMMC’s controller which is dead. You would think given the EMMC protocol is backwards compatiable with the MMC protocol that you could use the SPI protocol to maybe get out of this state but from memory I think I tried and no cigar and all others documentation/comments online seems to suggest the same in that most if not all EMMC devices do not support SPI mode.

Maybe you could figure out how to communicate with the EMMC in SDIO mode and maybe you could find a command in this mode to kick it out of it’s current state in order to at the least read the valuable data off it (perhaps back using the standard EMMC protocol after) but again, unfortuantely, I’ve never been able to get it to work.

You could try seeing if your able to read the data off in purely single bit mode, but it’s very rare that the other data lines are at fault and that this will work.

So in conclusion, I’m afraid it’s more likely you have a physical fault with the EMMC. The only way that I know of that is the most likely way to recover the data off devices in this condition is to “bypass” the internal controller and connect to the nand via it’s IO and have an MCU or other act as the controller instead… unfortunately again, nobody has taken the time to document the needed I/O on the specific EMMC IC’s which the Switch uses (at least if your not a PC3000 member) - I spent a bit of time working on doing this but ultimately decided it wasn’t worth the time… that being said, it’s more than doable and the process has been well documented for SD cards (and other) which are fundamentally the same as EMMC and which detail the process of identifying the relavent I/O and what hardware/software you need to read the data off the nand.

Thanks for this detailed response!

I’ll take a reading of the clk and cmd lines when i am back near my multimeter.
Unfortunately I don’t have a scope – and probably wouldn’t know what to be looking for anyway, i’m still fairly novice.

Most of the other options do seem above my pay grade but I will keep the chip around and try some further investigation. I believe I can rebuild a new eMMC from donor nand info, so I can keep this one around to probe and maybe learn a thing or two in the process!

Yeah, although with quite a few caveats such as no official nintendo online services etc and afair the need for the donor to be unpatched/modded, risk of ban etc.

Good plan :slight_smile: