[Galaxy Note GT-N7000 General] GocaS6:
In case that someone missed it :cool:

(tnx to user garwynn)

Fresh off the press...

Q: Do you know the commands to reset the eMMC controller in question?

Originally Posted by Ken Sumrall (Android)

Once the chip has locked up, no command will reset it. It must be power cycled. If instead you are asking how to clear the metadata so the chip works again, the only solution I know is to update the firmware inside the chip, and that also wipes all the data. This probably includes factory calibration data that must be saved before the firmware is updated, and restored after. Also, the boot loader is probably in the chip, and must be restored after the firmware update, or the device will be bricked. This is a dangerous operation, because if something goes wrong, the device will probably be bricked. (emphasis added)

Q: Is there any documentation available on this issue? If so and it is private is it possible to have it released?

Originally Posted by Ken Sumrall (Android)

It is private, I'm asking if I can release it, along with the code to update the emmc firmware. Don't get your hopes up, my guess is the answer will be no.

Q: Alternate erase method?

Originally Posted by Ken Sumrall (Android)

If you really want to erase data on a rev 0x19 samsung emmc chip, I suggest you just write zeros to the entire partition.

Q: Difference between GB/ICS Wipe

Originally Posted by Ken Sumrall (Android)

IIRC, when using recovery to wipe the phone on GB, the make_ext4fs() library would not issue an erase command first, it would just write one a new blank filesystem. This, of course, doesn't really erase all the private data of the user, so we changed make_ext4fs() to first erase the partition, then write out the new filesystem. You can see the code in system/extras/ext4_utils/wipe.c, which didn't exist in gingerbread, but does in honeycomb and later. It is the erase operation on the rev 0x19 firmware that can cause the emmc chip to lockup. (emphasis added)

Regarding Entropy512's summary of observations:

Originally Posted by Ken Sumrall (Android)

Regarding the notes on MMC_CAP_ERASE, the just lists the cards ability to perform the erase command. In other words, if the mmc_erase() function works. What is more important is if anyone calls the mmc_erase() function. Looking at the mmc driver, in drivers/card/block.c, it is only called when a secure discard or discard request is made. As far as I know, those requests are only sent if the filesystem is mounted with the "discard" option, or if userspace code does an ioctl() to erase a partition, like make_ext4fs does. So check the mount options on the filesystems. *If they don't specify "discard", the erase operations are probably not happening.

Of course, a simple debugging printk() in the mmc_erase() function will tell you if anyone is calling it.

Additional info not directly related to questions:

Originally Posted by Ken Sumrall (Android)

The lockup doesn't happen immediately after power-on. The chip doesn't lock up until a sector is referenced that has corrupted wear leveling data inside the chip. Once that sector is referenced, the chip will lockup hard, and the only thing that will get it talking again is to power cycle it. Once it is power cycled, the chip will talk again, until that bogus sector is accessed.

http://xdaforums.com/showpost.php?p=26521643&postcount=293