DSPRelated.com
Forums

Booting 5410 from flash

Started by Santosh M Nadig February 3, 2002
Hello all,

I have a problem with booting 5410 from Flash (two 8-bit flash. one for
upper 8 bits and other for the lower 8 bits). The bootloader document says
that the bootloader reads 0FFFF location of I/O or Data memory to find a
valid keyword (10AA or 08AA). But, When I use the hex-conversion utility
(hex500) how do I specify that?? If anyone has a sample command file for
hex500 please send it to me.

Thanks
Santosh



Santoch,

Here are some comments/ideas:

1. The address 0xFFFF should contain the address of the 0x10AA, not the
0x10AA itself.
In other words, the DSP should read something like 0x8000 (the address of
your flash memory), then it jumps to that address (0x8000), and it should
find there the magic number 0x10AA (for a 16-bit flash).

2. I do the same thing (booting from a flash memory), but I use ONE 8-bit
flash memory. To give the flash address to the DSP, I use two 8-bit drivers
(with the flash address hard-coded on the input side) that are turned on
(selected at address 0xC000 and above) and read by the DSP at boot. My 8-bit
flash memory is located at address 0x8000 and the first bytes contain (0x08
and 0xAA).

3. Our application program is "self-writable" and contains a routine
(PgmFlashWrite) for writing into the flash memory.
Here is how it works:
- The application program is loaded into the DSP RAM through the JTAG port.
- When the program is executed (through the J-TAG), it goes to the
PgmFlashWrite routine because the first thing that it does (after
initialization) is a GOTO to the PgmFlashWrite routine.
- The PgmFlashWrite routine: (a) replaces the GOTO with NOP's, (b) writes
the boot table into the flash (the one that contains the 0x08AA and so on),
and (c) writes itself into the flash.

When you make a reset, the DSP will load the program from the flash memory,
but will not write itself into the flash because the GOTO is replaced with
NOP's.
That's it!

Best regards to all,
Raymond

----- Original Message -----
From: "Santosh M Nadig" <>
To: <>
Sent: Sunday, February 03, 2002 10:45 AM
Subject: [c54x] Booting 5410 from flash > Hello all,
>
> I have a problem with booting 5410 from Flash (two 8-bit flash. one for
> upper 8 bits and other for the lower 8 bits). The bootloader document says
> that the bootloader reads 0FFFF location of I/O or Data memory to find a
> valid keyword (10AA or 08AA). But, When I use the hex-conversion utility
> (hex500) how do I specify that?? If anyone has a sample command file for
> hex500 please send it to me.
>
> Thanks
> Santosh >
> _____________________________________
> Note: If you do a simple "reply" with your email client, only the author
of this message will receive your answer. You need to do a "reply all" if
you want your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join: Send an email to
>
> To Post: Send an email to
>
> To Leave: Send an email to
>
> Archives: http://www.yahoogroups.com/group/c54x
>
> Other Groups: http://www.dsprelated.com > ">http://docs.yahoo.com/info/terms/ >




You need to tell it you want to use the bootloader by specifying the -boot
option in your
command file; either by itself (default) to load everything- or by individually
naming
sections you want it to load. Here's one of mine from a 5402 project using 8b
wide
parallel PROM; you can adjust for your memory or if there are CPU differences.
Remember
to get the C code entry point!

dsp3_run.out /* input COFF file */
-o DSP3.hex /* output file name */
-a /* ASCII hex format */

-boot /* bootload all sections */
-bootorg PARALLEL /* external mem on main bus */

-memwidth 8 /* 8bit wide memory, using */
-romwidth 8 /* single byte-wide EPROM */

-e 0x06C7 /* C code entry point, check .map file for
address */

> From: "Santosh M Nadig" <>
> Subject: Booting 5410 from flash
>
> Hello all,
>
> I have a problem with booting 5410 from Flash (two 8-bit flash. one for
> upper 8 bits and other for the lower 8 bits). The bootloader document says
> that the bootloader reads 0FFFF location of I/O or Data memory to find a
> valid keyword (10AA or 08AA). But, When I use the hex-conversion utility
> (hex500) how do I specify that?? If anyone has a sample command file for
> hex500 please send it to me.
>
> Thanks
> Santosh