linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* MT25Q Advanced Sector Protection support
@ 2021-04-15  9:20 Stefan Roese
  2021-04-15  9:40 ` Tudor.Ambarus
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Roese @ 2021-04-15  9:20 UTC (permalink / raw)
  To: linux-mtd, Tudor Ambarus, Miquel Raynal

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
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
ongoing work to support the Micron advanced sector protection in Linux?
Or did I miss something trivial perhaps?

Thanks,
Stefan

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: MT25Q Advanced Sector Protection support
  2021-04-15  9:20 MT25Q Advanced Sector Protection support Stefan Roese
@ 2021-04-15  9:40 ` Tudor.Ambarus
  2021-04-15  9:44   ` Stefan Roese
  0 siblings, 1 reply; 4+ messages in thread
From: Tudor.Ambarus @ 2021-04-15  9:40 UTC (permalink / raw)
  To: sr, linux-mtd, miquel.raynal

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.

> 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.

> 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.

Cheers,
ta

> Or did I miss something trivial perhaps?
> 
> Thanks,
> Stefan

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: MT25Q Advanced Sector Protection support
  2021-04-15  9:40 ` Tudor.Ambarus
@ 2021-04-15  9:44   ` Stefan Roese
  2021-04-15 10:05     ` Tudor.Ambarus
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Roese @ 2021-04-15  9:44 UTC (permalink / raw)
  To: Tudor.Ambarus, linux-mtd, miquel.raynal

Hi Tudor,

On 15.04.21 11:40, Tudor.Ambarus@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

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: MT25Q Advanced Sector Protection support
  2021-04-15  9:44   ` Stefan Roese
@ 2021-04-15 10:05     ` Tudor.Ambarus
  0 siblings, 0 replies; 4+ messages in thread
From: Tudor.Ambarus @ 2021-04-15 10:05 UTC (permalink / raw)
  To: sr, linux-mtd, miquel.raynal

On 4/15/21 12:44 PM, Stefan Roese wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> Hi Tudor,
> 
> On 15.04.21 11:40, Tudor.Ambarus@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

oh yes, I  missed that.

> well. But hey, I also tried "flash_unlock" without any success. I assume
> that this command unlocks all sectors in the MTD device automatically.

yes, this is what I would expect.

> 
>>> 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?

The sst26 individual block protection is vendor specific, has some read and
write locking features, the individual block protection is discovered by
parsing a vendor specific table, etc. My implementation will reside in sst.c.

You have to check if the Individual Block Protection scheme supported by
micron is used by other vendors as well, and if yes, the code should
reside in swp.c. Similar flash support, but different implementations.
I have 2 patches at:

To https://github.com/ambarus/linux-0day.git
 * [new branch]                spi-nor/next-sst26-locking -> spi-nor/next-sst26-locking

Cheers,
ta
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-04-15 10:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-15  9:20 MT25Q Advanced Sector Protection support Stefan Roese
2021-04-15  9:40 ` Tudor.Ambarus
2021-04-15  9:44   ` Stefan Roese
2021-04-15 10:05     ` Tudor.Ambarus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).