MT25Q Advanced Sector Protection support

Stefan Roese sr at denx.de
Thu Apr 15 10:44:02 BST 2021


Hi Tudor,

On 15.04.21 11:40, Tudor.Ambarus at microchip.com wrote:
> On 4/15/21 12:20 PM, Stefan Roese wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>
>> Hi,
> 
> Hi,
> 
>>
>> I'm right now working on a board equipped with an MT25QU128ABA1ESE.
>> And after doing some intensive QSPI NOR tests, one sector (at 0x40000)
>> seems to be permanently locked. The normal unlocking does not seem to
>> help:
>>
>> # flash_eraseall -u /dev/mtd0
> 
> have you tried to unlock it before erasing? You can use flash_unlock.

IIUTC, the "-u" parameter in eraseall should provide this unlocking as
well. But hey, I also tried "flash_unlock" without any success. I assume
that this command unlocks all sectors in the MTD device automatically.

>> flash_eraseall has been replaced by `flash_erase <mtddev> 0 0`; please
>> use it
>> Erasing 64 Kibyte @ 40000 -- 22 % complete libmtd: error!: MEMERASE64
>> ioctl failed for eraseblock 4 (mtd0)
>>          error 5 (Input/output error)
>> flash_erase: error!: /dev/mtd0: MTD Erase failure
>>               error 5 (Input/output error)
>> Erasing 64 Kibyte @ 110000 -- 100 % complete
>>
>> My best guess right now is that somehow the nonvolatile locking via the
>> advanced sector protection is active and locking this sector.
>>
>> Does anyone have some ideas on how to continue here? Is there some
> 
> If it's indeed about the individual block protection, you'll have to
> read the register that describes which registers are locked.

Yes, I'm digging into it right now. ;)

>> ongoing work to support the Micron advanced sector protection in Linux?
> 
> I'm adding support for individual block protection on sst26 flashes,
> which should be similar.

Do you by any chance have a WIP version to share, so that I could base
my work on this?

Thanks,
Stefan



More information about the linux-mtd mailing list