* [U-Boot-Users] environment not being used
@ 2004-01-30 0:48 Shamile Khan
2004-01-31 17:12 ` Wolfgang Denk
0 siblings, 1 reply; 6+ messages in thread
From: Shamile Khan @ 2004-01-30 0:48 UTC (permalink / raw)
To: u-boot
Hi,
I am using U-boot on our FPGA based board. Currently, its not possible
to execute instructions directly from flash on our board since our flash
device is configured as an 8-bit device and it is connected to a 32-bit
processor bus.
To get around this, we have a small program which is stored in FPGA
bitstream and runs in FPGA on-chip memory (called BRAM). This program
copies u-boot binary image from flash to sdram and jumps to it. This
allows U-boot to run. However the problem is that the environment
variables saved in flash are not being used even though U-boot has been
configured with the CFG_ENV_IS_IN_FLASH option turned on.
CFG_FLASH_BASE has been set to the flash base address of u-boot and when
I use saveenv the environment is saved at the proper offset
CFG_ENV_OFFSET. The only thing thats a bit different for my U-boot
configuration is that CFG_MONITOR_BASE is set to the sdram base address
where U-boot starts executing from instead of being set to
CFG_FLASH_BASE.
Any ideas why the environment variables in flash do not get used?
Thanks,
Shamile
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot-Users] environment not being used
2004-01-30 0:48 [U-Boot-Users] environment not being used Shamile Khan
@ 2004-01-31 17:12 ` Wolfgang Denk
2004-02-04 0:47 ` Shamile Khan
0 siblings, 1 reply; 6+ messages in thread
From: Wolfgang Denk @ 2004-01-31 17:12 UTC (permalink / raw)
To: u-boot
In message <1075423717.18221.233.camel@localhost.localdomain> you wrote:
>
> To get around this, we have a small program which is stored in FPGA
> bitstream and runs in FPGA on-chip memory (called BRAM). This program
> copies u-boot binary image from flash to sdram and jumps to it. This
> allows U-boot to run. However the problem is that the environment
> variables saved in flash are not being used even though U-boot has been
> configured with the CFG_ENV_IS_IN_FLASH option turned on.
> CFG_FLASH_BASE has been set to the flash base address of u-boot and when
> I use saveenv the environment is saved at the proper offset
> CFG_ENV_OFFSET. The only thing thats a bit different for my U-boot
> configuration is that CFG_MONITOR_BASE is set to the sdram base address
> where U-boot starts executing from instead of being set to
> CFG_FLASH_BASE.
Normally U-Boot attempts to read the environment when starting from
the same position in memory where it will save it to when you issue a
"saveenv" command. You will have to modify U-Boot such that the
initialization reads from the "fixed" copy in RAM, while "saveenv"
saves to the address in flash, performing the 16-bit-expansion needed
for your setup. It seems obvious that a plain copy as usuall cannot
work on your system.
Best regards,
Wolfgang Denk
--
See us @ Embedded World, Nuremberg, Feb 17 - 19, Hall 12.0 Booth 440
Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd at denx.de
Drun'? 'm not drun'! You woudn' dare call m' drun' if I was sober!
- Terry Pratchett, _Men at Arms_
^ permalink raw reply [flat|nested] 6+ messages in thread* [U-Boot-Users] environment not being used
2004-01-31 17:12 ` Wolfgang Denk
@ 2004-02-04 0:47 ` Shamile Khan
2004-02-04 20:30 ` Wolfgang Denk
0 siblings, 1 reply; 6+ messages in thread
From: Shamile Khan @ 2004-02-04 0:47 UTC (permalink / raw)
To: u-boot
Hi,
Just as a follow up, I conclude that U-boot treats flash reads exactly
as sdram reads i.e. 32-bit accesses. So its not just about the
environment variables. Most of the flash-based U-boot functionality
wouldn't work for us unless we modify all the commands that have access
to flash e.g md, imiinfo, bootm etc. A hardware fix (an 8-bit bus to our
byte-mode flash chip) seems like the right way to go.
Shamile
On Sat, 2004-01-31 at 12:12, Wolfgang Denk wrote:
> In message <1075423717.18221.233.camel@localhost.localdomain> you wrote:
> >
> > To get around this, we have a small program which is stored in FPGA
> > bitstream and runs in FPGA on-chip memory (called BRAM). This program
> > copies u-boot binary image from flash to sdram and jumps to it. This
> > allows U-boot to run. However the problem is that the environment
> > variables saved in flash are not being used even though U-boot has been
> > configured with the CFG_ENV_IS_IN_FLASH option turned on.
> > CFG_FLASH_BASE has been set to the flash base address of u-boot and when
> > I use saveenv the environment is saved at the proper offset
> > CFG_ENV_OFFSET. The only thing thats a bit different for my U-boot
> > configuration is that CFG_MONITOR_BASE is set to the sdram base address
> > where U-boot starts executing from instead of being set to
> > CFG_FLASH_BASE.
>
> Normally U-Boot attempts to read the environment when starting from
> the same position in memory where it will save it to when you issue a
> "saveenv" command. You will have to modify U-Boot such that the
> initialization reads from the "fixed" copy in RAM, while "saveenv"
> saves to the address in flash, performing the 16-bit-expansion needed
> for your setup. It seems obvious that a plain copy as usuall cannot
> work on your system.
>
> Best regards,
>
> Wolfgang Denk
>
> --
> See us @ Embedded World, Nuremberg, Feb 17 - 19, Hall 12.0 Booth 440
> Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd at denx.de
> Drun'? 'm not drun'! You woudn' dare call m' drun' if I was sober!
> - Terry Pratchett, _Men at Arms_
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot-Users] environment not being used
2004-02-04 0:47 ` Shamile Khan
@ 2004-02-04 20:30 ` Wolfgang Denk
2004-02-04 23:15 ` Shamile Khan
0 siblings, 1 reply; 6+ messages in thread
From: Wolfgang Denk @ 2004-02-04 20:30 UTC (permalink / raw)
To: u-boot
In message <1075855660.7664.95.camel@localhost.localdomain> you wrote:
>
> Just as a follow up, I conclude that U-boot treats flash reads exactly
> as sdram reads i.e. 32-bit accesses. So its not just about the
This is not correct.
U-Boot accesses the flash just the way how you configure your memory
controller for flash accesses.
> to flash e.g md, imiinfo, bootm etc. A hardware fix (an 8-bit bus to our
> byte-mode flash chip) seems like the right way to go.
Either you or me must be missing something. Why don't you just
configure U-Boot for a 8 bit flash device then?
Best regards,
Wolfgang Denk
--
See us @ Embedded World, Nuremberg, Feb 17 - 19, Hall 12.0 Booth 440
Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd at denx.de
Real Programmers always confuse Christmas and Halloween because
OCT 31 == DEC 25 ! - Andrew Rutherford (andrewr at ucs.adelaide.edu.au)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot-Users] environment not being used
2004-02-04 20:30 ` Wolfgang Denk
@ 2004-02-04 23:15 ` Shamile Khan
2004-02-04 23:34 ` Wolfgang Denk
0 siblings, 1 reply; 6+ messages in thread
From: Shamile Khan @ 2004-02-04 23:15 UTC (permalink / raw)
To: u-boot
On Wed, 2004-02-04 at 15:30, Wolfgang Denk wrote:
> In message <1075855660.7664.95.camel@localhost.localdomain> you wrote:
> >
> > Just as a follow up, I conclude that U-boot treats flash reads exactly
> > as sdram reads i.e. 32-bit accesses. So its not just about the
>
> This is not correct.
>
> U-Boot accesses the flash just the way how you configure your memory
> controller for flash accesses.
Exactly. The memory controller is in FPGA. Its been configured to have a
data bus width of 8 bits to the flash memory device. Consequently if a
32 bit access is requested, the first 8 bits are fine and the rest are
garbage.
>
> > to flash e.g md, imiinfo, bootm etc. A hardware fix (an 8-bit bus to our
> > byte-mode flash chip) seems like the right way to go.
>
> Either you or me must be missing something. Why don't you just
> configure U-Boot for a 8 bit flash device then?
I do have the flash device configured as an 8-bit device and flash
memory writes are for byte mode in the flash driver. So writes to flash
are fine as long as I use cp.b instead of just cp.
As far as reads are concerned, since the flash device is in byte mode I
can only access 8 bits in one flash memory read cycle. However U-boot
commands like md, bootm, iminfo, crc32 etc access 32 bits in one flash
memory read cycle (md.b is an exception).
So those commands would work if I have for example 4 byte-mode flash
devices and the memory controller concatenates the data thats read from
those devices. But I only have one byte-mode flash device.
> Best regards,
>
> Wolfgang Denk
>
> --
> See us @ Embedded World, Nuremberg, Feb 17 - 19, Hall 12.0 Booth 440
> Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd at denx.de
> Real Programmers always confuse Christmas and Halloween because
> OCT 31 == DEC 25 ! - Andrew Rutherford (andrewr at ucs.adelaide.edu.au)
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot-Users] environment not being used
2004-02-04 23:15 ` Shamile Khan
@ 2004-02-04 23:34 ` Wolfgang Denk
0 siblings, 0 replies; 6+ messages in thread
From: Wolfgang Denk @ 2004-02-04 23:34 UTC (permalink / raw)
To: u-boot
In message <1075936515.1553.21.camel@localhost.localdomain> you wrote:
>
> > U-Boot accesses the flash just the way how you configure your memory
> > controller for flash accesses.
>
> Exactly. The memory controller is in FPGA. Its been configured to have a
> data bus width of 8 bits to the flash memory device. Consequently if a
> 32 bit access is requested, the first 8 bits are fine and the rest are
> garbage.
Then your memory controller is broken.
Best regards,
Wolfgang Denk
--
See us @ Embedded World, Nuremberg, Feb 17 - 19, Hall 12.0 Booth 440
Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd at denx.de
To the systems programmer, users and applications serve only to
provide a test load.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2004-02-04 23:34 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-01-30 0:48 [U-Boot-Users] environment not being used Shamile Khan
2004-01-31 17:12 ` Wolfgang Denk
2004-02-04 0:47 ` Shamile Khan
2004-02-04 20:30 ` Wolfgang Denk
2004-02-04 23:15 ` Shamile Khan
2004-02-04 23:34 ` Wolfgang Denk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox