[ECOS] 28Fxxx Flash query problem

Andrew Lunn andrew@lunn.ch
Mon Jun 23 16:25:00 GMT 2008

On Mon, Jun 23, 2008 at 04:22:57PM +0100, Steven Clugston wrote:
> I'm trying to add flash support to a board that has a single 28F320C3-T
> part.
> I've included the Intel flash_28fxxx and generic flask packages and
> provided a platform flash package as well.
> To test this I've created a Redboot RAM Elf image built from cvs which I
> upload and start from an older Redboot image installed a couple of years
> ago on separate internal flash.
> The problem is that when I run the image, it hangs in
> flash_28fxxx_parts.inl flash_query function:
> void
> flash_query(void* data)
> {
>     volatile flash_data_t *ROM;
>     flash_data_t* id = (flash_data_t*) data;
>     flash_data_t w;
>     ROM = (volatile flash_data_t*) CYGNUM_FLASH_BASE;
>     w = ROM[0];
>     ROM[0] = FLASH_Read_ID;
>     // Manufacturers' code
>     id[0] = ROM[0];
>     // Part number
>     id[1] = ROM[1];
>     ROM[0] = FLASH_Reset;
>     // Stall, waiting for flash to return to read mode.
>     while (w != ROM[0]);
> }
> Using a hardware debugger to interrupt execution is it always stuck in
> the while loop at the end of this function.
> If I force the program counter back to the start of the function and
> step though it works fine, the flash chip returns the correct
> manufacturer and parts id's and I get all the Redboot 'fconfig'
> commands.
> Strangely, (perhaps because the code has been inlined?) if I set a
> breakpoint to catch it before it goes through they don't seem to work
> and it still drops through to the while loop, and the debugger gives
> register locations instead of memory addresses for variable locations.
> Does anybody have any ideas how to tackle this?

Do you have an MMU? Have you configured the address space to be none
caching, write through etc.


Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list