[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