[U-Boot] OneNAND: Continuous locking scheme?

Kyungmin Park kmpark at infradead.org
Tue Nov 11 10:04:58 CET 2008


Hi,

On Tue, Nov 11, 2008 at 5:43 PM, Stefan Roese <sr at 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


More information about the U-Boot mailing list