This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: Booting from Flash in a AT91M55800A based platform
- From: Frank Pagliughi <fpagliughi at mindspring dot com>
- To: Pazos Escudero Nuria <Nuria dot PazosEscudero at he-arc dot ch>
- Cc: ecos-discuss at ecos dot sourceware dot org
- Date: Fri, 01 Aug 2008 15:33:50 -0400
- Subject: Re: [ECOS] Booting from Flash in a AT91M55800A based platform
- References: <F7620004260C5D4DB836EDBF8CC6872D037CB694@neptune.intra.eiaj.ch>
Pazos Escudero Nuria wrote:
Hi,
I've ported eCos and RedBoot for a proprietary platform comprising the
AT91M55800A processor a SRAM and three S29AL016D90TFI02 flash modules.
The RAM version works fine and I can communicate with the RedBoot
console through the serial port, but I have not yet managed to make the
platform boot from the flash (after copying the ROM version of the
ported RedBoot on the flash address pointed by the chip select 0). I
don't know whether the problem comes from the platform porting or from
the fact that eCos does not recognize the used flash chips from
Spansion. Could you provide me any hint?
Thanks in advance!
Nuria
If you're programming the Flash chips with a JTAG, then the lack of eCos
drivers doesn't matter at this stage.
- Does the JTAG software claim that the "program and verify" worked
properly?
- Are the Flash chips properly wired on the board?
- Did you set up the "_InitMemory" table in "hal_platform_setup.h" for
the Flash chip(s). You need to set the base address, # wait states, etc.
Plus the base address for each CS line must be different, even if the CS
is disabled.
- You should be able to reset the CPU and single step through the first
few instructions, using the JTAG and/or gdb. Remember that the chip
starts with the first Flash (CS0) mapped to address zero. You can single
step up to the point where the chip select registers are loaded and make
sure that the values are being loaded properly. But note that you can't
step over the remap command since the debugger messes with the pipeline.
- One of the first things that the assembly startup does is set the
master clock (and maybe the PLL) running faster. If you set them running
faster than the external board can support, the board may lock up.
Whatever you're using to load the RAM debug code onto the board is
initializing it properly (a JTAG initialization file?). Use that as a
starting point. The only thing it isn't doing is setting up the Flash
chip select registers in the EBI, so pay careful attention to that.
Frank
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss