Re: [U-Boot] FLASH write bug on NGW100

<reconstructing thread and cc'ing u-boot list; please don't top-post :-)>
when using the latest u-boot version from git://www.denx.de/git/u-boot-avr32.git, it is not possible for me to write (I have tried saveenv and protect) to NOR FLASH anymore.
U-Boot gives the following error: "start or end address not on sector boundary"
Is this a known problem?
Gerhard
Post the exact commands you are using. Probably you are using wrong addresses
The exact command:
U-Boot> saveenv Saving Environment to Flash... Error: start and/or end address not on sector boundary
Seriously, it's that easy. The addresses are the default ones found in include/configs/atngw100.h since the dawn of time :-)
--Ben.
On Wed, 2009-05-20 at 13:08 +0200, Eirik Aanonsen wrote:
I dont have tha board. What result do you get if you run: Flinfo ( post it back here )
On Wed, 2009-05-20 at 15:54 +0200, Gerhard Berghofer wrote:
Hi Eirik,
flinfo with u-boot version >= 2009.03 gives the following output:
###################################################################### Bank # 1: CFI conformant FLASH (16 x 16) Size: 8 MB in 135 Sectors AMD Standard command set, Manufacturer ID: 0x1F, Device ID: 0x1D6 Erase timeout: 8192 ms, write timeout: 1 ms Buffer write timeout: 1 ms, buffer size: 4 bytes
Sector Start Addresses: A0000000 A0002000 A0004000 A0006000 A0008000 A000A000 A000C000 A000E000 A0010000 A0020000 A0030000 A0040000 A0050000 A0060000 A0070000
...
flinfo with u-boot version 2008.10 gives the following output:
###################################################################### Bank # 1: CFI conformant FLASH (16 x 16) Size: 8 MB in 135 Sectors AMD Standard command set, Manufacturer ID: 0x1F, Device ID: 0x1D6 Erase timeout: 8192 ms, write timeout: 1 ms Buffer write timeout: 1 ms, buffer size: 4 bytes
Sector Start Addresses: 00000000 RO 00002000 RO 00004000 RO 00006000 RO 00008000 RO 0000A000 RO 0000C000 RO 0000E000 RO 00010000 RO 00020000 00030000 00040000 00050000 00060000 00070000
...
the FLASH seems to be attached to a wrong address range ...
Well on the AVR32 both addresses are correct - the first accessed the flash through the uncached, untranslatable segment, now it's both cached and translated but that should only be a win. I guess though that the environment address (which in the config is set to 007F0000) is still somehow somewhere being translated to A07F0000 then breaking all the flash range checking.
But I'm kinda guessing here, I hope someone on the u-boot list can tell us it's known and fixed and we should be have scoured their archives harder ;-)
--Ben.

<reconstructing thread and cc'ing u-boot list; please don't top-post :-)>
Sorry.. a little to quick
when using the latest u-boot version from git://www.denx.de/git/u-boot-avr32.git, it is not possible for me to write (I have tried saveenv and protect) to NOR FLASH anymore.
U-Boot gives the following error: "start or end address not on sector boundary"
Is this a known problem?
Gerhard
Post the exact commands you are using. Probably you are using wrong addresses
The exact command:
?U-Boot> saveenv Saving Environment to Flash... Error: start and/or end address not on sector boundary
Seriously, it's that easy. The addresses are the default ones found in include/configs/atngw100.h since the dawn of time :-)
--Ben.
?
On Wed, 2009-05-20 at 13:08 +0200, Eirik Aanonsen wrote:
?I dont have tha board. What result do you get if you run: Flinfo ( post it back here )
On Wed, 2009-05-20 at 15:54 +0200, Gerhard Berghofer wrote:
Hi Eirik,
flinfo with u-boot version >= 2009.03 gives the following output:
###################################################################### Bank # 1: CFI conformant FLASH (16 x 16) Size: 8 MB in 135 Sectors AMD Standard command set, Manufacturer ID: 0x1F, Device ID: 0x1D6 Erase timeout: 8192 ms, write timeout: 1 ms Buffer write timeout: 1 ms, buffer size: 4 bytes
Sector Start Addresses: A0000000 A0002000 A0004000 A0006000 A0008000 A000A000 A000C000 A000E000 A0010000 A0020000 A0030000 A0040000 A0050000 A0060000 A0070000
...
flinfo with u-boot version 2008.10 gives the following output:
###################################################################### Bank # 1: CFI conformant FLASH (16 x 16) Size: 8 MB in 135 Sectors AMD Standard command set, Manufacturer ID: 0x1F, Device ID: 0x1D6 Erase timeout: 8192 ms, write timeout: 1 ms Buffer write timeout: 1 ms, buffer size: 4 bytes
Sector Start Addresses: 00000000 RO 00002000 RO 00004000 RO 00006000 RO 00008000 RO 0000A000 RO 0000C000 RO 0000E000 RO 00010000 RO 00020000 00030000 00040000 00050000 00060000 00070000
...
?the FLASH seems to be attached to a wrong address range ...
Well on the AVR32 both addresses are correct - the first accessed the flash through the uncached, untranslatable segment, now it's both cached and translated but that should only be a win. I guess though that the environment address (which in the config is set to 007F0000) is still somehow somewhere being translated to A07F0000 then breaking all the flash range checking.
But I'm kinda guessing here, I hope someone on the u-boot list can tell us it's known and fixed and we should be have scoured their archives harder ;-)
--Ben.
How about to try and change the base to 0xA0000000 ? #define CONFIG_SYS_FLASH_BASE 0x00000000
That could help some on how to get the env address set ok..
Not sure of this would break the #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_FLASH_BASE
____________________________________________________
Eirik Aanonsen SW Developer E-mail: eaa@wprmedical.com Phone: +47 90 68 11 92 Fax: +47 37 03 56 77 ____________________________________________________
participants (2)
-
Ben Nizette
-
Eirik Aanonsen