
Hi,
On Tue, Nov 11, 2008 at 5:43 PM, Stefan Roese sr@denx.de wrote:
Hi Kyungmin,
I'm experiencing a problem with one OneNAND device on our board:
KFG1216U2B (512Mbit)
Here the output from the U-Boot bootup:
OneNAND 64MB 2.65/3.3V 16-bit (0x25) OneNAND version = 0x022e Lock scheme is Continuous Lock Scanning device for bad blocks OneNAND: 64 MB
It's wrong report, The latest chip use block lock scheme.
As you can see the device is reported to have a "Continuous Lock" scheme. But this doesn't work. When I try to erase a block I get the following error:
OneNAND erase: offset 0x0, size 0x100000 onenand_wait: controller error = 0x4c00 onenand_wait: it's locked error = 0x4c00 onenand_erase: Failed erase, block 1 erase failed block 1 at 0x20000
When I disable this continuous locking check in onenand_base.c and all blocks are unlocked individually then everything is ok. So I suspect that either the implementation of the continuous locking scheme is incorrect or the device is not really supporting this scheme.
Actually device doesn't support continuous lock scheme. The continuous lock scheme is used early OneNAND chip.
I'm still new to OneNAND and I couldn't
find any reference to this continuous locking scheme in the OneNAND chip used here. Do you have any idea why this is not working for us? Do you know for sure if the KFG1216U2B (Dev-ID 0x25) really supports this continuous locking scheme?
In onenand_check_features()
default: /* Some OneNAND has continuous lock scheme */ if (!process) this->options |= ONENAND_HAS_CONT_LOCK;
It's some strange. As your version id is 0x22e. then process is 0x2. umm maybe options field is not cleared before. please check this one.
Thank you, Kyungmin Park