[U-Boot-Users] AM29LV160DT (top boot block and CFI)

Yuli Barcohen yuli at arabellasw.com
Tue Oct 18 18:50:51 CEST 2005


>>>>> Cliff Brake writes:

    Cliff> Hello.  I'm using the AM29LV160DT (top boot block) with the
    Cliff> u-boot CFI flash driver.  It seems that U-boot thinks this is
    Cliff> a bottom boot block device:

    Cliff> flinfo:

    Cliff> Bank # 1: CFI conformant FLASH (16 x 16) Size: 2 MB in 35
    Cliff> Sectors
    Cliff>  Erase timeout 16384 ms, write timeout 0 ms, buffer write
    Cliff>  timeout 1 ms, buffer size 1
    Cliff>   Sector Start Addresses:
    Cliff>     B8000000 B8004000 B8006000 B8008000 B8010000 B8020000
    Cliff>     B8030000 B8040000 B8050000 B8060000 B8070000 B8080000
    Cliff>     B8090000 B80A0000 B80B0000 B80C0000 B80D0000 B80E0000
    Cliff>     B80F0000 B8100000 B8110000 B8120000 B8130000 B8140000
    Cliff>     B8150000 B8160000 B8170000 B8180000 B8190000 B81A0000
    Cliff>     B81B0000 B81C0000 B81D0000 B81E0000 B81F0000

    Cliff> Note the boot sectors are appearing at the bottom of the
    Cliff> device instead of the top.

    Cliff> There is a note in the CFI specification that states:

    Cliff> 1. Erase Blocks always start at address 0 of the Bottom Boot
    Cliff>    or Uniform Low Version of the Flash Device

    Cliff> So I assume, the CFI information in the device is correct and
    Cliff> it must be swapped if you have a top boot block device.  If
    Cliff> this is true, the sector information needs to be reversed
    Cliff> after the device is scanned. Unfortunately, the CFI data for
    Cliff> this device does not include top/bottom boot info.  The only
    Cliff> other information I have found to key off of is the device
    Cliff> ID.

    Cliff> Has anyone else run into this problem and is there a better
    Cliff> solution than keying off the device ID and then reversing the
    Cliff> sector info?

I think this is exactly the special case of AM29LV160 chips which is
even mentioned in CFI documents (see CFI Publication 100). Four versions
of CFI query table format exist (1.0 to 1.3), and 1.0 does not include
top/bottom boot info. Almost no chip uses this format, probably only
AM29LV160 series uses it. So for these chips you have to check the
device ID. I think that the proper algorithm would be checking the CFI
table version and, in the case of 1.0, check additionally the device ID.

-- 
========================================================================
 Yuli Barcohen       | Phone +972-9-765-1788 |  Software Project Leader
 yuli at arabellasw.com | Fax   +972-9-765-7494 | Arabella Software, Israel
========================================================================





More information about the U-Boot mailing list