[ECOS] Problem with Flash drivers, RedBoot, and Flash high in thememory map

Jonathan Larmour jlarmour@redhat.com
Tue Jan 15 08:23:00 GMT 2002

Paul Fine wrote:
> I am porting the Flash drivers to the Motorola MPC8260 Voyager Advanced
> Development Board.  This board puts the Flash in the last 8M of the 32 bit
> memory map.  I have run into trouble getting the fis commands to work due
> to the fact that many of the functions to manipulate the flash use as the
> address of the end of the Flash
> end_addr = Flash_start_addr + length(Flash)
> In my case, the end_addr wraps around so the value is 0x0, so any compares
> to see if my working address is greater than the end_addr always are true.
> I am now going through the code to find all the places where I need to
> subtract 1 from my end_addr and change the compares from "<" to "<=".

I think that's fine.

> Has anyone else encountered this issue, or am I the first one to use Flash
> at the high end of the memory map, or am I missing a switch, CDL option, or
> something else obvious?

You're probably the first.

> In a somewhat related issue, the Sharp Flash memory that is on the board
> supports locking of the Flash blocks.  The way it works is that you can
> individually lock a 256K block, but unlocking affects all 32 blocks.  In
> order to use locking, I will implement the unlock function as a three step
> process:
> 1)  Query Flash to determine which blocks are locked.
> 2)  If the block I want to unlock is locked, unlock all blocks (its the
> only choice I have)
> 3)  Go back and relock the blocks that were originally locked.
> Does the Intel implementation of this Flash standard implement individual
> block unlocking?

I don't believe so from a glance at

Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine

More information about the Ecos-discuss mailing list