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 |
|
Booting Process of C6711
Started by ●September 24, 2001
Reply by ●September 25, 20012001-09-25
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/ > |
Reply by ●September 25, 20012001-09-25
>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 |