I'm trying to enable write reliability on the (default) user partition of an eMMC 4.41 device in the hopes that it might help to prevent flash corruption during unwanted power cycling. The device is an ARM system not too dissimilar from a BeagleBone Black. I have used the mmc-util package, but I receive an error when setting the register. The intended setting can be read in the extcsd subsequent to a power cycle, but as partitioning is incomplete, I have no confidence that the device is in fact operating in reliable write mode. I searched for an appropriate discussion forum for the mmc-util itself, but could find none. I contacted (days apart) two different contributors who had contributed code relevant to this setting (both write reliability and continue vs. finalizing the OTP operation), but have yet to receive any acknowledgement (not even an RTFM). I realize that this here is a discussion forum for development of mmc support for linux, and not a support forum for mmc-utils itself, but surely setting this feature should not be shrouded in the dark arts? I need to be able to set it and know it is in effect so that I can run testing on the device. Since it is an OTP (One Time Programming) operation, every time I attempt to set the feature the device I'm using is then in a partially programmed state (although I have tried both completion and continuation flags), and I cannot expect to set the write reliability again without receiving an error, so I've got to abuse yet another device for the next iteration. mmc write_reliability set -y 0 /dev/mmcblk0 Done setting EXT_CSD_WR_REL_SET to 0x01 on /dev/mmcblk0 setting OTP PARTITION_SETTING_COMPLETED! Setting OTP PARTITION_SETTING_COMPLETED failed on /dev/mmcblk0 Note that I'm not getting an "device is already partitioned" (which would be expected if I tried to update the setting on a device I'd already tried setting it on, but I don't even get that error after a power cycle), or anything about the WR_REL_SET being read-only. Once set, I can do nothing to _unset_ it, so it seems reasonable that it's been stored in the OTP, but why the error when setting, and also in the extcsd: Partitioning Setting [PARTITION_SETTING_COMPLETED]: 0x00 Device partition setting NOT complete General Purpose Partition Size [GP_SIZE_MULT_4]: 0x000000 [GP_SIZE_MULT_3]: 0x000000 [GP_SIZE_MULT_2]: 0x000000 [GP_SIZE_MULT_1]: 0x000000 I can post more output if needed. I would greatly appreciate any insight anyone might offer here. Apologies in advance for the IT-inserted footer below. The information contained in this message may be privileged and confidential. It is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. If you have received this message in error, please immediately notify the sender and delete or destroy any copy of this message! The information contained in this message may be privileged and confidential. It is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. If you have received this message in error, please immediately notify the sender and delete or destroy any copy of this message! -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html