[U-Boot-Users] Running w/o flash

Wolfgang Denk wd at denx.de
Tue Mar 27 22:09:01 CEST 2007

In message <46095C4B.2090505 at atmel.com> you wrote:
> > No. The whole file is not compiled as it starts
> > 
> > 
> > If you have no flash, you need no flash commands, so you don't define
> > CFG_CMD_FLASH and everything is fine.
> I have flash, just not parallel flash.
> and I need the flash commands but not the stuff related to parallel flash.

There is no such concept as "parallel"  flash  in  U-Boot.  The  term
"flash"  is usually (*) used to name flash memory, i. e. some form of
non-volatile,  byte-addressable,  often  block-erasable  memory.  And
before  there is more confusion in terms: memory is something the CPU
can address on the address bus and read/write  data  from/to  on  the
data bus.

(*) The "usually" above refers to the fact that there are other types
    of storage devices like NAND flash, data flash, CompactFlash, ...
    that also use  the  work  "flash"  in  their  name,  but  without
    providing  a memory-like interface, so it is technically wrong to
    call these "flash memory".

The U-Boot command set enabled by the CFG_CMD_FLASH option provides
support for flash memory. Similar, the command set CFG_CMD_MEMORY
provides additional commands to operate on flash and other memory

In U-Boot, the meaning of the term "flash" is consistent, i. e.  both
CFG_NO_FLASH and CFG_CMD_FLASH refer to exactly the same definition:
flash memory.

If you define CFG_NO_FLASH it makes no sense to define  CFG_CMD_FLASH
as  "no  flash"  means that: there is no flash memory support on that
board. [You might argue that this should  actually  be  automatically
handled by U-Boot, i. e. defining both CFG_CMD_FLASH and CFG_NO_FLASH
on  one  board  should  throw an error condition. I will not reject a
patch that implements such checking, although I personally think this
is not needed.]

Now back to your  statement  of  having  "flash,  just  not  parallel
flash."  I know what you mean, but in the strict technical sense this
staement is wrong.  You  don't  have  flash  memory  (what  you  call
"parallel  flash"). We agree on that. But instead of simplyfying your
system description into "I have flash" you should correctly state:  I
have one or more flash storage devices (line NAND, Data Flash, etc.).

This is the crucial point of this discussion,  and  all  the  lengthy
previous  discussions  we  had about this: U-Boot memory commands and
U-Boot flash commands are intended to operate  on  memory,  including
flash  memory. The are NOT intended to operate on any kind of storage
devices. For storage devices a differen set of commands must be used.

I know, that the current code to support  Data  Flash  pretends  that
such  storage  devices  actually look like memory, but this is wrong.
And, as has been discussed several times before, this code shall  and
will  be  removed  from the U-Boot tree, and replaced by somthing new
which better represents tha actual nature and access  types  to  such
storage devices.

> Exactly, but there is flash, but not any *parallel* flash
> so the flash commands are needed, but not the stuff
> related to parallel flash.

Instead of trying to extend the current, deprecated implementation, I
would like to ask you to rather help to eliminate and replace it with
something better.


Best regards,

Wolfgang Denk

DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk
Office:  Kirchenstr. 5,       D-82194 Groebenzell,            Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
You cannot propel yourself forward by patting yourself on the back.

More information about the U-Boot mailing list