This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: 28Fxxx Flash query problem
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];
>
> CYGHWR_FLASH_WRITE_ENABLE();
>
> ROM[0] = FLASH_Read_ID;
>
> // Manufacturers' code
> id[0] = ROM[0];
> // Part number
> id[1] = ROM[1];
>
> ROM[0] = FLASH_Reset;
>
> CYGHWR_FLASH_WRITE_DISABLE();
>
> // 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.
Andrew
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss