* Numonyx NOR flash mutex problem when creating UBI volumes
@ 2011-02-02 11:18 Stefan Bigler
2011-02-02 14:54 ` Michael Cashwell
0 siblings, 1 reply; 2+ messages in thread
From: Stefan Bigler @ 2011-02-02 11:18 UTC (permalink / raw)
To: linux-mtd; +Cc: Holger brunck, joakim.tjernlund, mboards
Hi all,
we have on a powerpc based board with a new Numonyx P30 65nm 1GBit flash and
we see have problems with write errors when we create an ubi volume.
To find the problem I added few printk in the cfi_cmdset_0001.c
Adding a printk for erase suspend make the problem show always.
I expect a problem with the protection as discussed already in the thread
Numonyx NOR and chip->mutex bug?
I printed the time (using jiffies), the tid, the operation and address
of the operation.
-bash-3.2# ubimkvol /dev/ubi0 -s 6MiB -N test_volume
time tid operation address of operation my comments
---------------------------------------------------------------------------------
[0179][0209] do_erase_oneblock start adr=0x00000000 start
erase block
[0187][0465] erase suspend adr=0x01125000 erase
suspend (strange adr)
[0191][0209] erase resumed adr=0x00000000 erase
resume (correct adr)
[0199][0209] do_erase_oneblock end adr=0x00000000 erase end
[1175][0465] 50000000.flash: buffer write error status 0xb0
adr=0x01125400 len=0x400
program failed status (0xb0) ready & cmd sequence error
In addition I added all cmd sent to the flash in a buffer and print it
in case of error.
Here is the log:
time tid operation my comments
---------------------------------------------------------------------------------
[0187][0209] do_erase_oneblock start adr=0x00000000 first thread
Start with erasing adr=0
[0187][0209] map_write 0x50 to 0x00000000
Clr Status Reg
[0187][0209] map_write 0x20 to 0x00000000 Block
Erase adr=0
[0187][0209] map_write 0xd0 to 0x00000000 Block
Erase Confirm adr=0
[0187][0465] map_write 0xb0 to 0x01125000 second thread
Erase suspend
[0191][0465] map_write 0x70 to 0x01125000 Read
Status Reg
[0191][0465] map_write 0xe8 to 0x01125000
Buffered Prog adr=0x01125000
[0191][0209] map_write 0x70 to 0x00000000 first thread
Read Status Reg
[0191][0209] map_write 0xd0 to 0x00000000
Resume (what!?!)
[0191][0209] map_write 0x70 to 0x00000000
Read Status Reg
[0199][0209] erase resumed 2b adr=0x00000000
(Erase) Resumed Finsh
[0207][0209] do_erase_oneblock end adr=0x00000000
Erase finished
[0207][0465] map_write 0x1ff to 0x01125000 second thread
!!! contiune with Buffer Prog, write size
[0207][0465] map_write 0xc03c0000 to 0x01125000
write 512 word data to buf
[0207][0465] map_write 0xc03c0000 to 0x01125002
..
[0211][0465] map_write 0xc03c0000 to 0x011253fc
[0211][0465] map_write 0xc03c0000 to 0x011253fe
[0211][0465] map_write 0xd0 to 0x01125000
Buffered Prog Confirm
[1175][0465] map_write 0x50 to 0x01125000 Clr Status Reg
[1175][0465] map_write 0x70 to 0x01125000
Read Status Reg
[1183][0465] 50000000.flash: buffer write error status 0xb0
adr=0x01125400 len=0x0 (0x400) Buffered Prog failed status (0xb0) ready
& cmd sequence error
Conclusion:
I expect is a protection problem. A running erase is suspended due to
write. But the write is not finished.
The erase is resumed in the middle of the buffered Prog preparation.
Do you have any ideas why this can happen?
Best Regards
Stefan Bigler
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Numonyx NOR flash mutex problem when creating UBI volumes
2011-02-02 11:18 Numonyx NOR flash mutex problem when creating UBI volumes Stefan Bigler
@ 2011-02-02 14:54 ` Michael Cashwell
0 siblings, 0 replies; 2+ messages in thread
From: Michael Cashwell @ 2011-02-02 14:54 UTC (permalink / raw)
To: Stefan Bigler; +Cc: Holger brunck, linux-mtd, Joakim Tjernlund
On Feb 2, 2011, at 6:18 AM, Stefan Bigler wrote:
> To find the problem I added few printk in the cfi_cmdset_0001.c
> Adding a printk for erase suspend make the problem show always.
Interestingly, I've tended to see the problem also when doing UBI, but during writes, not formatting. And in my case adding printks to any relevant hot path tended to make the problem vanish.
> I expect a problem with the protection as discussed already in the thread Numonyx NOR and chip->mutex bug?
I believe I've found the issue. It was not a mutex bug as I originally thought though it was true that not dropping the chip mutex while waiting for lengthy commands to complete did mask the problem.
I was going to post my results later today anyway but as you are also struggling I'll endeavor to do this soon. I will also make the post as a follow-on to the message thread I originally started.
Just a few minutes, please.
-Mike Cashwell
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-02-02 14:53 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-02-02 11:18 Numonyx NOR flash mutex problem when creating UBI volumes Stefan Bigler
2011-02-02 14:54 ` Michael Cashwell
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.