DSPRelated.com
Forums

Booting Process of C6711

Started by Unknown September 24, 2001
I have a question. For ROM boot process, the program located in an
external ROM is copied to address 0 by the EDMA (for C6711).
Apparently this transfer is done automatically (I am guessing that we
can specify which external ROM is to be transferred since it is most
logical this way) by the EDMA. Everything is fine up to here. But
the manual for C621x and c671x went on further to say that the EDMA
copies 1Kbytes from the beginning of CE1 (address 90000000) to
address 0 using default ROM timing. This is confusing to me. I take
it to imply that

1. I have no choice of which external ROM address to place my
program (i.e. I must place my program in CE1 since the EDMA copies
from there). There are 4 place I can place an external ROM in, I
think (80000000 to B0000000)

2. My program cannot be greater than 1Kbytes, which completely does
not make sense to me.

Am I right? What is the 1Kbyes that the EDMA is said to copy from
CE1?

Please direct any advices and comments to

Thanks!

Albert Feynman



Well, yes the manual is correct in this instance. On a Boot from Rom
configuration (which is accomplished via some input pin states into the C6x
device) the processor can be booted from ROM. The C6x will perform a EDMA
(QDMA I think) from the start of 0x90000000 for a length of 1Kbyte (0x800).
The program is placed at the top of on-chip memory beginning at 0x0000000.
After transfer the program counter is pointed to 0x00000000 and the
processor is released from reset and begins executing code. If your program
is larger then the 1 K-byte size your boot program will need to configure
your memory spaces and transfer from ROM the rest of the program into
on-chip or off-chip memory as the case may be. So to sum up, with regards to
the following questions:

1) Essentially true. if you have more then one ROM device on your product
then the one which is addressed at 0x90000000 must be the one used to
autoboot your C6x device. This is do to the hardware design of the C6x
device itself and absolutely nothing to do with your ROM chip. See various
chapters in the peripheral reference guide by TI (SPRU 190 I think). They
also have some docs on auto boot ROM devices and such which you should be
able to find in the TI knowledge base. Depending on the type of ROM you have
(i.e. 8, 16, 32 bit) and your boot up mode (i.e. Little, big endian) you
will have to have your auto-boot program packed in different ways.

2) True and False. You autoboot program can only be 1 K-byte in length.
You program may be larger but your auto-boot program will have to transfer
it to a section of memory and then jump to the program entry point.

Hope this helps, -Devin

Engineer, DSP Technology
Bioscrypt, INC. ----- Original Message -----
From: <>
To: <>
Sent: Monday, September 24, 2001 11:59 AM
Subject: [c6x] Booting Process of C6711 > I have a question. For ROM boot process, the program located in an
> external ROM is copied to address 0 by the EDMA (for C6711).
> Apparently this transfer is done automatically (I am guessing that we
> can specify which external ROM is to be transferred since it is most
> logical this way) by the EDMA. Everything is fine up to here. But
> the manual for C621x and c671x went on further to say that the EDMA
> copies 1Kbytes from the beginning of CE1 (address 90000000) to
> address 0 using default ROM timing. This is confusing to me. I take
> it to imply that
>
> 1. I have no choice of which external ROM address to place my
> program (i.e. I must place my program in CE1 since the EDMA copies
> from there). There are 4 place I can place an external ROM in, I
> think (80000000 to B0000000)
>
> 2. My program cannot be greater than 1Kbytes, which completely does
> not make sense to me.
>
> Am I right? What is the 1Kbyes that the EDMA is said to copy from
> CE1?
>
> Please direct any advices and comments to
>
> Thanks!
>
> Albert Feynman >
> _____________________________________
> 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/c6x
>
> Other Groups: http://www.dsprelated.com > ">http://docs.yahoo.com/info/terms/
>


>I have a question. For ROM boot process, the program located in an
>external ROM is copied to address 0 by the EDMA (for C6711).
>Apparently this transfer is done automatically (I am guessing that we
>can specify which external ROM is to be transferred since it is most
>logical this way) by the EDMA. Everything is fine up to here. But
>the manual for C621x and c671x went on further to say that the EDMA
>copies 1Kbytes from the beginning of CE1 (address 90000000) to
>address 0 using default ROM timing. This is confusing to me. I take
>it to imply that
>
>1. I have no choice of which external ROM address to place my
>program (i.e. I must place my program in CE1 since the EDMA copies
>from there). There are 4 place I can place an external ROM in, I
>think (80000000 to B0000000)
>

Your boot loader *must* be in CE1, so starts from 0x90000000, so your boot ROM
*cannot* be anywhere from 0x80000000 to 0xB0000000

>2. My program cannot be greater than 1Kbytes, which completely does
>not make sense to me.
>

our boot loader is 1kbytes - that then knows where the rest of your code comes
from, and how it is structured, including the location of various sections in
the various bits of memory you have available. It may also initialise some of
the memory for static variables.

>Am I right? What is the 1Kbyes that the EDMA is said to copy from
>CE1?
>

Hope that helps - I'll see what code we might have kicking around...

Cheers,
Martin