public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] U-boot environment not loading from flash
@ 2006-02-11  0:52 Umar Qureshey
  2006-02-11  1:21 ` Wolfgang Denk
  0 siblings, 1 reply; 5+ messages in thread
From: Umar Qureshey @ 2006-02-11  0:52 UTC (permalink / raw)
  To: u-boot

Hi,

I am using latest u-boot with an ARM Integrator/CP board (16MB flash).  
Everything is fine except that when I save the environment in the flash 
and reboot the system, u-boot restarts with the environment variables it 
was compiled with, not what has been saved in the flash sector.  I used 
the md command to peek into the specified flash sector (0x24f80000) and 
I did see the saved environment stuff in there.  It just seems that it 
does not get reloaded and also it does not give any error about bad CRC 
of the environment variables saved in flash.  CFG_ENV_IS_IN_FLASH is 
defined as (1).   I can always recompile with the correct environment 
variables but I should not need to if this feature works. 

Any clues anyone??

Regards,
Umar

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot-Users] U-boot environment not loading from flash
  2006-02-11  0:52 [U-Boot-Users] U-boot environment not loading from flash Umar Qureshey
@ 2006-02-11  1:21 ` Wolfgang Denk
  2006-02-11  1:56   ` Umar Qureshey
  0 siblings, 1 reply; 5+ messages in thread
From: Wolfgang Denk @ 2006-02-11  1:21 UTC (permalink / raw)
  To: u-boot

In message <43ED3544.3040007@quartics.com> you wrote:
> 
> I am using latest u-boot with an ARM Integrator/CP board (16MB flash).  
> Everything is fine except that when I save the environment in the flash 
> and reboot the system, u-boot restarts with the environment variables it 
> was compiled with, not what has been saved in the flash sector.  I used 
...
> Any clues anyone??

Sounds as if your system was misconfigured.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If you want strict real-time behavior, run in the real  time  schedu-
ling class.  But there are no seatbelts or airbags;  main(){for(;;);}
can hard hang your system.                          -- Bart Smaalders

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot-Users] U-boot environment not loading from flash
  2006-02-11  1:21 ` Wolfgang Denk
@ 2006-02-11  1:56   ` Umar Qureshey
  2006-02-11 13:19     ` Wolfgang Denk
  0 siblings, 1 reply; 5+ messages in thread
From: Umar Qureshey @ 2006-02-11  1:56 UTC (permalink / raw)
  To: u-boot

Wolfgang Denk wrote:

>In message <43ED3544.3040007@quartics.com> you wrote:
>  
>
>>I am using latest u-boot with an ARM Integrator/CP board (16MB flash).  
>>Everything is fine except that when I save the environment in the flash 
>>and reboot the system, u-boot restarts with the environment variables it 
>>was compiled with, not what has been saved in the flash sector.  I used 
>>    
>>
>...
>  
>
>>Any clues anyone??
>>    
>>
>
>Sounds as if your system was misconfigured.
>
>Best regards,
>
>Wolfgang Denk
>
>  
>
Yes, indeed.  What source file/configuration define do I need to look at 
to see the cause of this problem??

Regards,
Umar

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot-Users] U-boot environment not loading from flash
  2006-02-11  1:56   ` Umar Qureshey
@ 2006-02-11 13:19     ` Wolfgang Denk
  2006-02-14  1:57       ` Umar Qureshey
  0 siblings, 1 reply; 5+ messages in thread
From: Wolfgang Denk @ 2006-02-11 13:19 UTC (permalink / raw)
  To: u-boot

In message <43ED4459.3060007@quartics.com> you wrote:
> 
> >Sounds as if your system was misconfigured.
...
> Yes, indeed.  What source file/configuration define do I need to look at 
> to see the cause of this problem??

In the first step: your board configuration file(s), i. e.
include/config/<board>.h and board/<board>/config.mk

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Gew?hnlich glaubt der Mensch,  wenn er nur Worte h?rt,  es m?sse sich
dabei doch auch was denken lassen.                 -- Goethe, Faust I

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot-Users] U-boot environment not loading from flash
  2006-02-11 13:19     ` Wolfgang Denk
@ 2006-02-14  1:57       ` Umar Qureshey
  0 siblings, 0 replies; 5+ messages in thread
From: Umar Qureshey @ 2006-02-14  1:57 UTC (permalink / raw)
  To: u-boot

Wolfgang Denk wrote:

>In message <43ED4459.3060007@quartics.com> you wrote:
>  
>
>>>Sounds as if your system was misconfigured.
>>>      
>>>
>...
>  
>
>>Yes, indeed.  What source file/configuration define do I need to look at 
>>to see the cause of this problem??
>>    
>>
>
>In the first step: your board configuration file(s), i. e.
>include/config/<board>.h and board/<board>/config.mk
>
>Best regards,
>
>Wolfgang Denk
>
>  
>
Hi,

I have made some progress on this issue.  I thought that fully 
describing the scenario might help in deciphering the solution.

I am working without the ARM JTAG tools.  In order to get U-Boot up and 
flashed, I had to rely on the ARM bootPROM monitor that comes built-in 
in the Integrator/CP board. 
So to get U-Boot flashed, I take the U-Boot binary and run the following 
command on it:

arm-linux-objcopy --change-address 0x24000000 -I binary -O srec 
u-boot.bin my-u-boot.srec

The command above changes the base address fro 0x1000000 (SDRAM) to 
0x24000000 (first sector of the flash chip).  I send this srec file to 
the monitor which flashes
the file to the flash chip.  This allows me to flip a switch on the 
board and the ARM bootPROM monitor to run the image at location 
0x24000000. 

The problem I am encountering is that U-Boot does not load the saved 
environment variables from flash but rather uses the ones that have been 
compiled-in with the code. 
I found out this is happening because of the following code in 
include/environment.h:

# if (CFG_ENV_ADDR >= CFG_MONITOR_BASE) && \
     (CFG_ENV_ADDR+CFG_ENV_SIZE) <= (CFG_MONITOR_BASE + CFG_MONITOR_LEN)
#   define ENV_IS_EMBEDDED      1
# endif

So, in common/env_flash.c, I put the following@the beginning:

#undef ENV_IS_EMBEDDED

This changes the environment address to 0x24f80000, which is the correct 
address.  However, when I print the environment using the "printenv" 
command I get:

Integrator-CP # printenv
bo?
cm?
cp?
x2?
80?
0 ?
7f?
 0?
00?
0;?
oo?

An "md" command on that address reveals the following memory contents:

Integrator-CP # md 0x24f80000
24f80000: 00b4d8f9 00b46f62 00b46d63 00b47063    ....bo..cm..cp..
24f80010: 00b43278 00b43038 00b42030 00b46637    x2..80..0 ..7f..
24f80020: 00b43020 00b43030 00b43b30 00b46f6f     0..00..0;..oo..
24f80030: 00b46200 00b46474 00b47961 00b46200    .b..td..ay...b..
24f80040: 00b47264 00b43d65 00b43034 00b47473    dr..e=..40..st..
24f80050: 00b43d6e 00b46972 00b47300 00b4756f    n=..ri...s..ou..
24f80060: 00b46573 00b46c61 00b46474 00b43d72    se..al..td..r=..
24f80070: 00b46972 00b47600 00b46669 00b4006e    ri...v..if..n...
24f80080: 00b4746f 00b47367 00b46f6f 00b4642f    ot..gs..oo../d..
24f80090: 00b46d2f 00b46c62 00b4306b 00b42077    /m..bl..k0..w ..
24f800a0: 00b4746f 00b47974 00b46a3d 00b43273    ot..ty..=j..s2..
24f800b0: 00b46474 00b47472 00b47261 00b4616c    td..rt..ar..la..
24f800c0: 00b4302e 00b46178 00b43030 00b47830    .0..xa..00..0x..
24f800d0: 00b43030 00b46a28 00b43273 00b46f63    00..(j..s2..co..
24f800e0: 00b46c6f 00b47474 00b4414d 00b47069    ol..tt..MA..ip..
24f800f0: 00b46e6f 00b40000 00b40000 00b40000    on..............


However, I know that this data is not being read correctly because if I 
define ENV_IS_EMBEDDED again, recompile, and reload then I get:

Integrator-CP # md 0x24f80000
24f80000: 3eb0d8f9 746f6f62 3d646d63 30207063    ...>bootcmd=cp 0
24f80010: 30343278 30303038 78302030 30636637    x24080000 0x7fc0
24f80020: 31783020 30303030 62203b30 6d746f6f     0x100000; bootm
24f80030: 6f6f6200 6c656474 323d7961 75616200    .bootdelay=2.bau
24f80040: 74617264 38333d65 00303034 69647473    drate=38400.stdi
24f80050: 65733d6e 6c616972 64747300 3d74756f    n=serial.stdout=
24f80060: 69726573 73006c61 72656474 65733d72    serial.stderr=se
24f80070: 6c616972 72657600 3d796669 6f62006e    rial.verify=n.bo
24f80080: 7261746f 723d7367 3d746f6f 7665642f    otargs=root=/dev
24f80090: 64746d2f 636f6c62 7220306b 6f722077    /mtdblock0 rw ro
24f800a0: 7366746f 65707974 66666a3d 6d203273    otfstype=jffs2 m
24f800b0: 61706474 3d737472 666d7261 6873616c    tdparts=armflash
24f800c0: 303a302e 30306178 40303030 63327830    .0:0xa00000 at 0x2c
24f800d0: 30303030 66666a28 20293273 736e6f63    0000(jffs2) cons
24f800e0: 3d656c6f 41797474 2030414d 6e3d7069    ole=ttyAMA0 ip=n
24f800f0: 00656e6f 00000000 00000000 00000000    one.............

So the actual data is still stored in flash in perfect condition but 
defining ENV_IS_EMBEDDED causes U-Boot to start eating the data when it 
reads it.

Any help on why this is happening is appreciated...

Regards,
Umar

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-02-14  1:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-11  0:52 [U-Boot-Users] U-boot environment not loading from flash Umar Qureshey
2006-02-11  1:21 ` Wolfgang Denk
2006-02-11  1:56   ` Umar Qureshey
2006-02-11 13:19     ` Wolfgang Denk
2006-02-14  1:57       ` Umar Qureshey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox