Reply by Jeff Brower November 3, 20082008-11-03
Ajeesh-

> Thank you very much for your support and suggestions.
> I Actually got a break through for I2C slave boot for C6455 DSP processor.
> Your below suggestion helped me in setting up CCS to watch C6455 register
> when an external master is controlling it.
> I am successful accomplishing an I2C slave boot from an external master.
>
> Below are the guidelines that should be followed, and this is not given in
> the manual aswell.
>
> Remember that the data can only be sent over in max 128B blocks, so it will
> have to be partitioned appropriately for larger boot table transfers.
> Slave address for C6455 is 0x04
> Initially 6 bytes of data should be sent "XXYYZZ"
> XX = 0x00, 0x06 (Total Initial bytes)
> YY = 0x00, 0x00 (Check sum, we are providing 0, so check sum is skipped)
> ZZ = 0x00, 0x01 (0x0001 states that next sending data will be a boot table)
>
> We ought to send the first block as:
>
> Start, Slave add = 04 | R/W=0, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, Stop.
> Start, Slave add = 04 | R/W=0, BOOT_TABLE, Stop

Hey that's really good work! Glad you were able to figure it out.

I'm not surprised that TI's doc on 6455 DSK is missing detail about external boot methods. That has been the case
before with other DSK boards also.

-Jeff

> -----Original Message-----
> From: Michael Dunn [mailto:m...@gmail.com]
> Sent: Wednesday, October 15, 2008 3:23 AM
> To: Jeff Brower
> Cc: Ajeesh Kumar; c...
> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>
> Ajeesh,
>
> On Tue, Oct 14, 2008 at 10:06 AM, Jeff Brower
> wrote:
>> Ajeesh-
>>
>>> My understanding is, when i connect the JTAG to the board, the
>>> board'll get reseted and JTAG will have the control over the board.
>>> thus, we might not able to access the DSP processor in such
>>> conditions.
>>> If it is possible also, then how could it be done?
>>
>> I think the sequence is something like this:
>
>
> 1. Anytime that you are debugging an embedded program you should
> [a] NOT use a GEL file at all
> OR
> [b] do NOT use a GEL file that does anything to the target automatically.
>>
>> -JTAG cable is connected but JTAG in CCS is disconnected
>>
>> -reset the board. Bootloader runs and begins checking config Rs to see
>> what it should be doing. At this point you want the bootloader to be
>> "looping" or waiting on something; i.e.
>> you should have the external boot agent in reset or otherwise in a
>> hold mode
>>
>> -connect JTAG in CCS but do not select "Reset CPU" or "Run" or other
>> debug menu item. You should now have control and be able to
>> single-step, watch registers, etc. You should verify the bootloader is
>> in a code loop -- either looping to check various boot mode options,
>> or having already identified the option, then waiting for something to
>> start the boot process (receive first word,
>> etc)
>>
>
> NOTE:
> If the DSP is in run mode, select halt.
> At the point the boot device will have been selected and the boot loader
> should be checking for receive data.
> Like Jeff said, you should be able to do a few single steps and see the
> program looping.
> You might want to take note of the addresses for future reference.
> Try to sort through the disassembly. Make sure that you have a list of I2C
> register addresses and their functions [status, data, etc.]. Don't try to
> understand every line of code. The polling loop will be reading from the
> status register [LD, LDS, or LDB instructions]. There should be a branch
> that reads [LDx] from the rx_data reg [I don't know the exact name]. You
> should look for a write [STx] to the reg that sends an ACK. If you spot this
> in the code, it will give an idea where the execution might go. - - - - we
> haven't done anything yet, just looked at some code.
>> -start your boot process externally (in your case I2C slave boot)
>>
>> -watch bootloader code... does it react
>
> This means to single step through the boot process. You only need to go far
> enough to get the first ACK.
>> correctly, proceed with boot as you expect?
>
>
> This could be trickly. I would think that the bootloader is polling and not
> using interrupts. I will make the polling assumption for now.
>>
>> I'm probably missing a detail or two... I remember that watching the
>> bootloader in action did require careful attention to the debug setup
>> and step-by-step procedure.
>> I suggest that you ask Mike Dunn on this group if you run into trouble
>> -- he is by far the person most expert in TI JTAG who you can find
>> online.
>>
>> -Jeff
>>
>>> _____
>>>
>>> From: c... [mailto:c...] On Behalf Of
>>> Jeff Brower
>>> Sent: Monday, October 13, 2008 3:01 PM
>>> To: Ajeesh Kumar
>>> Cc: c...
>>> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>>>
>>> Ajeesh-
>>>
>>> > >Ok that's really good then... your external link seems to be working.
>>> >
>>> > >The next step would be to use CCS to single-step through the 6455
>>> > bootloader code, and see things "through its eyes". Does the
>>> > bootloader recognize that I2C >slave boot is happening? Does it
>>> > jump to correct code to configure its I2C port? Does the I2C
>>> > configuration match the TI docs
>>> and
>>> > otherwise meet your ?
>>> > >expectation?
>>> >
>>> > >There must be some basic reason why you don't see an ACK. If the
>>> > >I2C bus
>>> > is wired correctly, then the answer should be in the bootloader.
>>> >
>>> > Yeah, my external link is working :), well that's a good idea. But,
>>> > how
>>> can
>>> > I check the inbuilt 6455 bootloader?? Will I be able to??
>>>
>>> Sure. You can single-step through the asm instructions (I think the
>>> source is published in asm also, but I'm not sure of that).
>>>
>>> > Also, can I
>>> > parallely transfer the boot code via DSP I2C boot mode and watch
>>> > whats happening inside DSP registers through CCS?? Will it be
> possible??
>>>
>>> Yes exactly. You watch what's happening from the DSP point of view.
>>>
>>> -Jeff
>>>
>>> > -----Original Message-----
>>> > From: Jeff Brower [mailto:jbrower@signalogic.
>>> com]
>>> > Sent: Friday, October 10, 2008 6:44 PM
>>> > To: Ajeesh Kumar
>>> > Cc: c6x@yahoogroups. com
>>> > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>>> >
>>> > Ajeesh-
>>> >
>>> > > >One thing I don't get -- who is the I2C master? How did you
>>> > > >connect this to the DSK 6455?
>>> > >
>>> > > >I wuld think that you should verify basic functionality of your
>>> > > >I2C link first, before you try something complex like boot.
>>> > > >Assuming that you've implemented sometype of "external
>>> > > >board-to-board" link, did you verify the 6455 can read over this
>>> > > >link? A second step would be to verify that your external master
>>> > > >can read >the other I2C devices (slaves) on the DSK board.
>>> > >
>>> > > AJ:
>>> > > Your assumption is correct, I've and external board-to-board I2C
>>> > > lin, I'm able to detect and read the EEPROM present on the DSK board.
>>> >
>>> > Ok that's really good then... your external link seems to be working.
>>> >
>>> > The next step would be to use CCS to single-step through the 6455
>>> bootloader
>>> > code, and see things "through its eyes". Does the bootloader
>>> > recognize
>>> that
>>> > I2C slave boot is happening? Does it jump to correct code to
>>> > configure its I2C port? Does the I2C configuration match the TI
>>> > docs and otherwise meet your expectation?
>>> >
>>> > There must be some basic reason why you don't see an ACK. If the
>>> > I2C bus
>>> is
>>> > wired correctly, then the answer should be in the bootloader.
>>> >
>>> > -Jeff
>>> >
>>> > > -----Original Message-----
>>> > > From: Jeff Brower [mailto:jbrower@signalogic.
>>> com]
>>> > > Sent: Wednesday, October 08, 2008 8:03 PM
>>> > > To: Asjeesh Kumar
>>> > > Cc: Michael Dunn; c6x@yahoogroups.
>>> > > com
>>> > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>>> > >
>>> > > Ajeesh-
>>> > >
>>> > > > Thank you for ur info.
>>> > > > Let me brief my requirement, I need to boot my DSP processor
>>> > > > 6455, using I2C slave boot.
>>> > > > To do that, i'll be using an external master(another DSP or an
>>> > > > FPGA or someother processor).
>>> > > >
>>> > > > As of now i have a C6455 DSK, i just wanna try this out.
>>> > >
>>> > > [snip]
>>> > >
>>> > > > BUT, when i transfter the data part from I2C i'm not getting
>>> > > > the ACK, is it fine. Is that the way it goes??
>>> > >
>>> > > One thing I don't get -- who is the I2C master? How did you
>>> > > connect this to the DSK 6455?
>>> > >
>>> > > I would think that you should verify basic functionality of your
>>> > > I2C link first, before you try something complex like boot.
>>> > > Assuming that you've implemented some type of "external
>>> > > board-to-board" link, did you verify the
>>> > > 6455 can read over this link? A second step would be to verify
>>> > > that your external master can read the other I2C devices (slaves)
>>> > > on the DSK
>>> > board.
>>> > >
>>> > > -Jeff
>>> > >
>>> > > > I got to know that and external master should send 6 bytes of
>>> > > > data
>>> > > > "04 00 06 00 00 00 01"
>>> > > > (count doesn't include slave address) to slave DSP before
>>> > > > sending anything
>>> > > > else:
>>> > > >
>>> > > > 04 xx xx yy yy zz zz
>>> > > >
>>> > > > Where 04: is slave address for Himalaya DSP in slave I2C boot
>>> > > > mode;
>>> > > >
>>> > > > Xx xx: length
>>> > > >
>>> > > > Yy yy: check sum
>>> > > >
>>> > > > Zz zz: boot option
>>> > > >
>>> > > > For example:
>>> > > >
>>> > > > 04 00 06 00 00 00 01 <-- order: SA, Len, Chksum, BO
>>> > > >
>>> > > > Length is 6
>>> > > >
>>> > > > Checksum is 0 for not using checksum
>>> > > >
>>> > > > Boot option is 1 for telling slave DSP that the next coming
>>> > > > data will be boot table, other option can be used refer to
>>> > > > bootloader user's guide
>>> > > >
>>> > > >
>>> > > > Below is my I2C master tranfer sequence I2c master Transmission:
>>> > > > START, 04 00 06 00 00 00 01, DATA(n bytes),STOP
>>> > > >
>>> > > > 1. Enable and start the transmission, 2. send the data 04 00 06
>>> > > > 00 00 00 01 followed by n bytes of data.
>>> > > > 3.Stop
>>> > > >
>>> > > > The n-bytes of data is nothing but the boot table.
>>> > > > Should the boot table needs to be "blocked". Each block is 128
>>> > > > bytes (starts from length + checksum + data). Refer to
>>> > > > Bootloader guide
>>> > > > (spruec7) section
>>> > > > 2.3.4.1
>>> > > > Please do confirm the same.
>>> > > >
>>> > > > BUT, when i transfter the data part from I2C i'm not getting
>>> > > > the ACK, is it fine. Is that the way it goes??
>>> > > >
>>> > > > Generating Boot Table
>>> > > > In ti website, i've got some code piece "spraae9.zip", which
>>> > > > has led_program, I2C programmer(for Master I2C boot from
>>> > > > EEPROM) and utilities for 6455 DSK.
>>> > > > The Led.out file which when programmed on to DSP(6455) using
>>> > > > CCS will flash the LEDs on the 6455 DSK board.
>>> > > >
>>> > > > As per the document C645x bootloader guide(spruec6b.pdf), we
>>> > > > have to convert our .out file to Boot table format hex. A TI
>>> > > > utility hex2x will do this,
>>> > > >
>>> > > > in spruec6b.pdf section 3.2.2.3.1 Example - Creating a boot
>>> > > > table for ascii Outut is given.
>>> > > >
>>> > > > Now, for my 6455, for a I2C Slave boot, wht are the option that
>>> > > > i should give so as to get a proper boot table??
>>> > > >
>>> > > > Options like format :
>>> > > >
>>> > > > Output ASCII hex format
>>> > > > Output Intel hex format
>>> > > > Output Motorola S hex format
>>> > > > Output TI-Tagged hex format
>>> > > > Output Extended Tektronix hex format Output TI-TXT hex format
>>> > > >
>>> > > > Out of the above which format i should use??
>>> > > >
>>> > > > What are that -memwidth and -romwidth, is it 32 or 16 ???
>>> > > >
>>> > > > Please help me in the above issues, it would be great if i get
>>> > > > to know things at the earliest.
>>> > > >
>>> > > > Regards,
>>> > > > AJEESH KUMAR
>>> > > >
>>> > > > _____
>>> > > >
>>> > > > From: c6x@yahoogroups. com
>>> [mailto:c6x@yahoogroups. com] On
>>> Behalf Of
>>> > > > Ajeesh Kumar
>>> > > > Sent: Friday, October 03, 2008 11:06 AM
>>> > > > To: 'Michael Dunn'; c6x@yahoogroups.
>>> > > >
>>> com
>>> > > > Subject: RE: [c6x] FSBBP: I2C Slave boot for DSP C6455
>>> > > >
>>> > > > Hi,
>>> > > > Thank you for your info :)
>>> > > > Yeah, u r correct, In 6455 DSK the I2C is wired to an EEPROM
>>> > > > and a Audio Codec. I shall isolate these two components and I
>>> > > > do have a separate master board which has an I2C controller
>>> > > > which will help me in I2C slave boot for DSP.
>>> > > > I've few more quires,
>>> > > > 1) When the DSP comes out of reset, it'll be in Slave I2C boot
> mode.
>>> > > > At that time I'm planning for a master writes(from my master
> board).
>>> > > > I've read, I2C devices have internal addressing as well as an
>>> > > > I2C slave address - this internal address will follow the slave
> address.
>>> > > > So I assume, Slave address is: 0x00 Internal address : ???
>>> > > > What will be the Internal address in the DSP so that I could
>>> > > > dump my
>>> > > data???
>>> > > > Should the internal address be 1 byte only???
>>> > > >
>>> > > > 2) Also I've read, There are 2 boot modes: Software boot mode
>>> > > > and Hardware boot mode.(In 6455 data sheet) I2C is a software boot
> mode.
>>> > > > Could you please differentiate between??
>>> > > >
>>> > > > 3) When will the on-chip(ROM) boot loader come into picture???
>>> > > >
>>> > > > Regards,
>>> > > > AJEESH KUMAR
>>> > > >
>>> > > > -----Original Message-----
>>> > > > From: Michael Dunn [mailto:mike.dunn.001@
>>> > > >
>>> > > > gmail.com]
>>> > > > Sent: Wednesday, October 01, 2008 9:39 PM
>>> > > > To: ajeesh@tataelxsi. co.in
>>> > > > Cc: c6x@yahoogroups. com
>>> > > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>>> > > >
>>> > > > Ajeesh,
>>> > > >
>>> > > > On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar >>> > > > co.in> wrote:
>>> > > > >
>>> > > > > Hi,
>>> > > > > Thank you very much :)
>>> > > > > I've gone through the "TMS320C645x Bootloader User's Guide"
>>> > > > > 1) I got to know that for I2C slave boot for the DSP I've to
>>> > > > > send data in Standard boot table format.
>>> > > > > Am I write?
>>> > > >
>>> > > > I think that is what the doc says. I have not worked on
>>> > > > an 'I2C slave boot' configuration.
>>> > > >
>>> > > > > 2) for I2C slave boot for the C6455, what are the setting I
>>> > > > > should do except configuring BOOT[0:3] to 0110( slave I2C
>>> > > > > boot)
>>> > > >
>>> > > > That should be correct.
>>> > > > > 3) I'm using a C6455 DSK, what all setting I need to do
>>> > > > > except configuring It to slave I2C boot, do I have to do anything
> else??
>>> > > > One thing comes to mind - you have not mentioned 'what
>>> > > > you are trying to do' in general terms.
>>> > > > I do not have a 6455 DSK, but I am pretty sure that the I2C is
>>> > > > 'wired'
>>> > > > to boot from a serial flash [I2C master boot] or control a
>>> > > > codec. To operate the DSP in slave boot mode, you will neeed an
>>> > > > I2C master to
>>> > > control the bus.
>>> > > > You will need to check the schematics carefully to see if there
>>> > > > is a way that you can do it. I suspect that you could run into
>>> > > > problems...
>>> > > >
>>> > > > mikedunn
>>> > > >
>>> > > > >
>>> > > > >
>>> > > > >
>>> > > > >
>>> > > > > Regards,
>>> > > > > AJEESH KUMAR
>>> > > > >
>>> > > > > -----Original Message-----
>>> > > > > From: Michael Dunn [mailto:mike.dunn.001@
>>> > > > gmail.com]
>>> > > > > Sent: Tuesday, September 30, 2008 8:42 PM
>>> > > > > To: ajeesh@tataelxsi. co.in
>>> > > > > Cc: c6x@yahoogroups. com
>>> > > > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>>> > > > >
>>> > > > > Ajeesh,
>>> > > > >
>>> > > > > On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar >>> > > > > co.in>
>>> > > > > wrote:
>>> > > > >> Hi All :),
>>> > > > >>
>>> > > > >> I'm using a TMS320C6455 DSP processor, i've few quires
>>> > > > >> 1) I read in the boot loader user's guide (spruec6b.pdf) in
>>> > > > >> the section 2, bootloader features its given that the
>>> > > > >> bootloader is permanently stored in the ROM of the DSP at
> 0x100000.
>>> > > > >> Does this mean that an on-chip bootloader will be already
>>> > > > >> present in the DSP. and We need not have to program this.
>>> > > > >
>>> > > > > Correct.
>>> > > > >>
>>> > > > >> 2) What is the I2C Device address for the Processor so that
>>> > > > >> i could use this DSP for slave I2c boot.??
>>> > > > >
>>> > > > > 0. Check out 'TMS320C645x Bootloader User's Guide' at
>>> > > > > ti.com for details.
>>> > > > >>
>>> > > > >> 3) Also an I2C slave boot is done for the DSP(C6455)
>>> > > > >> processor using Standard boot table, do you people have any
>>> > > > >> idea about this.
>>> > > > >
>>> > > > > Check out 'TMS320C645x Bootloader User's Guide' at
>>> > > > > ti.com for
>>> > > > details.
>>> > > > >
>>> > > > > FYI - if you google something like
>>> > > > > +c6455 +dsp +i2c +bootloader +slave
>>> > > > > you can find most odt the info that you need.
>>> > > > >
>>> > > > > mikedunn
>>> > > > >>
>>> > > > >> Please help me in this regard
>>> > > > >>
>>> > > > >> Thanks,
>>> > > > >> Ajeesh Kumar
Reply by Ajeesh Kumar November 3, 20082008-11-03
Hi Michael/jeff

Thank you very much for your support and suggestions.
I Actually got a break through for I2C slave boot for C6455 DSP processor.
Your below suggestion helped me in setting up CCS to watch C6455 register
when an external master is controlling it.
I am successful accomplishing an I2C slave boot from an external master.

Below are the guidelines that should be followed, and this is not given in
the manual aswell.

Remember that the data can only be sent over in max 128B blocks, so it will
have to be partitioned appropriately for larger boot table transfers.
Slave address for C6455 is 0x04
Initially 6 bytes of data should be sent "XXYYZZ"
XX = 0x00, 0x06 (Total Initial bytes)
YY = 0x00, 0x00 (Check sum, we are providing 0, so check sum is skipped)
ZZ = 0x00, 0x01 (0x0001 states that next sending data will be a boot table)

We ought to send the first block as:

Start, Slave add = 04 | R/W=0, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, Stop.
Start, Slave add = 04 | R/W=0, BOOT_TABLE, Stop

Regards,
AJEESH KUMAR

-----Original Message-----
From: Michael Dunn [mailto:m...@gmail.com]
Sent: Wednesday, October 15, 2008 3:23 AM
To: Jeff Brower
Cc: Ajeesh Kumar; c...
Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455

Ajeesh,

On Tue, Oct 14, 2008 at 10:06 AM, Jeff Brower
wrote:
> Ajeesh-
>
>> My understanding is, when i connect the JTAG to the board, the
>> board'll get reseted and JTAG will have the control over the board.
>> thus, we might not able to access the DSP processor in such
>> conditions.
>> If it is possible also, then how could it be done?
>
> I think the sequence is something like this:


1. Anytime that you are debugging an embedded program you should
[a] NOT use a GEL file at all
OR
[b] do NOT use a GEL file that does anything to the target automatically.
>
> -JTAG cable is connected but JTAG in CCS is disconnected
>
> -reset the board. Bootloader runs and begins checking config Rs to see
> what it should be doing. At this point you want the bootloader to be
> "looping" or waiting on something; i.e.
> you should have the external boot agent in reset or otherwise in a
> hold mode
>
> -connect JTAG in CCS but do not select "Reset CPU" or "Run" or other
> debug menu item. You should now have control and be able to
> single-step, watch registers, etc. You should verify the bootloader is
> in a code loop -- either looping to check various boot mode options,
> or having already identified the option, then waiting for something to
> start the boot process (receive first word,
> etc)
>

NOTE:
If the DSP is in run mode, select halt.
At the point the boot device will have been selected and the boot loader
should be checking for receive data.
Like Jeff said, you should be able to do a few single steps and see the
program looping.
You might want to take note of the addresses for future reference.
Try to sort through the disassembly. Make sure that you have a list of I2C
register addresses and their functions [status, data, etc.]. Don't try to
understand every line of code. The polling loop will be reading from the
status register [LD, LDS, or LDB instructions]. There should be a branch
that reads [LDx] from the rx_data reg [I don't know the exact name]. You
should look for a write [STx] to the reg that sends an ACK. If you spot this
in the code, it will give an idea where the execution might go. - - - - we
haven't done anything yet, just looked at some code.
> -start your boot process externally (in your case I2C slave boot)
>
> -watch bootloader code... does it react

This means to single step through the boot process. You only need to go far
enough to get the first ACK.
> correctly, proceed with boot as you expect?


This could be trickly. I would think that the bootloader is polling and not
using interrupts. I will make the polling assumption for now.
>
> I'm probably missing a detail or two... I remember that watching the
> bootloader in action did require careful attention to the debug setup
> and step-by-step procedure.
> I suggest that you ask Mike Dunn on this group if you run into trouble
> -- he is by far the person most expert in TI JTAG who you can find
> online.
>
> -Jeff
>
>> _____
>>
>> From: c... [mailto:c...] On Behalf Of
>> Jeff Brower
>> Sent: Monday, October 13, 2008 3:01 PM
>> To: Ajeesh Kumar
>> Cc: c...
>> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>>
>> Ajeesh-
>>
>> > >Ok that's really good then... your external link seems to be working.
>> >
>> > >The next step would be to use CCS to single-step through the 6455
>> > bootloader code, and see things "through its eyes". Does the
>> > bootloader recognize that I2C >slave boot is happening? Does it
>> > jump to correct code to configure its I2C port? Does the I2C
>> > configuration match the TI docs
>> and
>> > otherwise meet your ?
>> > >expectation?
>> >
>> > >There must be some basic reason why you don't see an ACK. If the
>> > >I2C bus
>> > is wired correctly, then the answer should be in the bootloader.
>> >
>> > Yeah, my external link is working :), well that's a good idea. But,
>> > how
>> can
>> > I check the inbuilt 6455 bootloader?? Will I be able to??
>>
>> Sure. You can single-step through the asm instructions (I think the
>> source is published in asm also, but I'm not sure of that).
>>
>> > Also, can I
>> > parallely transfer the boot code via DSP I2C boot mode and watch
>> > whats happening inside DSP registers through CCS?? Will it be
possible??
>>
>> Yes exactly. You watch what's happening from the DSP point of view.
>>
>> -Jeff
>>
>> > -----Original Message-----
>> > From: Jeff Brower [mailto:jbrower@signalogic.
>> com]
>> > Sent: Friday, October 10, 2008 6:44 PM
>> > To: Ajeesh Kumar
>> > Cc: c6x@yahoogroups. com
>> > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>> >
>> > Ajeesh-
>> >
>> > > >One thing I don't get -- who is the I2C master? How did you
>> > > >connect this to the DSK 6455?
>> > >
>> > > >I wuld think that you should verify basic functionality of your
>> > > >I2C link first, before you try something complex like boot.
>> > > >Assuming that you've implemented sometype of "external
>> > > >board-to-board" link, did you verify the 6455 can read over this
>> > > >link? A second step would be to verify that your external master
>> > > >can read >the other I2C devices (slaves) on the DSK board.
>> > >
>> > > AJ:
>> > > Your assumption is correct, I've and external board-to-board I2C
>> > > lin, I'm able to detect and read the EEPROM present on the DSK board.
>> >
>> > Ok that's really good then... your external link seems to be working.
>> >
>> > The next step would be to use CCS to single-step through the 6455
>> bootloader
>> > code, and see things "through its eyes". Does the bootloader
>> > recognize
>> that
>> > I2C slave boot is happening? Does it jump to correct code to
>> > configure its I2C port? Does the I2C configuration match the TI
>> > docs and otherwise meet your expectation?
>> >
>> > There must be some basic reason why you don't see an ACK. If the
>> > I2C bus
>> is
>> > wired correctly, then the answer should be in the bootloader.
>> >
>> > -Jeff
>> >
>> > > -----Original Message-----
>> > > From: Jeff Brower [mailto:jbrower@signalogic.
>> com]
>> > > Sent: Wednesday, October 08, 2008 8:03 PM
>> > > To: Asjeesh Kumar
>> > > Cc: Michael Dunn; c6x@yahoogroups.
>> > > com
>> > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>> > >
>> > > Ajeesh-
>> > >
>> > > > Thank you for ur info.
>> > > > Let me brief my requirement, I need to boot my DSP processor
>> > > > 6455, using I2C slave boot.
>> > > > To do that, i'll be using an external master(another DSP or an
>> > > > FPGA or someother processor).
>> > > >
>> > > > As of now i have a C6455 DSK, i just wanna try this out.
>> > >
>> > > [snip]
>> > >
>> > > > BUT, when i transfter the data part from I2C i'm not getting
>> > > > the ACK, is it fine. Is that the way it goes??
>> > >
>> > > One thing I don't get -- who is the I2C master? How did you
>> > > connect this to the DSK 6455?
>> > >
>> > > I would think that you should verify basic functionality of your
>> > > I2C link first, before you try something complex like boot.
>> > > Assuming that you've implemented some type of "external
>> > > board-to-board" link, did you verify the
>> > > 6455 can read over this link? A second step would be to verify
>> > > that your external master can read the other I2C devices (slaves)
>> > > on the DSK
>> > board.
>> > >
>> > > -Jeff
>> > >
>> > > > I got to know that and external master should send 6 bytes of
>> > > > data
>> > > > "04 00 06 00 00 00 01"
>> > > > (count doesn't include slave address) to slave DSP before
>> > > > sending anything
>> > > > else:
>> > > >
>> > > > 04 xx xx yy yy zz zz
>> > > >
>> > > > Where 04: is slave address for Himalaya DSP in slave I2C boot
>> > > > mode;
>> > > >
>> > > > Xx xx: length
>> > > >
>> > > > Yy yy: check sum
>> > > >
>> > > > Zz zz: boot option
>> > > >
>> > > > For example:
>> > > >
>> > > > 04 00 06 00 00 00 01 <-- order: SA, Len, Chksum, BO
>> > > >
>> > > > Length is 6
>> > > >
>> > > > Checksum is 0 for not using checksum
>> > > >
>> > > > Boot option is 1 for telling slave DSP that the next coming
>> > > > data will be boot table, other option can be used refer to
>> > > > bootloader user's guide
>> > > >
>> > > >
>> > > > Below is my I2C master tranfer sequence I2c master Transmission:
>> > > > START, 04 00 06 00 00 00 01, DATA(n bytes),STOP
>> > > >
>> > > > 1. Enable and start the transmission, 2. send the data 04 00 06
>> > > > 00 00 00 01 followed by n bytes of data.
>> > > > 3.Stop
>> > > >
>> > > > The n-bytes of data is nothing but the boot table.
>> > > > Should the boot table needs to be "blocked". Each block is 128
>> > > > bytes (starts from length + checksum + data). Refer to
>> > > > Bootloader guide
>> > > > (spruec7) section
>> > > > 2.3.4.1
>> > > > Please do confirm the same.
>> > > >
>> > > > BUT, when i transfter the data part from I2C i'm not getting
>> > > > the ACK, is it fine. Is that the way it goes??
>> > > >
>> > > > Generating Boot Table
>> > > > In ti website, i've got some code piece "spraae9.zip", which
>> > > > has led_program, I2C programmer(for Master I2C boot from
>> > > > EEPROM) and utilities for 6455 DSK.
>> > > > The Led.out file which when programmed on to DSP(6455) using
>> > > > CCS will flash the LEDs on the 6455 DSK board.
>> > > >
>> > > > As per the document C645x bootloader guide(spruec6b.pdf), we
>> > > > have to convert our .out file to Boot table format hex. A TI
>> > > > utility hex2x will do this,
>> > > >
>> > > > in spruec6b.pdf section 3.2.2.3.1 Example - Creating a boot
>> > > > table for ascii Outut is given.
>> > > >
>> > > > Now, for my 6455, for a I2C Slave boot, wht are the option that
>> > > > i should give so as to get a proper boot table??
>> > > >
>> > > > Options like format :
>> > > >
>> > > > Output ASCII hex format
>> > > > Output Intel hex format
>> > > > Output Motorola S hex format
>> > > > Output TI-Tagged hex format
>> > > > Output Extended Tektronix hex format Output TI-TXT hex format
>> > > >
>> > > > Out of the above which format i should use??
>> > > >
>> > > > What are that -memwidth and -romwidth, is it 32 or 16 ???
>> > > >
>> > > > Please help me in the above issues, it would be great if i get
>> > > > to know things at the earliest.
>> > > >
>> > > > Regards,
>> > > > AJEESH KUMAR
>> > > >
>> > > > _____
>> > > >
>> > > > From: c6x@yahoogroups. com
>> [mailto:c6x@yahoogroups. com] On
>> Behalf Of
>> > > > Ajeesh Kumar
>> > > > Sent: Friday, October 03, 2008 11:06 AM
>> > > > To: 'Michael Dunn'; c6x@yahoogroups.
>> > > >
>> com
>> > > > Subject: RE: [c6x] FSBBP: I2C Slave boot for DSP C6455
>> > > >
>> > > > Hi,
>> > > > Thank you for your info :)
>> > > > Yeah, u r correct, In 6455 DSK the I2C is wired to an EEPROM
>> > > > and a Audio Codec. I shall isolate these two components and I
>> > > > do have a separate master board which has an I2C controller
>> > > > which will help me in I2C slave boot for DSP.
>> > > > I've few more quires,
>> > > > 1) When the DSP comes out of reset, it'll be in Slave I2C boot
mode.
>> > > > At that time I'm planning for a master writes(from my master
board).
>> > > > I've read, I2C devices have internal addressing as well as an
>> > > > I2C slave address - this internal address will follow the slave
address.
>> > > > So I assume, Slave address is: 0x00 Internal address : ???
>> > > > What will be the Internal address in the DSP so that I could
>> > > > dump my
>> > > data???
>> > > > Should the internal address be 1 byte only???
>> > > >
>> > > > 2) Also I've read, There are 2 boot modes: Software boot mode
>> > > > and Hardware boot mode.(In 6455 data sheet) I2C is a software boot
mode.
>> > > > Could you please differentiate between??
>> > > >
>> > > > 3) When will the on-chip(ROM) boot loader come into picture???
>> > > >
>> > > > Regards,
>> > > > AJEESH KUMAR
>> > > >
>> > > > -----Original Message-----
>> > > > From: Michael Dunn [mailto:mike.dunn.001@
>> > > >
>> > > > gmail.com]
>> > > > Sent: Wednesday, October 01, 2008 9:39 PM
>> > > > To: ajeesh@tataelxsi. co.in
>> > > > Cc: c6x@yahoogroups. com
>> > > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>> > > >
>> > > > Ajeesh,
>> > > >
>> > > > On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar >> > > > co.in> wrote:
>> > > > >
>> > > > > Hi,
>> > > > > Thank you very much :)
>> > > > > I've gone through the "TMS320C645x Bootloader User's Guide"
>> > > > > 1) I got to know that for I2C slave boot for the DSP I've to
>> > > > > send data in Standard boot table format.
>> > > > > Am I write?
>> > > >
>> > > > I think that is what the doc says. I have not worked on
>> > > > an 'I2C slave boot' configuration.
>> > > >
>> > > > > 2) for I2C slave boot for the C6455, what are the setting I
>> > > > > should do except configuring BOOT[0:3] to 0110( slave I2C
>> > > > > boot)
>> > > >
>> > > > That should be correct.
>> > > > > 3) I'm using a C6455 DSK, what all setting I need to do
>> > > > > except configuring It to slave I2C boot, do I have to do anything
else??
>> > > > One thing comes to mind - you have not mentioned 'what
>> > > > you are trying to do' in general terms.
>> > > > I do not have a 6455 DSK, but I am pretty sure that the I2C is
>> > > > 'wired'
>> > > > to boot from a serial flash [I2C master boot] or control a
>> > > > codec. To operate the DSP in slave boot mode, you will neeed an
>> > > > I2C master to
>> > > control the bus.
>> > > > You will need to check the schematics carefully to see if there
>> > > > is a way that you can do it. I suspect that you could run into
>> > > > problems...
>> > > >
>> > > > mikedunn
>> > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > > Regards,
>> > > > > AJEESH KUMAR
>> > > > >
>> > > > > -----Original Message-----
>> > > > > From: Michael Dunn [mailto:mike.dunn.001@
>> > > > gmail.com]
>> > > > > Sent: Tuesday, September 30, 2008 8:42 PM
>> > > > > To: ajeesh@tataelxsi. co.in
>> > > > > Cc: c6x@yahoogroups. com
>> > > > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>> > > > >
>> > > > > Ajeesh,
>> > > > >
>> > > > > On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar >> > > > > co.in>
>> > > > > wrote:
>> > > > >> Hi All :),
>> > > > >>
>> > > > >> I'm using a TMS320C6455 DSP processor, i've few quires
>> > > > >> 1) I read in the boot loader user's guide (spruec6b.pdf) in
>> > > > >> the section 2, bootloader features its given that the
>> > > > >> bootloader is permanently stored in the ROM of the DSP at
0x100000.
>> > > > >> Does this mean that an on-chip bootloader will be already
>> > > > >> present in the DSP. and We need not have to program this.
>> > > > >
>> > > > > Correct.
>> > > > >>
>> > > > >> 2) What is the I2C Device address for the Processor so that
>> > > > >> i could use this DSP for slave I2c boot.??
>> > > > >
>> > > > > 0. Check out 'TMS320C645x Bootloader User's Guide' at
>> > > > > ti.com for details.
>> > > > >>
>> > > > >> 3) Also an I2C slave boot is done for the DSP(C6455)
>> > > > >> processor using Standard boot table, do you people have any
>> > > > >> idea about this.
>> > > > >
>> > > > > Check out 'TMS320C645x Bootloader User's Guide' at
>> > > > > ti.com for
>> > > > details.
>> > > > >
>> > > > > FYI - if you google something like
>> > > > > +c6455 +dsp +i2c +bootloader +slave
>> > > > > you can find most odt the info that you need.
>> > > > >
>> > > > > mikedunn
>> > > > >>
>> > > > >> Please help me in this regard
>> > > > >>
>> > > > >> Thanks,
>> > > > >> Ajeesh Kumar
>

--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
Reply by Michael Dunn October 14, 20082008-10-14
Ajeesh,

On Tue, Oct 14, 2008 at 10:06 AM, Jeff Brower wrote:
> Ajeesh-
>
>> My understanding is, when i connect the JTAG to the board, the board'll
>> get
>> reseted and JTAG will have the control over the board. thus, we might not
>> able to access the DSP processor in such conditions.
>> If it is possible also, then how could it be done?
>
> I think the sequence is something like this:


1. Anytime that you are debugging an embedded program you should
[a] NOT use a GEL file at all
OR
[b] do NOT use a GEL file that does anything to the target automatically.
>
> -JTAG cable is connected but JTAG in CCS is
> disconnected
>
> -reset the board. Bootloader runs and begins
> checking config Rs to see what it should be
> doing. At this point you want the bootloader
> to be "looping" or waiting on something; i.e.
> you should have the external boot agent in
> reset or otherwise in a hold mode
>
> -connect JTAG in CCS but do not select "Reset
> CPU" or "Run" or other debug menu item. You
> should now have control and be able to
> single-step, watch registers, etc. You
> should verify the bootloader is in a code
> loop -- either looping to check various boot
> mode options, or having already identified
> the option, then waiting for something to
> start the boot process (receive first word,
> etc)
>

NOTE:
If the DSP is in run mode, select halt.
At the point the boot device will have been selected and the boot
loader should be checking for receive data.
Like Jeff said, you should be able to do a few single steps and see
the program looping.
You might want to take note of the addresses for future reference.
Try to sort through the disassembly. Make sure that you have a list of
I2C register addresses and their functions [status, data, etc.]. Don't
try to understand every line of code. The polling loop will be reading
from the status register [LD, LDS, or LDB instructions]. There should
be a branch that reads [LDx] from the rx_data reg [I don't know the
exact name]. You should look for a write [STx] to the reg that sends
an ACK. If you spot this in the code, it will give an idea where the
execution might go. - - - - we haven't done anything yet, just looked
at some code.
> -start your boot process externally (in your
> case I2C slave boot)
>
> -watch bootloader code... does it react

This means to single step through the boot process. You only need to
go far enough to get the first ACK.
> correctly, proceed with boot as you expect?


This could be trickly. I would think that the bootloader is polling
and not using interrupts. I will make the polling assumption for now.
>
> I'm probably missing a detail or two... I remember that watching the
> bootloader in
> action did require careful attention to the debug setup and step-by-step
> procedure.
> I suggest that you ask Mike Dunn on this group if you run into trouble -- he
> is by
> far the person most expert in TI JTAG who you can find online.
>
> -Jeff
>
>> _____
>>
>> From: c... [mailto:c...] On Behalf Of Jeff
>> Brower
>> Sent: Monday, October 13, 2008 3:01 PM
>> To: Ajeesh Kumar
>> Cc: c...
>> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>>
>> Ajeesh-
>>
>> > >Ok that's really good then... your external link seems to be working.
>> >
>> > >The next step would be to use CCS to single-step through the 6455
>> > bootloader code, and see things "through its eyes". Does the bootloader
>> > recognize that I2C >slave boot is happening? Does it jump to correct
>> > code
>> > to configure its I2C port? Does the I2C configuration match the TI docs
>> and
>> > otherwise meet your ?
>> > >expectation?
>> >
>> > >There must be some basic reason why you don't see an ACK. If the I2C
>> > > bus
>> > is wired correctly, then the answer should be in the bootloader.
>> >
>> > Yeah, my external link is working :), well that's a good idea. But, how
>> can
>> > I check the inbuilt 6455 bootloader?? Will I be able to??
>>
>> Sure. You can single-step through the asm instructions (I think the source
>> is
>> published in asm also, but I'm not sure of that).
>>
>> > Also, can I
>> > parallely transfer the boot code via DSP I2C boot mode and watch whats
>> > happening inside DSP registers through CCS?? Will it be possible??
>>
>> Yes exactly. You watch what's happening from the DSP point of view.
>>
>> -Jeff
>>
>> > -----Original Message-----
>> > From: Jeff Brower [mailto:jbrower@signalogic.
>> com]
>> > Sent: Friday, October 10, 2008 6:44 PM
>> > To: Ajeesh Kumar
>> > Cc: c6x@yahoogroups. com
>> > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>> >
>> > Ajeesh-
>> >
>> > > >One thing I don't get -- who is the I2C master? How did you connect
>> > > >this to the DSK 6455?
>> > >
>> > > >I wuld think that you should verify basic functionality of your I2C
>> > > >link first, before you try something complex like boot. Assuming
>> > > >that you've implemented sometype of "external board-to-board" link,
>> > > >did you verify the 6455 can read over this link? A second step would
>> > > >be to verify that your external master can read >the other I2C
>> > > >devices (slaves) on the DSK board.
>> > >
>> > > AJ:
>> > > Your assumption is correct, I've and external board-to-board I2C lin,
>> > > I'm able to detect and read the EEPROM present on the DSK board.
>> >
>> > Ok that's really good then... your external link seems to be working.
>> >
>> > The next step would be to use CCS to single-step through the 6455
>> bootloader
>> > code, and see things "through its eyes". Does the bootloader recognize
>> that
>> > I2C slave boot is happening? Does it jump to correct code to configure
>> > its
>> > I2C port? Does the I2C configuration match the TI docs and otherwise
>> > meet
>> > your expectation?
>> >
>> > There must be some basic reason why you don't see an ACK. If the I2C bus
>> is
>> > wired correctly, then the answer should be in the bootloader.
>> >
>> > -Jeff
>> >
>> > > -----Original Message-----
>> > > From: Jeff Brower [mailto:jbrower@signalogic.
>> com]
>> > > Sent: Wednesday, October 08, 2008 8:03 PM
>> > > To: Asjeesh Kumar
>> > > Cc: Michael Dunn; c6x@yahoogroups. com
>> > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>> > >
>> > > Ajeesh-
>> > >
>> > > > Thank you for ur info.
>> > > > Let me brief my requirement, I need to boot my DSP processor 6455,
>> > > > using I2C slave boot.
>> > > > To do that, i'll be using an external master(another DSP or an FPGA
>> > > > or someother processor).
>> > > >
>> > > > As of now i have a C6455 DSK, i just wanna try this out.
>> > >
>> > > [snip]
>> > >
>> > > > BUT, when i transfter the data part from I2C i'm not getting the
>> > > > ACK, is it fine. Is that the way it goes??
>> > >
>> > > One thing I don't get -- who is the I2C master? How did you connect
>> > > this to the DSK 6455?
>> > >
>> > > I would think that you should verify basic functionality of your I2C
>> > > link first, before you try something complex like boot. Assuming that
>> > > you've implemented some type of "external board-to-board" link, did
>> > > you verify the
>> > > 6455 can read over this link? A second step would be to verify that
>> > > your external master can read the other I2C devices (slaves) on the
>> > > DSK
>> > board.
>> > >
>> > > -Jeff
>> > >
>> > > > I got to know that and external master should send 6 bytes of data
>> > > > "04 00 06 00 00 00 01"
>> > > > (count doesn't include slave address) to slave DSP before sending
>> > > > anything
>> > > > else:
>> > > >
>> > > > 04 xx xx yy yy zz zz
>> > > >
>> > > > Where 04: is slave address for Himalaya DSP in slave I2C boot mode;
>> > > >
>> > > > Xx xx: length
>> > > >
>> > > > Yy yy: check sum
>> > > >
>> > > > Zz zz: boot option
>> > > >
>> > > > For example:
>> > > >
>> > > > 04 00 06 00 00 00 01 <-- order: SA, Len, Chksum, BO
>> > > >
>> > > > Length is 6
>> > > >
>> > > > Checksum is 0 for not using checksum
>> > > >
>> > > > Boot option is 1 for telling slave DSP that the next coming data
>> > > > will be boot table, other option can be used refer to bootloader
>> > > > user's guide
>> > > >
>> > > >
>> > > > Below is my I2C master tranfer sequence I2c master Transmission:
>> > > > START, 04 00 06 00 00 00 01, DATA(n bytes),STOP
>> > > >
>> > > > 1. Enable and start the transmission, 2. send the data 04 00 06 00
>> > > > 00 00 01 followed by n bytes of data.
>> > > > 3.Stop
>> > > >
>> > > > The n-bytes of data is nothing but the boot table.
>> > > > Should the boot table needs to be "blocked". Each block is 128 bytes
>> > > > (starts from length + checksum + data). Refer to Bootloader guide
>> > > > (spruec7) section
>> > > > 2.3.4.1
>> > > > Please do confirm the same.
>> > > >
>> > > > BUT, when i transfter the data part from I2C i'm not getting the
>> > > > ACK, is it fine. Is that the way it goes??
>> > > >
>> > > > Generating Boot Table
>> > > > In ti website, i've got some code piece "spraae9.zip", which has
>> > > > led_program, I2C programmer(for Master I2C boot from EEPROM) and
>> > > > utilities for 6455 DSK.
>> > > > The Led.out file which when programmed on to DSP(6455) using CCS
>> > > > will flash the LEDs on the 6455 DSK board.
>> > > >
>> > > > As per the document C645x bootloader guide(spruec6b.pdf), we have to
>> > > > convert our .out file to Boot table format hex. A TI utility hex2x
>> > > > will do this,
>> > > >
>> > > > in spruec6b.pdf section 3.2.2.3.1 Example - Creating a boot table
>> > > > for ascii Outut is given.
>> > > >
>> > > > Now, for my 6455, for a I2C Slave boot, wht are the option that i
>> > > > should give so as to get a proper boot table??
>> > > >
>> > > > Options like format :
>> > > >
>> > > > Output ASCII hex format
>> > > > Output Intel hex format
>> > > > Output Motorola S hex format
>> > > > Output TI-Tagged hex format
>> > > > Output Extended Tektronix hex format
>> > > > Output TI-TXT hex format
>> > > >
>> > > > Out of the above which format i should use??
>> > > >
>> > > > What are that -memwidth and -romwidth, is it 32 or 16 ???
>> > > >
>> > > > Please help me in the above issues, it would be great if i get to
>> > > > know things at the earliest.
>> > > >
>> > > > Regards,
>> > > > AJEESH KUMAR
>> > > >
>> > > > _____
>> > > >
>> > > > From: c6x@yahoogroups. com
>> [mailto:c6x@yahoogroups. com] On Behalf Of
>> > > > Ajeesh Kumar
>> > > > Sent: Friday, October 03, 2008 11:06 AM
>> > > > To: 'Michael Dunn'; c6x@yahoogroups.
>> com
>> > > > Subject: RE: [c6x] FSBBP: I2C Slave boot for DSP C6455
>> > > >
>> > > > Hi,
>> > > > Thank you for your info :)
>> > > > Yeah, u r correct, In 6455 DSK the I2C is wired to an EEPROM and a
>> > > > Audio Codec. I shall isolate these two components and I do have a
>> > > > separate master board which has an I2C controller which will help me
>> > > > in I2C slave boot for DSP.
>> > > > I've few more quires,
>> > > > 1) When the DSP comes out of reset, it'll be in Slave I2C boot mode.
>> > > > At that time I'm planning for a master writes(from my master board).
>> > > > I've read, I2C devices have internal addressing as well as an I2C
>> > > > slave address - this internal address will follow the slave address.
>> > > > So I assume, Slave address is: 0x00 Internal address : ???
>> > > > What will be the Internal address in the DSP so that I could dump my
>> > > data???
>> > > > Should the internal address be 1 byte only???
>> > > >
>> > > > 2) Also I've read, There are 2 boot modes: Software boot mode and
>> > > > Hardware boot mode.(In 6455 data sheet) I2C is a software boot mode.
>> > > > Could you please differentiate between??
>> > > >
>> > > > 3) When will the on-chip(ROM) boot loader come into picture???
>> > > >
>> > > > Regards,
>> > > > AJEESH KUMAR
>> > > >
>> > > > -----Original Message-----
>> > > > From: Michael Dunn [mailto:mike.dunn.001@
>> > > >
>> > > > gmail.com]
>> > > > Sent: Wednesday, October 01, 2008 9:39 PM
>> > > > To: ajeesh@tataelxsi. co.in
>> > > > Cc: c6x@yahoogroups. com
>> > > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>> > > >
>> > > > Ajeesh,
>> > > >
>> > > > On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar >> > > > co.in> wrote:
>> > > > >
>> > > > > Hi,
>> > > > > Thank you very much :)
>> > > > > I've gone through the "TMS320C645x Bootloader User's Guide"
>> > > > > 1) I got to know that for I2C slave boot for the DSP I've to send
>> > > > > data in Standard boot table format.
>> > > > > Am I write?
>> > > >
>> > > > I think that is what the doc says. I have not worked on an
>> > > > 'I2C slave boot' configuration.
>> > > >
>> > > > > 2) for I2C slave boot for the C6455, what are the setting I should
>> > > > > do except configuring BOOT[0:3] to 0110( slave I2C boot)
>> > > >
>> > > > That should be correct.
>> > > > > 3) I'm using a C6455 DSK, what all setting I need to do except
>> > > > > configuring It to slave I2C boot, do I have to do anything else??
>> > > > One thing comes to mind - you have not mentioned 'what you are
>> > > > trying to do' in general terms.
>> > > > I do not have a 6455 DSK, but I am pretty sure that the I2C is
>> > > > 'wired'
>> > > > to boot from a serial flash [I2C master boot] or control a codec. To
>> > > > operate the DSP in slave boot mode, you will neeed an I2C master to
>> > > control the bus.
>> > > > You will need to check the schematics carefully to see if there is a
>> > > > way that you can do it. I suspect that you could run into
>> > > > problems...
>> > > >
>> > > > mikedunn
>> > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > > Regards,
>> > > > > AJEESH KUMAR
>> > > > >
>> > > > > -----Original Message-----
>> > > > > From: Michael Dunn [mailto:mike.dunn.001@
>> > > > gmail.com]
>> > > > > Sent: Tuesday, September 30, 2008 8:42 PM
>> > > > > To: ajeesh@tataelxsi. co.in
>> > > > > Cc: c6x@yahoogroups. com
>> > > > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>> > > > >
>> > > > > Ajeesh,
>> > > > >
>> > > > > On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar >> > > > > co.in>
>> > > > > wrote:
>> > > > >> Hi All :),
>> > > > >>
>> > > > >> I'm using a TMS320C6455 DSP processor, i've few quires
>> > > > >> 1) I read in the boot loader user's guide (spruec6b.pdf) in the
>> > > > >> section 2, bootloader features its given that the bootloader is
>> > > > >> permanently stored in the ROM of the DSP at 0x100000.
>> > > > >> Does this mean that an on-chip bootloader will be already present
>> > > > >> in the DSP. and We need not have to program this.
>> > > > >
>> > > > > Correct.
>> > > > >>
>> > > > >> 2) What is the I2C Device address for the Processor so that i
>> > > > >> could use this DSP for slave I2c boot.??
>> > > > >
>> > > > > 0. Check out 'TMS320C645x Bootloader User's Guide' at ti.com
>> > > > > for details.
>> > > > >>
>> > > > >> 3) Also an I2C slave boot is done for the DSP(C6455) processor
>> > > > >> using Standard boot table, do you people have any idea about
>> > > > >> this.
>> > > > >
>> > > > > Check out 'TMS320C645x Bootloader User's Guide' at ti.com
>> > > > > for
>> > > > details.
>> > > > >
>> > > > > FYI - if you google something like
>> > > > > +c6455 +dsp +i2c +bootloader +slave
>> > > > > you can find most odt the info that you need.
>> > > > >
>> > > > > mikedunn
>> > > > >>
>> > > > >> Please help me in this regard
>> > > > >>
>> > > > >> Thanks,
>> > > > >> Ajeesh Kumar
>

--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
Reply by Jeff Brower October 14, 20082008-10-14
Ajeesh-

> My understanding is, when i connect the JTAG to the board, the board'll get
> reseted and JTAG will have the control over the board. thus, we might not
> able to access the DSP processor in such conditions.
> If it is possible also, then how could it be done?

I think the sequence is something like this:

-JTAG cable is connected but JTAG in CCS is
disconnected

-reset the board. Bootloader runs and begins
checking config Rs to see what it should be
doing. At this point you want the bootloader
to be "looping" or waiting on something; i.e.
you should have the external boot agent in
reset or otherwise in a hold mode

-connect JTAG in CCS but do not select "Reset
CPU" or "Run" or other debug menu item. You
should now have control and be able to
single-step, watch registers, etc. You
should verify the bootloader is in a code
loop -- either looping to check various boot
mode options, or having already identified
the option, then waiting for something to
start the boot process (receive first word,
etc)

-start your boot process externally (in your
case I2C slave boot)

-watch bootloader code... does it react
correctly, proceed with boot as you expect?

I'm probably missing a detail or two... I remember that watching the bootloader in
action did require careful attention to the debug setup and step-by-step procedure.
I suggest that you ask Mike Dunn on this group if you run into trouble -- he is by
far the person most expert in TI JTAG who you can find online.

-Jeff

> _____
>
> From: c... [mailto:c...] On Behalf Of Jeff
> Brower
> Sent: Monday, October 13, 2008 3:01 PM
> To: Ajeesh Kumar
> Cc: c...
> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>
> Ajeesh-
>
> > >Ok that's really good then... your external link seems to be working.
> >
> > >The next step would be to use CCS to single-step through the 6455
> > bootloader code, and see things "through its eyes". Does the bootloader
> > recognize that I2C >slave boot is happening? Does it jump to correct code
> > to configure its I2C port? Does the I2C configuration match the TI docs
> and
> > otherwise meet your ?
> > >expectation?
> >
> > >There must be some basic reason why you don't see an ACK. If the I2C bus
> > is wired correctly, then the answer should be in the bootloader.
> >
> > Yeah, my external link is working :), well that's a good idea. But, how
> can
> > I check the inbuilt 6455 bootloader?? Will I be able to??
>
> Sure. You can single-step through the asm instructions (I think the source
> is
> published in asm also, but I'm not sure of that).
>
> > Also, can I
> > parallely transfer the boot code via DSP I2C boot mode and watch whats
> > happening inside DSP registers through CCS?? Will it be possible??
>
> Yes exactly. You watch what's happening from the DSP point of view.
>
> -Jeff
>
> > -----Original Message-----
> > From: Jeff Brower [mailto:jbrower@signalogic.
> com]
> > Sent: Friday, October 10, 2008 6:44 PM
> > To: Ajeesh Kumar
> > Cc: c6x@yahoogroups. com
> > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> >
> > Ajeesh-
> >
> > > >One thing I don't get -- who is the I2C master? How did you connect
> > > >this to the DSK 6455?
> > >
> > > >I wuld think that you should verify basic functionality of your I2C
> > > >link first, before you try something complex like boot. Assuming
> > > >that you've implemented sometype of "external board-to-board" link,
> > > >did you verify the 6455 can read over this link? A second step would
> > > >be to verify that your external master can read >the other I2C
> > > >devices (slaves) on the DSK board.
> > >
> > > AJ:
> > > Your assumption is correct, I've and external board-to-board I2C lin,
> > > I'm able to detect and read the EEPROM present on the DSK board.
> >
> > Ok that's really good then... your external link seems to be working.
> >
> > The next step would be to use CCS to single-step through the 6455
> bootloader
> > code, and see things "through its eyes". Does the bootloader recognize
> that
> > I2C slave boot is happening? Does it jump to correct code to configure its
> > I2C port? Does the I2C configuration match the TI docs and otherwise meet
> > your expectation?
> >
> > There must be some basic reason why you don't see an ACK. If the I2C bus
> is
> > wired correctly, then the answer should be in the bootloader.
> >
> > -Jeff
> >
> > > -----Original Message-----
> > > From: Jeff Brower [mailto:jbrower@signalogic.
> com]
> > > Sent: Wednesday, October 08, 2008 8:03 PM
> > > To: Asjeesh Kumar
> > > Cc: Michael Dunn; c6x@yahoogroups. com
> > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > >
> > > Ajeesh-
> > >
> > > > Thank you for ur info.
> > > > Let me brief my requirement, I need to boot my DSP processor 6455,
> > > > using I2C slave boot.
> > > > To do that, i'll be using an external master(another DSP or an FPGA
> > > > or someother processor).
> > > >
> > > > As of now i have a C6455 DSK, i just wanna try this out.
> > >
> > > [snip]
> > >
> > > > BUT, when i transfter the data part from I2C i'm not getting the
> > > > ACK, is it fine. Is that the way it goes??
> > >
> > > One thing I don't get -- who is the I2C master? How did you connect
> > > this to the DSK 6455?
> > >
> > > I would think that you should verify basic functionality of your I2C
> > > link first, before you try something complex like boot. Assuming that
> > > you've implemented some type of "external board-to-board" link, did
> > > you verify the
> > > 6455 can read over this link? A second step would be to verify that
> > > your external master can read the other I2C devices (slaves) on the DSK
> > board.
> > >
> > > -Jeff
> > >
> > > > I got to know that and external master should send 6 bytes of data
> > > > "04 00 06 00 00 00 01"
> > > > (count doesn't include slave address) to slave DSP before sending
> > > > anything
> > > > else:
> > > >
> > > > 04 xx xx yy yy zz zz
> > > >
> > > > Where 04: is slave address for Himalaya DSP in slave I2C boot mode;
> > > >
> > > > Xx xx: length
> > > >
> > > > Yy yy: check sum
> > > >
> > > > Zz zz: boot option
> > > >
> > > > For example:
> > > >
> > > > 04 00 06 00 00 00 01 <-- order: SA, Len, Chksum, BO
> > > >
> > > > Length is 6
> > > >
> > > > Checksum is 0 for not using checksum
> > > >
> > > > Boot option is 1 for telling slave DSP that the next coming data
> > > > will be boot table, other option can be used refer to bootloader
> > > > user's guide
> > > >
> > > >
> > > > Below is my I2C master tranfer sequence I2c master Transmission:
> > > > START, 04 00 06 00 00 00 01, DATA(n bytes),STOP
> > > >
> > > > 1. Enable and start the transmission, 2. send the data 04 00 06 00
> > > > 00 00 01 followed by n bytes of data.
> > > > 3.Stop
> > > >
> > > > The n-bytes of data is nothing but the boot table.
> > > > Should the boot table needs to be "blocked". Each block is 128 bytes
> > > > (starts from length + checksum + data). Refer to Bootloader guide
> > > > (spruec7) section
> > > > 2.3.4.1
> > > > Please do confirm the same.
> > > >
> > > > BUT, when i transfter the data part from I2C i'm not getting the
> > > > ACK, is it fine. Is that the way it goes??
> > > >
> > > > Generating Boot Table
> > > > In ti website, i've got some code piece "spraae9.zip", which has
> > > > led_program, I2C programmer(for Master I2C boot from EEPROM) and
> > > > utilities for 6455 DSK.
> > > > The Led.out file which when programmed on to DSP(6455) using CCS
> > > > will flash the LEDs on the 6455 DSK board.
> > > >
> > > > As per the document C645x bootloader guide(spruec6b.pdf), we have to
> > > > convert our .out file to Boot table format hex. A TI utility hex2x
> > > > will do this,
> > > >
> > > > in spruec6b.pdf section 3.2.2.3.1 Example - Creating a boot table
> > > > for ascii Outut is given.
> > > >
> > > > Now, for my 6455, for a I2C Slave boot, wht are the option that i
> > > > should give so as to get a proper boot table??
> > > >
> > > > Options like format :
> > > >
> > > > Output ASCII hex format
> > > > Output Intel hex format
> > > > Output Motorola S hex format
> > > > Output TI-Tagged hex format
> > > > Output Extended Tektronix hex format
> > > > Output TI-TXT hex format
> > > >
> > > > Out of the above which format i should use??
> > > >
> > > > What are that -memwidth and -romwidth, is it 32 or 16 ???
> > > >
> > > > Please help me in the above issues, it would be great if i get to
> > > > know things at the earliest.
> > > >
> > > > Regards,
> > > > AJEESH KUMAR
> > > >
> > > > _____
> > > >
> > > > From: c6x@yahoogroups. com
> [mailto:c6x@yahoogroups. com] On Behalf Of
> > > > Ajeesh Kumar
> > > > Sent: Friday, October 03, 2008 11:06 AM
> > > > To: 'Michael Dunn'; c6x@yahoogroups.
> com
> > > > Subject: RE: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > > >
> > > > Hi,
> > > > Thank you for your info :)
> > > > Yeah, u r correct, In 6455 DSK the I2C is wired to an EEPROM and a
> > > > Audio Codec. I shall isolate these two components and I do have a
> > > > separate master board which has an I2C controller which will help me
> > > > in I2C slave boot for DSP.
> > > > I've few more quires,
> > > > 1) When the DSP comes out of reset, it'll be in Slave I2C boot mode.
> > > > At that time I'm planning for a master writes(from my master board).
> > > > I've read, I2C devices have internal addressing as well as an I2C
> > > > slave address - this internal address will follow the slave address.
> > > > So I assume, Slave address is: 0x00 Internal address : ???
> > > > What will be the Internal address in the DSP so that I could dump my
> > > data???
> > > > Should the internal address be 1 byte only???
> > > >
> > > > 2) Also I've read, There are 2 boot modes: Software boot mode and
> > > > Hardware boot mode.(In 6455 data sheet) I2C is a software boot mode.
> > > > Could you please differentiate between??
> > > >
> > > > 3) When will the on-chip(ROM) boot loader come into picture???
> > > >
> > > > Regards,
> > > > AJEESH KUMAR
> > > >
> > > > -----Original Message-----
> > > > From: Michael Dunn [mailto:mike.dunn.001@
> > > >
> > > > gmail.com]
> > > > Sent: Wednesday, October 01, 2008 9:39 PM
> > > > To: ajeesh@tataelxsi. co.in
> > > > Cc: c6x@yahoogroups. com
> > > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > > >
> > > > Ajeesh,
> > > >
> > > > On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar > > > > co.in> wrote:
> > > > >
> > > > > Hi,
> > > > > Thank you very much :)
> > > > > I've gone through the "TMS320C645x Bootloader User's Guide"
> > > > > 1) I got to know that for I2C slave boot for the DSP I've to send
> > > > > data in Standard boot table format.
> > > > > Am I write?
> > > >
> > > > I think that is what the doc says. I have not worked on an
> > > > 'I2C slave boot' configuration.
> > > >
> > > > > 2) for I2C slave boot for the C6455, what are the setting I should
> > > > > do except configuring BOOT[0:3] to 0110( slave I2C boot)
> > > >
> > > > That should be correct.
> > > > > 3) I'm using a C6455 DSK, what all setting I need to do except
> > > > > configuring It to slave I2C boot, do I have to do anything else??
> > > > One thing comes to mind - you have not mentioned 'what you are
> > > > trying to do' in general terms.
> > > > I do not have a 6455 DSK, but I am pretty sure that the I2C is 'wired'
> > > > to boot from a serial flash [I2C master boot] or control a codec. To
> > > > operate the DSP in slave boot mode, you will neeed an I2C master to
> > > control the bus.
> > > > You will need to check the schematics carefully to see if there is a
> > > > way that you can do it. I suspect that you could run into problems...
> > > >
> > > > mikedunn
> > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Regards,
> > > > > AJEESH KUMAR
> > > > >
> > > > > -----Original Message-----
> > > > > From: Michael Dunn [mailto:mike.dunn.001@
> > > > gmail.com]
> > > > > Sent: Tuesday, September 30, 2008 8:42 PM
> > > > > To: ajeesh@tataelxsi. co.in
> > > > > Cc: c6x@yahoogroups. com
> > > > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > > > >
> > > > > Ajeesh,
> > > > >
> > > > > On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar > > > > > co.in>
> > > > > wrote:
> > > > >> Hi All :),
> > > > >>
> > > > >> I'm using a TMS320C6455 DSP processor, i've few quires
> > > > >> 1) I read in the boot loader user's guide (spruec6b.pdf) in the
> > > > >> section 2, bootloader features its given that the bootloader is
> > > > >> permanently stored in the ROM of the DSP at 0x100000.
> > > > >> Does this mean that an on-chip bootloader will be already present
> > > > >> in the DSP. and We need not have to program this.
> > > > >
> > > > > Correct.
> > > > >>
> > > > >> 2) What is the I2C Device address for the Processor so that i
> > > > >> could use this DSP for slave I2c boot.??
> > > > >
> > > > > 0. Check out 'TMS320C645x Bootloader User's Guide' at ti.com
> > > > > for details.
> > > > >>
> > > > >> 3) Also an I2C slave boot is done for the DSP(C6455) processor
> > > > >> using Standard boot table, do you people have any idea about this.
> > > > >
> > > > > Check out 'TMS320C645x Bootloader User's Guide' at ti.com
> > > > > for
> > > > details.
> > > > >
> > > > > FYI - if you google something like
> > > > > +c6455 +dsp +i2c +bootloader +slave
> > > > > you can find most odt the info that you need.
> > > > >
> > > > > mikedunn
> > > > >>
> > > > >> Please help me in this regard
> > > > >>
> > > > >> Thanks,
> > > > >> Ajeesh Kumar
Reply by Ajeesh Kumar October 14, 20082008-10-14
hi jeff,

My understanding is, when i connect the JTAG to the board, the board'll get
reseted and JTAG will have the control over the board. thus, we might not
able to access the DSP processor in such conditions.
If it is possible also, then how could it be done?

Regards,
AJEESH KUMAR

_____

From: c... [mailto:c...] On Behalf Of Jeff
Brower
Sent: Monday, October 13, 2008 3:01 PM
To: Ajeesh Kumar
Cc: c...
Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455

Ajeesh-

> >Ok that's really good then... your external link seems to be working.
>
> >The next step would be to use CCS to single-step through the 6455
> bootloader code, and see things "through its eyes". Does the bootloader
> recognize that I2C >slave boot is happening? Does it jump to correct code
> to configure its I2C port? Does the I2C configuration match the TI docs
and
> otherwise meet your ?
> >expectation?
>
> >There must be some basic reason why you don't see an ACK. If the I2C bus
> is wired correctly, then the answer should be in the bootloader.
>
> Yeah, my external link is working :), well that's a good idea. But, how
can
> I check the inbuilt 6455 bootloader?? Will I be able to??

Sure. You can single-step through the asm instructions (I think the source
is
published in asm also, but I'm not sure of that).

> Also, can I
> parallely transfer the boot code via DSP I2C boot mode and watch whats
> happening inside DSP registers through CCS?? Will it be possible??

Yes exactly. You watch what's happening from the DSP point of view.

-Jeff

> -----Original Message-----
> From: Jeff Brower [mailto:jbrower@signalogic.
com]
> Sent: Friday, October 10, 2008 6:44 PM
> To: Ajeesh Kumar
> Cc: c6x@yahoogroups. com
> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>
> Ajeesh-
>
> > >One thing I don't get -- who is the I2C master? How did you connect
> > >this to the DSK 6455?
> >
> > >I wuld think that you should verify basic functionality of your I2C
> > >link first, before you try something complex like boot. Assuming
> > >that you've implemented sometype of "external board-to-board" link,
> > >did you verify the 6455 can read over this link? A second step would
> > >be to verify that your external master can read >the other I2C
> > >devices (slaves) on the DSK board.
> >
> > AJ:
> > Your assumption is correct, I've and external board-to-board I2C lin,
> > I'm able to detect and read the EEPROM present on the DSK board.
>
> Ok that's really good then... your external link seems to be working.
>
> The next step would be to use CCS to single-step through the 6455
bootloader
> code, and see things "through its eyes". Does the bootloader recognize
that
> I2C slave boot is happening? Does it jump to correct code to configure its
> I2C port? Does the I2C configuration match the TI docs and otherwise meet
> your expectation?
>
> There must be some basic reason why you don't see an ACK. If the I2C bus
is
> wired correctly, then the answer should be in the bootloader.
>
> -Jeff
>
> > -----Original Message-----
> > From: Jeff Brower [mailto:jbrower@signalogic.
com]
> > Sent: Wednesday, October 08, 2008 8:03 PM
> > To: Asjeesh Kumar
> > Cc: Michael Dunn; c6x@yahoogroups. com
> > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> >
> > Ajeesh-
> >
> > > Thank you for ur info.
> > > Let me brief my requirement, I need to boot my DSP processor 6455,
> > > using I2C slave boot.
> > > To do that, i'll be using an external master(another DSP or an FPGA
> > > or someother processor).
> > >
> > > As of now i have a C6455 DSK, i just wanna try this out.
> >
> > [snip]
> >
> > > BUT, when i transfter the data part from I2C i'm not getting the
> > > ACK, is it fine. Is that the way it goes??
> >
> > One thing I don't get -- who is the I2C master? How did you connect
> > this to the DSK 6455?
> >
> > I would think that you should verify basic functionality of your I2C
> > link first, before you try something complex like boot. Assuming that
> > you've implemented some type of "external board-to-board" link, did
> > you verify the
> > 6455 can read over this link? A second step would be to verify that
> > your external master can read the other I2C devices (slaves) on the DSK
> board.
> >
> > -Jeff
> >
> > > I got to know that and external master should send 6 bytes of data
> > > "04 00 06 00 00 00 01"
> > > (count doesn't include slave address) to slave DSP before sending
> > > anything
> > > else:
> > >
> > > 04 xx xx yy yy zz zz
> > >
> > > Where 04: is slave address for Himalaya DSP in slave I2C boot mode;
> > >
> > > Xx xx: length
> > >
> > > Yy yy: check sum
> > >
> > > Zz zz: boot option
> > >
> > > For example:
> > >
> > > 04 00 06 00 00 00 01 <-- order: SA, Len, Chksum, BO
> > >
> > > Length is 6
> > >
> > > Checksum is 0 for not using checksum
> > >
> > > Boot option is 1 for telling slave DSP that the next coming data
> > > will be boot table, other option can be used refer to bootloader
> > > user's guide
> > >
> > >
> > > Below is my I2C master tranfer sequence I2c master Transmission:
> > > START, 04 00 06 00 00 00 01, DATA(n bytes),STOP
> > >
> > > 1. Enable and start the transmission, 2. send the data 04 00 06 00
> > > 00 00 01 followed by n bytes of data.
> > > 3.Stop
> > >
> > > The n-bytes of data is nothing but the boot table.
> > > Should the boot table needs to be "blocked". Each block is 128 bytes
> > > (starts from length + checksum + data). Refer to Bootloader guide
> > > (spruec7) section
> > > 2.3.4.1
> > > Please do confirm the same.
> > >
> > > BUT, when i transfter the data part from I2C i'm not getting the
> > > ACK, is it fine. Is that the way it goes??
> > >
> > > Generating Boot Table
> > > In ti website, i've got some code piece "spraae9.zip", which has
> > > led_program, I2C programmer(for Master I2C boot from EEPROM) and
> > > utilities for 6455 DSK.
> > > The Led.out file which when programmed on to DSP(6455) using CCS
> > > will flash the LEDs on the 6455 DSK board.
> > >
> > > As per the document C645x bootloader guide(spruec6b.pdf), we have to
> > > convert our .out file to Boot table format hex. A TI utility hex2x
> > > will do this,
> > >
> > > in spruec6b.pdf section 3.2.2.3.1 Example - Creating a boot table
> > > for ascii Outut is given.
> > >
> > > Now, for my 6455, for a I2C Slave boot, wht are the option that i
> > > should give so as to get a proper boot table??
> > >
> > > Options like format :
> > >
> > > Output ASCII hex format
> > > Output Intel hex format
> > > Output Motorola S hex format
> > > Output TI-Tagged hex format
> > > Output Extended Tektronix hex format
> > > Output TI-TXT hex format
> > >
> > > Out of the above which format i should use??
> > >
> > > What are that -memwidth and -romwidth, is it 32 or 16 ???
> > >
> > > Please help me in the above issues, it would be great if i get to
> > > know things at the earliest.
> > >
> > > Regards,
> > > AJEESH KUMAR
> > >
> > > _____
> > >
> > > From: c6x@yahoogroups. com
[mailto:c6x@yahoogroups. com] On Behalf Of
> > > Ajeesh Kumar
> > > Sent: Friday, October 03, 2008 11:06 AM
> > > To: 'Michael Dunn'; c6x@yahoogroups.
com
> > > Subject: RE: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > >
> > > Hi,
> > > Thank you for your info :)
> > > Yeah, u r correct, In 6455 DSK the I2C is wired to an EEPROM and a
> > > Audio Codec. I shall isolate these two components and I do have a
> > > separate master board which has an I2C controller which will help me
> > > in I2C slave boot for DSP.
> > > I've few more quires,
> > > 1) When the DSP comes out of reset, it'll be in Slave I2C boot mode.
> > > At that time I'm planning for a master writes(from my master board).
> > > I've read, I2C devices have internal addressing as well as an I2C
> > > slave address - this internal address will follow the slave address.
> > > So I assume, Slave address is: 0x00 Internal address : ???
> > > What will be the Internal address in the DSP so that I could dump my
> > data???
> > > Should the internal address be 1 byte only???
> > >
> > > 2) Also I've read, There are 2 boot modes: Software boot mode and
> > > Hardware boot mode.(In 6455 data sheet) I2C is a software boot mode.
> > > Could you please differentiate between??
> > >
> > > 3) When will the on-chip(ROM) boot loader come into picture???
> > >
> > > Regards,
> > > AJEESH KUMAR
> > >
> > > -----Original Message-----
> > > From: Michael Dunn [mailto:mike.dunn.001@
> > >
> > > gmail.com]
> > > Sent: Wednesday, October 01, 2008 9:39 PM
> > > To: ajeesh@tataelxsi. co.in
> > > Cc: c6x@yahoogroups. com
> > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > >
> > > Ajeesh,
> > >
> > > On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar > > > co.in> wrote:
> > > >
> > > > Hi,
> > > > Thank you very much :)
> > > > I've gone through the "TMS320C645x Bootloader User's Guide"
> > > > 1) I got to know that for I2C slave boot for the DSP I've to send
> > > > data in Standard boot table format.
> > > > Am I write?
> > >
> > > I think that is what the doc says. I have not worked on an
> > > 'I2C slave boot' configuration.
> > >
> > > > 2) for I2C slave boot for the C6455, what are the setting I should
> > > > do except configuring BOOT[0:3] to 0110( slave I2C boot)
> > >
> > > That should be correct.
> > > > 3) I'm using a C6455 DSK, what all setting I need to do except
> > > > configuring It to slave I2C boot, do I have to do anything else??
> > > One thing comes to mind - you have not mentioned 'what you are
> > > trying to do' in general terms.
> > > I do not have a 6455 DSK, but I am pretty sure that the I2C is 'wired'
> > > to boot from a serial flash [I2C master boot] or control a codec. To
> > > operate the DSP in slave boot mode, you will neeed an I2C master to
> > control the bus.
> > > You will need to check the schematics carefully to see if there is a
> > > way that you can do it. I suspect that you could run into problems...
> > >
> > > mikedunn
> > >
> > > >
> > > >
> > > >
> > > >
> > > > Regards,
> > > > AJEESH KUMAR
> > > >
> > > > -----Original Message-----
> > > > From: Michael Dunn [mailto:mike.dunn.001@
> > > gmail.com]
> > > > Sent: Tuesday, September 30, 2008 8:42 PM
> > > > To: ajeesh@tataelxsi. co.in
> > > > Cc: c6x@yahoogroups. com
> > > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > > >
> > > > Ajeesh,
> > > >
> > > > On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar > > > > co.in>
> > > > wrote:
> > > >> Hi All :),
> > > >>
> > > >> I'm using a TMS320C6455 DSP processor, i've few quires
> > > >> 1) I read in the boot loader user's guide (spruec6b.pdf) in the
> > > >> section 2, bootloader features its given that the bootloader is
> > > >> permanently stored in the ROM of the DSP at 0x100000.
> > > >> Does this mean that an on-chip bootloader will be already present
> > > >> in the DSP. and We need not have to program this.
> > > >
> > > > Correct.
> > > >>
> > > >> 2) What is the I2C Device address for the Processor so that i
> > > >> could use this DSP for slave I2c boot.??
> > > >
> > > > 0. Check out 'TMS320C645x Bootloader User's Guide' at ti.com
> > > > for details.
> > > >>
> > > >> 3) Also an I2C slave boot is done for the DSP(C6455) processor
> > > >> using Standard boot table, do you people have any idea about this.
> > > >
> > > > Check out 'TMS320C645x Bootloader User's Guide' at ti.com
> > > > for
> > > details.
> > > >
> > > > FYI - if you google something like
> > > > +c6455 +dsp +i2c +bootloader +slave
> > > > you can find most odt the info that you need.
> > > >
> > > > mikedunn
> > > >>
> > > >> Please help me in this regard
> > > >>
> > > >> Thanks,
> > > >> Ajeesh Kumar
Reply by Ajeesh Kumar October 13, 20082008-10-13
Hi Richard,

Yes, jeff is correct :). I'm on I2C Slave boot.

Regards,
AJEESH KUMAR
-----Original Message-----
From: Jeff Brower [mailto:j...@signalogic.com]
Sent: Friday, October 10, 2008 8:53 PM
To: Richard Williams
Cc: Ajeesh Kumar; c...
Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455

Richard-

> here is my understanding:
> the built in I2C boot loader is expecting to communicate with a serial I2C
EEPROM.
> A serial I2C EEPROM does not expect a 'ack', only a 'read next' command.
>
> so the built in I2C boot loader will not send an 'ack'.

That would be for IC2 master boot. Ajeesh wants to use the DSP in IC2 slave
boot mode, which it seems is supported by the 6455.

-Jeff

> ---------- Original Message -----------
> From: Jeff Brower
> To: Ajeesh Kumar
> Cc: c...
> Sent: Fri, 10 Oct 2008 08:14:01 -0500
> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>
> > Ajeesh-
> >
> > > >One thing I don't get -- who is the I2C master? How did you
> > > >connect this to the DSK 6455?
> > >
> > > >I wuld think that you should verify basic functionality of your
> > > >I2C link first, before you try something complex like boot.
> > > >Assuming that you've implemented sometype of "external
> > > >board-to-board" link, did you verify the 6455 can read over this
> > > >link? A second step would be to verify that your external master
> > > >can read >the other I2C devices (slaves) on the DSK board.
> > >
> > > AJ:
> > > Your assumption is correct, I've and external board-to-board I2C
> > > lin, I'm able to detect and read the EEPROM present on the DSK board.
> >
> > Ok that's really good then... your external link seems to be working.
> >
> > The next step would be to use CCS to single-step through the 6455
> > bootloader code, and see things "through its eyes". Does the
> > bootloader recognize that I2C slave boot is happening? Does it jump
> > to correct code to configure its I2C port? Does the I2C
> > configuration match the TI docs and otherwise meet your expectation?
> >
> > There must be some basic reason why you don't see an ACK. If the
> > I2C bus is wired correctly, then the answer should be in the bootloader.
> >
> > -Jeff
> >
> > > -----Original Message-----
> > > From: Jeff Brower [mailto:j...@signalogic.com]
> > > Sent: Wednesday, October 08, 2008 8:03 PM
> > > To: Asjeesh Kumar
> > > Cc: Michael Dunn; c...
> > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > >
> > > Ajeesh-
> > >
> > > > Thank you for ur info.
> > > > Let me brief my requirement, I need to boot my DSP processor
> > > > 6455, using I2C slave boot.
> > > > To do that, i'll be using an external master(another DSP or an
> > > > FPGA or someother processor).
> > > >
> > > > As of now i have a C6455 DSK, i just wanna try this out.
> > >
> > > [snip]
> > >
> > > > BUT, when i transfter the data part from I2C i'm not getting the
> > > > ACK, is it fine. Is that the way it goes??
> > >
> > > One thing I don't get -- who is the I2C master? How did you
> > > connect this to the DSK 6455?
> > >
> > > I would think that you should verify basic functionality of your
> > > I2C link first, before you try something complex like boot.
> > > Assuming that you've implemented some type of "external
> > > board-to-board" link, did you verify the
> > > 6455 can read over this link? A second step would be to verify
> > > that your external master can read the other I2C devices (slaves) on
the DSK board.
> > >
> > > -Jeff
> > >
> > > > I got to know that and external master should send 6 bytes of
> > > > data "04 00 06 00 00 00 01"
> > > > (count doesn't include slave address) to slave DSP before
> > > > sending anything
> > > > else:
> > > >
> > > > 04 xx xx yy yy zz zz
> > > >
> > > > Where 04: is slave address for Himalaya DSP in slave I2C boot
> > > > mode;
> > > >
> > > > Xx xx: length
> > > >
> > > > Yy yy: check sum
> > > >
> > > > Zz zz: boot option
> > > >
> > > > For example:
> > > >
> > > > 04 00 06 00 00 00 01 <-- order: SA, Len, Chksum, BO
> > > >
> > > > Length is 6
> > > >
> > > > Checksum is 0 for not using checksum
> > > >
> > > > Boot option is 1 for telling slave DSP that the next coming data
> > > > will be boot table, other option can be used refer to bootloader
> > > > user's guide
> > > >
> > > >
> > > > Below is my I2C master tranfer sequence I2c master Transmission:
> > > > START, 04 00 06 00 00 00 01, DATA(n bytes),STOP
> > > >
> > > > 1. Enable and start the transmission, 2. send the data 04 00 06
> > > > 00 00 00 01 followed by n bytes of data.
> > > > 3.Stop
> > > >
> > > > The n-bytes of data is nothing but the boot table.
> > > > Should the boot table needs to be "blocked". Each block is 128
> > > > bytes (starts from length + checksum + data). Refer to
> > > > Bootloader guide
> > > > (spruec7) section
> > > > 2.3.4.1
> > > > Please do confirm the same.
> > > >
> > > > BUT, when i transfter the data part from I2C i'm not getting the
> > > > ACK, is it fine. Is that the way it goes??
> > > >
> > > > Generating Boot Table
> > > > In ti website, i've got some code piece "spraae9.zip", which has
> > > > led_program, I2C programmer(for Master I2C boot from EEPROM) and
> > > > utilities for 6455 DSK.
> > > > The Led.out file which when programmed on to DSP(6455) using CCS
> > > > will flash the LEDs on the 6455 DSK board.
> > > >
> > > > As per the document C645x bootloader guide(spruec6b.pdf), we
> > > > have to convert our .out file to Boot table format hex. A TI
> > > > utility hex2x will do this,
> > > >
> > > > in spruec6b.pdf section 3.2.2.3.1 Example - Creating a boot
> > > > table for ascii Outut is given.
> > > >
> > > > Now, for my 6455, for a I2C Slave boot, wht are the option that
> > > > i should give so as to get a proper boot table??
> > > >
> > > > Options like format :
> > > >
> > > > Output ASCII hex format
> > > > Output Intel hex format
> > > > Output Motorola S hex format
> > > > Output TI-Tagged hex format
> > > > Output Extended Tektronix hex format
> > > > Output TI-TXT hex format
> > > >
> > > > Out of the above which format i should use??
> > > >
> > > > What are that -memwidth and -romwidth, is it 32 or 16 ???
> > > >
> > > > Please help me in the above issues, it would be great if i get
> > > > to know things at the earliest.
> > > >
> > > > Regards,
> > > > AJEESH KUMAR
> > > >
> > > > _____
> > > >
> > > > From: c... [mailto:c...] On Behalf
> > > > Of Ajeesh Kumar
> > > > Sent: Friday, October 03, 2008 11:06 AM
> > > > To: 'Michael Dunn'; c...
> > > > Subject: RE: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > > >
> > > > Hi,
> > > > Thank you for your info :)
> > > > Yeah, u r correct, In 6455 DSK the I2C is wired to an EEPROM and
> > > > a Audio Codec. I shall isolate these two components and I do
> > > > have a separate master board which has an I2C controller which
> > > > will help me in I2C slave boot for DSP.
> > > > I've few more quires,
> > > > 1) When the DSP comes out of reset, it'll be in Slave I2C boot mode.
> > > > At that time I'm planning for a master writes(from my master board).
> > > > I've read, I2C devices have internal addressing as well as an
> > > > I2C slave address - this internal address will follow the slave
address.
> > > > So I assume, Slave address is: 0x00 Internal address : ???
> > > > What will be the Internal address in the DSP so that I could
> > > > dump my
> > > data???
> > > > Should the internal address be 1 byte only???
> > > >
> > > > 2) Also I've read, There are 2 boot modes: Software boot mode
> > > > and Hardware boot mode.(In 6455 data sheet) I2C is a software boot
mode.
> > > > Could you please differentiate between??
> > > >
> > > > 3) When will the on-chip(ROM) boot loader come into picture???
> > > >
> > > > Regards,
> > > > AJEESH KUMAR
> > > >
> > > > -----Original Message-----
> > > > From: Michael Dunn [mailto:mike.dunn.001@
> > > >
> > > > gmail.com]
> > > > Sent: Wednesday, October 01, 2008 9:39 PM
> > > > To: ajeesh@tataelxsi. co.in
> > > > Cc: c6x@yahoogroups. com
> > > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > > >
> > > > Ajeesh,
> > > >
> > > > On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar > > > > co.in> wrote:
> > > > >
> > > > > Hi,
> > > > > Thank you very much :)
> > > > > I've gone through the "TMS320C645x Bootloader User's Guide"
> > > > > 1) I got to know that for I2C slave boot for the DSP I've to
> > > > > send data in Standard boot table format.
> > > > > Am I write?
> > > >
> > > > I think that is what the doc says. I have not worked on an
> > > > 'I2C slave boot' configuration.
> > > >
> > > > > 2) for I2C slave boot for the C6455, what are the setting I
> > > > > should do except configuring BOOT[0:3] to 0110( slave I2C
> > > > > boot)
> > > >
> > > > That should be correct.
> > > > > 3) I'm using a C6455 DSK, what all setting I need to do except
> > > > > configuring It to slave I2C boot, do I have to do anything else??
> > > > One thing comes to mind - you have not mentioned 'what you
> > > > are trying to do' in general terms.
> > > > I do not have a 6455 DSK, but I am pretty sure that the I2C is
'wired'
> > > > to boot from a serial flash [I2C master boot] or control a
> > > > codec. To operate the DSP in slave boot mode, you will neeed an
> > > > I2C master to
> > > control the bus.
> > > > You will need to check the schematics carefully to see if there
> > > > is a way that you can do it. I suspect that you could run into
problems...
> > > >
> > > > mikedunn
> > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Regards,
> > > > > AJEESH KUMAR
> > > > >
> > > > > -----Original Message-----
> > > > > From: Michael Dunn [mailto:mike.dunn.001@
> > > > gmail.com]
> > > > > Sent: Tuesday, September 30, 2008 8:42 PM
> > > > > To: ajeesh@tataelxsi. co.in
> > > > > Cc: c6x@yahoogroups. com
> > > > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > > > >
> > > > > Ajeesh,
> > > > >
> > > > > On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar > > > > > co.in>
> > > > > wrote:
> > > > >> Hi All :),
> > > > >>
> > > > >> I'm using a TMS320C6455 DSP processor, i've few quires
> > > > >> 1) I read in the boot loader user's guide (spruec6b.pdf) in
> > > > >> the section 2, bootloader features its given that the
> > > > >> bootloader is permanently stored in the ROM of the DSP at
0x100000.
> > > > >> Does this mean that an on-chip bootloader will be already
> > > > >> present in the DSP. and We need not have to program this.
> > > > >
> > > > > Correct.
> > > > >>
> > > > >> 2) What is the I2C Device address for the Processor so that i
> > > > >> could use this DSP for slave I2c boot.??
> > > > >
> > > > > 0. Check out 'TMS320C645x Bootloader User's Guide' at
> > > > > ti.com for details.
> > > > >>
> > > > >> 3) Also an I2C slave boot is done for the DSP(C6455)
> > > > >> processor using Standard boot table, do you people have any idea
about this.
> > > > >
> > > > > Check out 'TMS320C645x Bootloader User's Guide' at
> > > > > ti.com for
> > > > details.
> > > > >
> > > > > FYI - if you google something like
> > > > > +c6455 +dsp +i2c +bootloader +slave
> > > > > you can find most odt the info that you need.
> > > > >
> > > > > mikedunn
> > > > >>
> > > > >> Please help me in this regard
> > > > >>
> > > > >> Thanks,
> > > > >> Ajeesh Kumar
> ------- End of Original Message -------
Reply by Jeff Brower October 13, 20082008-10-13
Ajeesh-

> >Ok that's really good then... your external link seems to be working.
>
> >The next step would be to use CCS to single-step through the 6455
> bootloader code, and see things "through its eyes". Does the bootloader
> recognize that I2C >slave boot is happening? Does it jump to correct code
> to configure its I2C port? Does the I2C configuration match the TI docs and
> otherwise meet your ?
> >expectation?
>
> >There must be some basic reason why you don't see an ACK. If the I2C bus
> is wired correctly, then the answer should be in the bootloader.
>
> Yeah, my external link is working :), well that's a good idea. But, how can
> I check the inbuilt 6455 bootloader?? Will I be able to??

Sure. You can single-step through the asm instructions (I think the source is
published in asm also, but I'm not sure of that).

> Also, can I
> parallely transfer the boot code via DSP I2C boot mode and watch whats
> happening inside DSP registers through CCS?? Will it be possible??

Yes exactly. You watch what's happening from the DSP point of view.

-Jeff

> -----Original Message-----
> From: Jeff Brower [mailto:j...@signalogic.com]
> Sent: Friday, October 10, 2008 6:44 PM
> To: Ajeesh Kumar
> Cc: c...
> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>
> Ajeesh-
>
> > >One thing I don't get -- who is the I2C master? How did you connect
> > >this to the DSK 6455?
> >
> > >I wuld think that you should verify basic functionality of your I2C
> > >link first, before you try something complex like boot. Assuming
> > >that you've implemented sometype of "external board-to-board" link,
> > >did you verify the 6455 can read over this link? A second step would
> > >be to verify that your external master can read >the other I2C
> > >devices (slaves) on the DSK board.
> >
> > AJ:
> > Your assumption is correct, I've and external board-to-board I2C lin,
> > I'm able to detect and read the EEPROM present on the DSK board.
>
> Ok that's really good then... your external link seems to be working.
>
> The next step would be to use CCS to single-step through the 6455 bootloader
> code, and see things "through its eyes". Does the bootloader recognize that
> I2C slave boot is happening? Does it jump to correct code to configure its
> I2C port? Does the I2C configuration match the TI docs and otherwise meet
> your expectation?
>
> There must be some basic reason why you don't see an ACK. If the I2C bus is
> wired correctly, then the answer should be in the bootloader.
>
> -Jeff
>
> > -----Original Message-----
> > From: Jeff Brower [mailto:j...@signalogic.com]
> > Sent: Wednesday, October 08, 2008 8:03 PM
> > To: Asjeesh Kumar
> > Cc: Michael Dunn; c...
> > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> >
> > Ajeesh-
> >
> > > Thank you for ur info.
> > > Let me brief my requirement, I need to boot my DSP processor 6455,
> > > using I2C slave boot.
> > > To do that, i'll be using an external master(another DSP or an FPGA
> > > or someother processor).
> > >
> > > As of now i have a C6455 DSK, i just wanna try this out.
> >
> > [snip]
> >
> > > BUT, when i transfter the data part from I2C i'm not getting the
> > > ACK, is it fine. Is that the way it goes??
> >
> > One thing I don't get -- who is the I2C master? How did you connect
> > this to the DSK 6455?
> >
> > I would think that you should verify basic functionality of your I2C
> > link first, before you try something complex like boot. Assuming that
> > you've implemented some type of "external board-to-board" link, did
> > you verify the
> > 6455 can read over this link? A second step would be to verify that
> > your external master can read the other I2C devices (slaves) on the DSK
> board.
> >
> > -Jeff
> >
> > > I got to know that and external master should send 6 bytes of data
> > > "04 00 06 00 00 00 01"
> > > (count doesn't include slave address) to slave DSP before sending
> > > anything
> > > else:
> > >
> > > 04 xx xx yy yy zz zz
> > >
> > > Where 04: is slave address for Himalaya DSP in slave I2C boot mode;
> > >
> > > Xx xx: length
> > >
> > > Yy yy: check sum
> > >
> > > Zz zz: boot option
> > >
> > > For example:
> > >
> > > 04 00 06 00 00 00 01 <-- order: SA, Len, Chksum, BO
> > >
> > > Length is 6
> > >
> > > Checksum is 0 for not using checksum
> > >
> > > Boot option is 1 for telling slave DSP that the next coming data
> > > will be boot table, other option can be used refer to bootloader
> > > user's guide
> > >
> > >
> > > Below is my I2C master tranfer sequence I2c master Transmission:
> > > START, 04 00 06 00 00 00 01, DATA(n bytes),STOP
> > >
> > > 1. Enable and start the transmission, 2. send the data 04 00 06 00
> > > 00 00 01 followed by n bytes of data.
> > > 3.Stop
> > >
> > > The n-bytes of data is nothing but the boot table.
> > > Should the boot table needs to be "blocked". Each block is 128 bytes
> > > (starts from length + checksum + data). Refer to Bootloader guide
> > > (spruec7) section
> > > 2.3.4.1
> > > Please do confirm the same.
> > >
> > > BUT, when i transfter the data part from I2C i'm not getting the
> > > ACK, is it fine. Is that the way it goes??
> > >
> > > Generating Boot Table
> > > In ti website, i've got some code piece "spraae9.zip", which has
> > > led_program, I2C programmer(for Master I2C boot from EEPROM) and
> > > utilities for 6455 DSK.
> > > The Led.out file which when programmed on to DSP(6455) using CCS
> > > will flash the LEDs on the 6455 DSK board.
> > >
> > > As per the document C645x bootloader guide(spruec6b.pdf), we have to
> > > convert our .out file to Boot table format hex. A TI utility hex2x
> > > will do this,
> > >
> > > in spruec6b.pdf section 3.2.2.3.1 Example - Creating a boot table
> > > for ascii Outut is given.
> > >
> > > Now, for my 6455, for a I2C Slave boot, wht are the option that i
> > > should give so as to get a proper boot table??
> > >
> > > Options like format :
> > >
> > > Output ASCII hex format
> > > Output Intel hex format
> > > Output Motorola S hex format
> > > Output TI-Tagged hex format
> > > Output Extended Tektronix hex format
> > > Output TI-TXT hex format
> > >
> > > Out of the above which format i should use??
> > >
> > > What are that -memwidth and -romwidth, is it 32 or 16 ???
> > >
> > > Please help me in the above issues, it would be great if i get to
> > > know things at the earliest.
> > >
> > > Regards,
> > > AJEESH KUMAR
> > >
> > > _____
> > >
> > > From: c... [mailto:c...] On Behalf Of
> > > Ajeesh Kumar
> > > Sent: Friday, October 03, 2008 11:06 AM
> > > To: 'Michael Dunn'; c...
> > > Subject: RE: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > >
> > > Hi,
> > > Thank you for your info :)
> > > Yeah, u r correct, In 6455 DSK the I2C is wired to an EEPROM and a
> > > Audio Codec. I shall isolate these two components and I do have a
> > > separate master board which has an I2C controller which will help me
> > > in I2C slave boot for DSP.
> > > I've few more quires,
> > > 1) When the DSP comes out of reset, it'll be in Slave I2C boot mode.
> > > At that time I'm planning for a master writes(from my master board).
> > > I've read, I2C devices have internal addressing as well as an I2C
> > > slave address - this internal address will follow the slave address.
> > > So I assume, Slave address is: 0x00 Internal address : ???
> > > What will be the Internal address in the DSP so that I could dump my
> > data???
> > > Should the internal address be 1 byte only???
> > >
> > > 2) Also I've read, There are 2 boot modes: Software boot mode and
> > > Hardware boot mode.(In 6455 data sheet) I2C is a software boot mode.
> > > Could you please differentiate between??
> > >
> > > 3) When will the on-chip(ROM) boot loader come into picture???
> > >
> > > Regards,
> > > AJEESH KUMAR
> > >
> > > -----Original Message-----
> > > From: Michael Dunn [mailto:mike.dunn.001@
> > >
> > > gmail.com]
> > > Sent: Wednesday, October 01, 2008 9:39 PM
> > > To: ajeesh@tataelxsi. co.in
> > > Cc: c6x@yahoogroups. com
> > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > >
> > > Ajeesh,
> > >
> > > On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar > > > co.in> wrote:
> > > >
> > > > Hi,
> > > > Thank you very much :)
> > > > I've gone through the "TMS320C645x Bootloader User's Guide"
> > > > 1) I got to know that for I2C slave boot for the DSP I've to send
> > > > data in Standard boot table format.
> > > > Am I write?
> > >
> > > I think that is what the doc says. I have not worked on an
> > > 'I2C slave boot' configuration.
> > >
> > > > 2) for I2C slave boot for the C6455, what are the setting I should
> > > > do except configuring BOOT[0:3] to 0110( slave I2C boot)
> > >
> > > That should be correct.
> > > > 3) I'm using a C6455 DSK, what all setting I need to do except
> > > > configuring It to slave I2C boot, do I have to do anything else??
> > > One thing comes to mind - you have not mentioned 'what you are
> > > trying to do' in general terms.
> > > I do not have a 6455 DSK, but I am pretty sure that the I2C is 'wired'
> > > to boot from a serial flash [I2C master boot] or control a codec. To
> > > operate the DSP in slave boot mode, you will neeed an I2C master to
> > control the bus.
> > > You will need to check the schematics carefully to see if there is a
> > > way that you can do it. I suspect that you could run into problems...
> > >
> > > mikedunn
> > >
> > > >
> > > >
> > > >
> > > >
> > > > Regards,
> > > > AJEESH KUMAR
> > > >
> > > > -----Original Message-----
> > > > From: Michael Dunn [mailto:mike.dunn.001@
> > > gmail.com]
> > > > Sent: Tuesday, September 30, 2008 8:42 PM
> > > > To: ajeesh@tataelxsi. co.in
> > > > Cc: c6x@yahoogroups. com
> > > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > > >
> > > > Ajeesh,
> > > >
> > > > On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar > > > > co.in>
> > > > wrote:
> > > >> Hi All :),
> > > >>
> > > >> I'm using a TMS320C6455 DSP processor, i've few quires
> > > >> 1) I read in the boot loader user's guide (spruec6b.pdf) in the
> > > >> section 2, bootloader features its given that the bootloader is
> > > >> permanently stored in the ROM of the DSP at 0x100000.
> > > >> Does this mean that an on-chip bootloader will be already present
> > > >> in the DSP. and We need not have to program this.
> > > >
> > > > Correct.
> > > >>
> > > >> 2) What is the I2C Device address for the Processor so that i
> > > >> could use this DSP for slave I2c boot.??
> > > >
> > > > 0. Check out 'TMS320C645x Bootloader User's Guide' at ti.com
> > > > for details.
> > > >>
> > > >> 3) Also an I2C slave boot is done for the DSP(C6455) processor
> > > >> using Standard boot table, do you people have any idea about this.
> > > >
> > > > Check out 'TMS320C645x Bootloader User's Guide' at ti.com
> > > > for
> > > details.
> > > >
> > > > FYI - if you google something like
> > > > +c6455 +dsp +i2c +bootloader +slave
> > > > you can find most odt the info that you need.
> > > >
> > > > mikedunn
> > > >>
> > > >> Please help me in this regard
> > > >>
> > > >> Thanks,
> > > >> Ajeesh Kumar
Reply by Ajeesh Kumar October 13, 20082008-10-13
Hi jeff,

>Ok that's really good then... your external link seems to be working.

>The next step would be to use CCS to single-step through the 6455
bootloader code, and see things "through its eyes". Does the bootloader
recognize that I2C >slave boot is happening? Does it jump to correct code
to configure its I2C port? Does the I2C configuration match the TI docs and
otherwise meet your ?
>expectation?

>There must be some basic reason why you don't see an ACK. If the I2C bus
is wired correctly, then the answer should be in the bootloader.

Yeah, my external link is working :), well that's a good idea. But, how can
I check the inbuilt 6455 bootloader?? Will I be able to?? Also, can I
parallely transfer the boot code via DSP I2C boot mode and watch whats
happening inside DSP registers through CCS?? Will it be possible??
Regards,
AJEESH KUMAR

-----Original Message-----
From: Jeff Brower [mailto:j...@signalogic.com]
Sent: Friday, October 10, 2008 6:44 PM
To: Ajeesh Kumar
Cc: c...
Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455

Ajeesh-

> >One thing I don't get -- who is the I2C master? How did you connect
> >this to the DSK 6455?
>
> >I wuld think that you should verify basic functionality of your I2C
> >link first, before you try something complex like boot. Assuming
> >that you've implemented sometype of "external board-to-board" link,
> >did you verify the 6455 can read over this link? A second step would
> >be to verify that your external master can read >the other I2C
> >devices (slaves) on the DSK board.
>
> AJ:
> Your assumption is correct, I've and external board-to-board I2C lin,
> I'm able to detect and read the EEPROM present on the DSK board.

Ok that's really good then... your external link seems to be working.

The next step would be to use CCS to single-step through the 6455 bootloader
code, and see things "through its eyes". Does the bootloader recognize that
I2C slave boot is happening? Does it jump to correct code to configure its
I2C port? Does the I2C configuration match the TI docs and otherwise meet
your expectation?

There must be some basic reason why you don't see an ACK. If the I2C bus is
wired correctly, then the answer should be in the bootloader.

-Jeff

> -----Original Message-----
> From: Jeff Brower [mailto:j...@signalogic.com]
> Sent: Wednesday, October 08, 2008 8:03 PM
> To: Asjeesh Kumar
> Cc: Michael Dunn; c...
> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>
> Ajeesh-
>
> > Thank you for ur info.
> > Let me brief my requirement, I need to boot my DSP processor 6455,
> > using I2C slave boot.
> > To do that, i'll be using an external master(another DSP or an FPGA
> > or someother processor).
> >
> > As of now i have a C6455 DSK, i just wanna try this out.
>
> [snip]
>
> > BUT, when i transfter the data part from I2C i'm not getting the
> > ACK, is it fine. Is that the way it goes??
>
> One thing I don't get -- who is the I2C master? How did you connect
> this to the DSK 6455?
>
> I would think that you should verify basic functionality of your I2C
> link first, before you try something complex like boot. Assuming that
> you've implemented some type of "external board-to-board" link, did
> you verify the
> 6455 can read over this link? A second step would be to verify that
> your external master can read the other I2C devices (slaves) on the DSK
board.
>
> -Jeff
>
> > I got to know that and external master should send 6 bytes of data
> > "04 00 06 00 00 00 01"
> > (count doesn't include slave address) to slave DSP before sending
> > anything
> > else:
> >
> > 04 xx xx yy yy zz zz
> >
> > Where 04: is slave address for Himalaya DSP in slave I2C boot mode;
> >
> > Xx xx: length
> >
> > Yy yy: check sum
> >
> > Zz zz: boot option
> >
> > For example:
> >
> > 04 00 06 00 00 00 01 <-- order: SA, Len, Chksum, BO
> >
> > Length is 6
> >
> > Checksum is 0 for not using checksum
> >
> > Boot option is 1 for telling slave DSP that the next coming data
> > will be boot table, other option can be used refer to bootloader
> > user's guide
> >
> >
> > Below is my I2C master tranfer sequence I2c master Transmission:
> > START, 04 00 06 00 00 00 01, DATA(n bytes),STOP
> >
> > 1. Enable and start the transmission, 2. send the data 04 00 06 00
> > 00 00 01 followed by n bytes of data.
> > 3.Stop
> >
> > The n-bytes of data is nothing but the boot table.
> > Should the boot table needs to be "blocked". Each block is 128 bytes
> > (starts from length + checksum + data). Refer to Bootloader guide
> > (spruec7) section
> > 2.3.4.1
> > Please do confirm the same.
> >
> > BUT, when i transfter the data part from I2C i'm not getting the
> > ACK, is it fine. Is that the way it goes??
> >
> > Generating Boot Table
> > In ti website, i've got some code piece "spraae9.zip", which has
> > led_program, I2C programmer(for Master I2C boot from EEPROM) and
> > utilities for 6455 DSK.
> > The Led.out file which when programmed on to DSP(6455) using CCS
> > will flash the LEDs on the 6455 DSK board.
> >
> > As per the document C645x bootloader guide(spruec6b.pdf), we have to
> > convert our .out file to Boot table format hex. A TI utility hex2x
> > will do this,
> >
> > in spruec6b.pdf section 3.2.2.3.1 Example - Creating a boot table
> > for ascii Outut is given.
> >
> > Now, for my 6455, for a I2C Slave boot, wht are the option that i
> > should give so as to get a proper boot table??
> >
> > Options like format :
> >
> > Output ASCII hex format
> > Output Intel hex format
> > Output Motorola S hex format
> > Output TI-Tagged hex format
> > Output Extended Tektronix hex format
> > Output TI-TXT hex format
> >
> > Out of the above which format i should use??
> >
> > What are that -memwidth and -romwidth, is it 32 or 16 ???
> >
> > Please help me in the above issues, it would be great if i get to
> > know things at the earliest.
> >
> > Regards,
> > AJEESH KUMAR
> >
> > _____
> >
> > From: c... [mailto:c...] On Behalf Of
> > Ajeesh Kumar
> > Sent: Friday, October 03, 2008 11:06 AM
> > To: 'Michael Dunn'; c...
> > Subject: RE: [c6x] FSBBP: I2C Slave boot for DSP C6455
> >
> > Hi,
> > Thank you for your info :)
> > Yeah, u r correct, In 6455 DSK the I2C is wired to an EEPROM and a
> > Audio Codec. I shall isolate these two components and I do have a
> > separate master board which has an I2C controller which will help me
> > in I2C slave boot for DSP.
> > I've few more quires,
> > 1) When the DSP comes out of reset, it'll be in Slave I2C boot mode.
> > At that time I'm planning for a master writes(from my master board).
> > I've read, I2C devices have internal addressing as well as an I2C
> > slave address - this internal address will follow the slave address.
> > So I assume, Slave address is: 0x00 Internal address : ???
> > What will be the Internal address in the DSP so that I could dump my
> data???
> > Should the internal address be 1 byte only???
> >
> > 2) Also I've read, There are 2 boot modes: Software boot mode and
> > Hardware boot mode.(In 6455 data sheet) I2C is a software boot mode.
> > Could you please differentiate between??
> >
> > 3) When will the on-chip(ROM) boot loader come into picture???
> >
> > Regards,
> > AJEESH KUMAR
> >
> > -----Original Message-----
> > From: Michael Dunn [mailto:mike.dunn.001@
> >
> > gmail.com]
> > Sent: Wednesday, October 01, 2008 9:39 PM
> > To: ajeesh@tataelxsi. co.in
> > Cc: c6x@yahoogroups. com
> > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> >
> > Ajeesh,
> >
> > On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar > > co.in> wrote:
> > >
> > > Hi,
> > > Thank you very much :)
> > > I've gone through the "TMS320C645x Bootloader User's Guide"
> > > 1) I got to know that for I2C slave boot for the DSP I've to send
> > > data in Standard boot table format.
> > > Am I write?
> >
> > I think that is what the doc says. I have not worked on an
> > 'I2C slave boot' configuration.
> >
> > > 2) for I2C slave boot for the C6455, what are the setting I should
> > > do except configuring BOOT[0:3] to 0110( slave I2C boot)
> >
> > That should be correct.
> > > 3) I'm using a C6455 DSK, what all setting I need to do except
> > > configuring It to slave I2C boot, do I have to do anything else??
> > One thing comes to mind - you have not mentioned 'what you are
> > trying to do' in general terms.
> > I do not have a 6455 DSK, but I am pretty sure that the I2C is 'wired'
> > to boot from a serial flash [I2C master boot] or control a codec. To
> > operate the DSP in slave boot mode, you will neeed an I2C master to
> control the bus.
> > You will need to check the schematics carefully to see if there is a
> > way that you can do it. I suspect that you could run into problems...
> >
> > mikedunn
> >
> > >
> > >
> > >
> > >
> > > Regards,
> > > AJEESH KUMAR
> > >
> > > -----Original Message-----
> > > From: Michael Dunn [mailto:mike.dunn.001@
> > gmail.com]
> > > Sent: Tuesday, September 30, 2008 8:42 PM
> > > To: ajeesh@tataelxsi. co.in
> > > Cc: c6x@yahoogroups. com
> > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > >
> > > Ajeesh,
> > >
> > > On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar > > > co.in>
> > > wrote:
> > >> Hi All :),
> > >>
> > >> I'm using a TMS320C6455 DSP processor, i've few quires
> > >> 1) I read in the boot loader user's guide (spruec6b.pdf) in the
> > >> section 2, bootloader features its given that the bootloader is
> > >> permanently stored in the ROM of the DSP at 0x100000.
> > >> Does this mean that an on-chip bootloader will be already present
> > >> in the DSP. and We need not have to program this.
> > >
> > > Correct.
> > >>
> > >> 2) What is the I2C Device address for the Processor so that i
> > >> could use this DSP for slave I2c boot.??
> > >
> > > 0. Check out 'TMS320C645x Bootloader User's Guide' at ti.com
> > > for details.
> > >>
> > >> 3) Also an I2C slave boot is done for the DSP(C6455) processor
> > >> using Standard boot table, do you people have any idea about this.
> > >
> > > Check out 'TMS320C645x Bootloader User's Guide' at ti.com
> > > for
> > details.
> > >
> > > FYI - if you google something like
> > > +c6455 +dsp +i2c +bootloader +slave
> > > you can find most odt the info that you need.
> > >
> > > mikedunn
> > >>
> > >> Please help me in this regard
> > >>
> > >> Thanks,
> > >> Ajeesh Kumar
Reply by Ajeesh Kumar October 13, 20082008-10-13
Hi mike,

Yeah, I'm able to see the acks...

Regards,
AJEESH KUMAR

-----Original Message-----
From: Michael Dunn [mailto:m...@gmail.com]
Sent: Friday, October 10, 2008 8:22 PM
To: Jeff Brower
Cc: Ajeesh Kumar; c...
Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455

Ajeesh,

On Fri, Oct 10, 2008 at 8:14 AM, Jeff Brower wrote:
> Ajeesh-
>
>> >One thing I don't get -- who is the I2C master? How did you connect
>> >this to the DSK 6455?
>>
>> >I wuld think that you should verify basic functionality of your I2C
>> >link first, before you try something complex like boot. Assuming
>> >that you've implemented sometype of "external board-to-board" link,
>> >did you verify the 6455 can read over this link? A second step would
>> >be to verify that your external master can read >the other I2C
>> >devices (slaves) on the DSK board.
>>
>> AJ:
>> Your assumption is correct, I've and external board-to-board I2C lin,
>> I'm able to detect and read the EEPROM present on the DSK board.


Does this mean that you do see ACKs when you read the EEPROM??

mikedunn
>
> Ok that's really good then... your external link seems to be working.
>
> The next step would be to use CCS to single-step through the 6455
> bootloader code, and see things "through its eyes". Does the
> bootloader recognize that I2C slave boot is happening? Does it jump to
> correct code to configure its I2C port? Does the I2C configuration
> match the TI docs and otherwise meet your expectation?
>
> There must be some basic reason why you don't see an ACK. If the I2C
> bus is wired correctly, then the answer should be in the bootloader.
>
> -Jeff
>
>> -----Original Message-----
>> From: Jeff Brower [mailto:j...@signalogic.com]
>> Sent: Wednesday, October 08, 2008 8:03 PM
>> To: Asjeesh Kumar
>> Cc: Michael Dunn; c...
>> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>>
>> Ajeesh-
>>
>> > Thank you for ur info.
>> > Let me brief my requirement, I need to boot my DSP processor 6455,
>> > using I2C slave boot.
>> > To do that, i'll be using an external master(another DSP or an FPGA
>> > or someother processor).
>> >
>> > As of now i have a C6455 DSK, i just wanna try this out.
>>
>> [snip]
>>
>> > BUT, when i transfter the data part from I2C i'm not getting the
>> > ACK, is it fine. Is that the way it goes??
>>
>> One thing I don't get -- who is the I2C master? How did you connect
>> this to the DSK 6455?
>>
>> I would think that you should verify basic functionality of your I2C
>> link first, before you try something complex like boot. Assuming that
>> you've implemented some type of "external board-to-board" link, did
>> you verify the
>> 6455 can read over this link? A second step would be to verify that
>> your external master can read the other I2C devices (slaves) on the DSK
board.
>>
>> -Jeff
>>
>> > I got to know that and external master should send 6 bytes of data
>> > "04 00 06 00 00 00 01"
>> > (count doesn't include slave address) to slave DSP before sending
>> > anything
>> > else:
>> >
>> > 04 xx xx yy yy zz zz
>> >
>> > Where 04: is slave address for Himalaya DSP in slave I2C boot mode;
>> >
>> > Xx xx: length
>> >
>> > Yy yy: check sum
>> >
>> > Zz zz: boot option
>> >
>> > For example:
>> >
>> > 04 00 06 00 00 00 01 <-- order: SA, Len, Chksum, BO
>> >
>> > Length is 6
>> >
>> > Checksum is 0 for not using checksum
>> >
>> > Boot option is 1 for telling slave DSP that the next coming data
>> > will be boot table, other option can be used refer to bootloader
>> > user's guide
>> >
>> >
>> > Below is my I2C master tranfer sequence I2c master Transmission:
>> > START, 04 00 06 00 00 00 01, DATA(n bytes),STOP
>> >
>> > 1. Enable and start the transmission, 2. send the data 04 00 06 00
>> > 00 00 01 followed by n bytes of data.
>> > 3.Stop
>> >
>> > The n-bytes of data is nothing but the boot table.
>> > Should the boot table needs to be "blocked". Each block is 128
>> > bytes (starts from length + checksum + data). Refer to Bootloader
>> > guide
>> > (spruec7) section
>> > 2.3.4.1
>> > Please do confirm the same.
>> >
>> > BUT, when i transfter the data part from I2C i'm not getting the
>> > ACK, is it fine. Is that the way it goes??
>> >
>> > Generating Boot Table
>> > In ti website, i've got some code piece "spraae9.zip", which has
>> > led_program, I2C programmer(for Master I2C boot from EEPROM) and
>> > utilities for 6455 DSK.
>> > The Led.out file which when programmed on to DSP(6455) using CCS
>> > will flash the LEDs on the 6455 DSK board.
>> >
>> > As per the document C645x bootloader guide(spruec6b.pdf), we have
>> > to convert our .out file to Boot table format hex. A TI utility
>> > hex2x will do this,
>> >
>> > in spruec6b.pdf section 3.2.2.3.1 Example - Creating a boot table
>> > for ascii Outut is given.
>> >
>> > Now, for my 6455, for a I2C Slave boot, wht are the option that i
>> > should give so as to get a proper boot table??
>> >
>> > Options like format :
>> >
>> > Output ASCII hex format
>> > Output Intel hex format
>> > Output Motorola S hex format
>> > Output TI-Tagged hex format
>> > Output Extended Tektronix hex format Output TI-TXT hex format
>> >
>> > Out of the above which format i should use??
>> >
>> > What are that -memwidth and -romwidth, is it 32 or 16 ???
>> >
>> > Please help me in the above issues, it would be great if i get to
>> > know things at the earliest.
>> >
>> > Regards,
>> > AJEESH KUMAR
>> >
>> > _____
>> >
>> > From: c... [mailto:c...] On Behalf Of
>> > Ajeesh Kumar
>> > Sent: Friday, October 03, 2008 11:06 AM
>> > To: 'Michael Dunn'; c...
>> > Subject: RE: [c6x] FSBBP: I2C Slave boot for DSP C6455
>> >
>> > Hi,
>> > Thank you for your info :)
>> > Yeah, u r correct, In 6455 DSK the I2C is wired to an EEPROM and a
>> > Audio Codec. I shall isolate these two components and I do have a
>> > separate master board which has an I2C controller which will help
>> > me in I2C slave boot for DSP.
>> > I've few more quires,
>> > 1) When the DSP comes out of reset, it'll be in Slave I2C boot mode.
>> > At that time I'm planning for a master writes(from my master board).
>> > I've read, I2C devices have internal addressing as well as an I2C
>> > slave address - this internal address will follow the slave address.
>> > So I assume, Slave address is: 0x00 Internal address : ???
>> > What will be the Internal address in the DSP so that I could dump
>> > my
>> data???
>> > Should the internal address be 1 byte only???
>> >
>> > 2) Also I've read, There are 2 boot modes: Software boot mode and
>> > Hardware boot mode.(In 6455 data sheet) I2C is a software boot mode.
>> > Could you please differentiate between??
>> >
>> > 3) When will the on-chip(ROM) boot loader come into picture???
>> >
>> > Regards,
>> > AJEESH KUMAR
>> >
>> > -----Original Message-----
>> > From: Michael Dunn [mailto:mike.dunn.001@
>> >
>> > gmail.com]
>> > Sent: Wednesday, October 01, 2008 9:39 PM
>> > To: ajeesh@tataelxsi. co.in
>> > Cc: c6x@yahoogroups. com
>> > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>> >
>> > Ajeesh,
>> >
>> > On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar >> > co.in> wrote:
>> > >
>> > > Hi,
>> > > Thank you very much :)
>> > > I've gone through the "TMS320C645x Bootloader User's Guide"
>> > > 1) I got to know that for I2C slave boot for the DSP I've to send
>> > > data in Standard boot table format.
>> > > Am I write?
>> >
>> > I think that is what the doc says. I have not worked on an
>> > 'I2C slave boot' configuration.
>> >
>> > > 2) for I2C slave boot for the C6455, what are the setting I
>> > > should do except configuring BOOT[0:3] to 0110( slave I2C boot)
>> >
>> > That should be correct.
>> > > 3) I'm using a C6455 DSK, what all setting I need to do except
>> > > configuring It to slave I2C boot, do I have to do anything else??
>> > One thing comes to mind - you have not mentioned 'what you
>> > are trying to do' in general terms.
>> > I do not have a 6455 DSK, but I am pretty sure that the I2C is 'wired'
>> > to boot from a serial flash [I2C master boot] or control a codec.
>> > To operate the DSP in slave boot mode, you will neeed an I2C master
>> > to
>> control the bus.
>> > You will need to check the schematics carefully to see if there is
>> > a way that you can do it. I suspect that you could run into problems...
>> >
>> > mikedunn
>> >
>> > >
>> > >
>> > >
>> > >
>> > > Regards,
>> > > AJEESH KUMAR
>> > >
>> > > -----Original Message-----
>> > > From: Michael Dunn [mailto:mike.dunn.001@
>> > gmail.com]
>> > > Sent: Tuesday, September 30, 2008 8:42 PM
>> > > To: ajeesh@tataelxsi. co.in
>> > > Cc: c6x@yahoogroups. com
>> > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>> > >
>> > > Ajeesh,
>> > >
>> > > On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar >> > > co.in>
>> > > wrote:
>> > >> Hi All :),
>> > >>
>> > >> I'm using a TMS320C6455 DSP processor, i've few quires
>> > >> 1) I read in the boot loader user's guide (spruec6b.pdf) in the
>> > >> section 2, bootloader features its given that the bootloader is
>> > >> permanently stored in the ROM of the DSP at 0x100000.
>> > >> Does this mean that an on-chip bootloader will be already
>> > >> present in the DSP. and We need not have to program this.
>> > >
>> > > Correct.
>> > >>
>> > >> 2) What is the I2C Device address for the Processor so that i
>> > >> could use this DSP for slave I2c boot.??
>> > >
>> > > 0. Check out 'TMS320C645x Bootloader User's Guide' at
>> > > ti.com for details.
>> > >>
>> > >> 3) Also an I2C slave boot is done for the DSP(C6455) processor
>> > >> using Standard boot table, do you people have any idea about this.
>> > >
>> > > Check out 'TMS320C645x Bootloader User's Guide' at ti.com
>> > > for
>> > details.
>> > >
>> > > FYI - if you google something like
>> > > +c6455 +dsp +i2c +bootloader +slave
>> > > you can find most odt the info that you need.
>> > >
>> > > mikedunn
>> > >>
>> > >> Please help me in this regard
>> > >>
>> > >> Thanks,
>> > >> Ajeesh Kumar
>

--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
Reply by Richard Williams October 10, 20082008-10-10
Ajeesh,

here is my understanding:
the built in I2C boot loader is expecting to communicate with a serial I2C EEPROM.
A serial I2C EEPROM does not expect a 'ack', only a 'read next' command.

so the built in I2C boot loader will not send an 'ack'.

R. Williams
---------- Original Message -----------
From: Jeff Brower
To: Ajeesh Kumar
Cc: c...
Sent: Fri, 10 Oct 2008 08:14:01 -0500
Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455

> Ajeesh-
>
> > >One thing I don't get -- who is the I2C master? How did you connect this
> > >to the DSK 6455?
> >
> > >I wuld think that you should verify basic functionality of your I2C link
> > >first, before you try something complex like boot. Assuming that you've
> > >implemented
> > >sometype of "external board-to-board" link, did you verify the 6455 can
> > >read over this link? A second step would be to verify that your external
> > >master can read >the other I2C devices (slaves) on the DSK board.
> >
> > AJ:
> > Your assumption is correct, I've and external board-to-board I2C lin, I'm
> > able to detect and read the EEPROM present on the DSK board.
>
> Ok that's really good then... your external link seems to be working.
>
> The next step would be to use CCS to single-step through the 6455
> bootloader code, and see things "through its eyes". Does the
> bootloader recognize that I2C slave boot is happening? Does it jump
> to correct code to configure its I2C port? Does the I2C configuration
> match the TI docs and otherwise meet your expectation?
>
> There must be some basic reason why you don't see an ACK. If the I2C
> bus is wired correctly, then the answer should be in the bootloader.
>
> -Jeff
>
> > -----Original Message-----
> > From: Jeff Brower [mailto:j...@signalogic.com]
> > Sent: Wednesday, October 08, 2008 8:03 PM
> > To: Asjeesh Kumar
> > Cc: Michael Dunn; c...
> > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> >
> > Ajeesh-
> >
> > > Thank you for ur info.
> > > Let me brief my requirement, I need to boot my DSP processor 6455,
> > > using I2C slave boot.
> > > To do that, i'll be using an external master(another DSP or an FPGA or
> > > someother processor).
> > >
> > > As of now i have a C6455 DSK, i just wanna try this out.
> >
> > [snip]
> >
> > > BUT, when i transfter the data part from I2C i'm not getting the ACK,
> > > is it fine. Is that the way it goes??
> >
> > One thing I don't get -- who is the I2C master? How did you connect this to
> > the DSK 6455?
> >
> > I would think that you should verify basic functionality of your I2C link
> > first, before you try something complex like boot. Assuming that you've
> > implemented some type of "external board-to-board" link, did you verify the
> > 6455 can read over this link? A second step would be to verify that your
> > external master can read the other I2C devices (slaves) on the DSK board.
> >
> > -Jeff
> >
> > > I got to know that and external master should send 6 bytes of data "04
> > > 00 06 00 00 00 01"
> > > (count doesn't include slave address) to slave DSP before sending
> > > anything
> > > else:
> > >
> > > 04 xx xx yy yy zz zz
> > >
> > > Where 04: is slave address for Himalaya DSP in slave I2C boot mode;
> > >
> > > Xx xx: length
> > >
> > > Yy yy: check sum
> > >
> > > Zz zz: boot option
> > >
> > > For example:
> > >
> > > 04 00 06 00 00 00 01 <-- order: SA, Len, Chksum, BO
> > >
> > > Length is 6
> > >
> > > Checksum is 0 for not using checksum
> > >
> > > Boot option is 1 for telling slave DSP that the next coming data will
> > > be boot table, other option can be used refer to bootloader user's
> > > guide
> > >
> > >
> > > Below is my I2C master tranfer sequence I2c master Transmission:
> > > START, 04 00 06 00 00 00 01, DATA(n bytes),STOP
> > >
> > > 1. Enable and start the transmission,
> > > 2. send the data 04 00 06 00 00 00 01 followed by n bytes of data.
> > > 3.Stop
> > >
> > > The n-bytes of data is nothing but the boot table.
> > > Should the boot table needs to be "blocked". Each block is 128 bytes
> > > (starts from length + checksum + data). Refer to Bootloader guide
> > > (spruec7) section
> > > 2.3.4.1
> > > Please do confirm the same.
> > >
> > > BUT, when i transfter the data part from I2C i'm not getting the ACK,
> > > is it fine. Is that the way it goes??
> > >
> > > Generating Boot Table
> > > In ti website, i've got some code piece "spraae9.zip", which has
> > > led_program, I2C programmer(for Master I2C boot from EEPROM) and
> > > utilities for 6455 DSK.
> > > The Led.out file which when programmed on to DSP(6455) using CCS will
> > > flash the LEDs on the 6455 DSK board.
> > >
> > > As per the document C645x bootloader guide(spruec6b.pdf), we have to
> > > convert our .out file to Boot table format hex. A TI utility hex2x
> > > will do this,
> > >
> > > in spruec6b.pdf section 3.2.2.3.1 Example - Creating a boot table for
> > > ascii Outut is given.
> > >
> > > Now, for my 6455, for a I2C Slave boot, wht are the option that i
> > > should give so as to get a proper boot table??
> > >
> > > Options like format :
> > >
> > > Output ASCII hex format
> > > Output Intel hex format
> > > Output Motorola S hex format
> > > Output TI-Tagged hex format
> > > Output Extended Tektronix hex format
> > > Output TI-TXT hex format
> > >
> > > Out of the above which format i should use??
> > >
> > > What are that -memwidth and -romwidth, is it 32 or 16 ???
> > >
> > > Please help me in the above issues, it would be great if i get to know
> > > things at the earliest.
> > >
> > > Regards,
> > > AJEESH KUMAR
> > >
> > > _____
> > >
> > > From: c... [mailto:c...] On Behalf Of
> > > Ajeesh Kumar
> > > Sent: Friday, October 03, 2008 11:06 AM
> > > To: 'Michael Dunn'; c...
> > > Subject: RE: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > >
> > > Hi,
> > > Thank you for your info :)
> > > Yeah, u r correct, In 6455 DSK the I2C is wired to an EEPROM and a
> > > Audio Codec. I shall isolate these two components and I do have a
> > > separate master board which has an I2C controller which will help me
> > > in I2C slave boot for DSP.
> > > I've few more quires,
> > > 1) When the DSP comes out of reset, it'll be in Slave I2C boot mode.
> > > At that time I'm planning for a master writes(from my master board).
> > > I've read, I2C devices have internal addressing as well as an I2C
> > > slave address - this internal address will follow the slave address.
> > > So I assume, Slave address is: 0x00 Internal address : ???
> > > What will be the Internal address in the DSP so that I could dump my
> > data???
> > > Should the internal address be 1 byte only???
> > >
> > > 2) Also I've read, There are 2 boot modes: Software boot mode and
> > > Hardware boot mode.(In 6455 data sheet) I2C is a software boot mode.
> > > Could you please differentiate between??
> > >
> > > 3) When will the on-chip(ROM) boot loader come into picture???
> > >
> > > Regards,
> > > AJEESH KUMAR
> > >
> > > -----Original Message-----
> > > From: Michael Dunn [mailto:mike.dunn.001@
> > >
> > > gmail.com]
> > > Sent: Wednesday, October 01, 2008 9:39 PM
> > > To: ajeesh@tataelxsi. co.in
> > > Cc: c6x@yahoogroups. com
> > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > >
> > > Ajeesh,
> > >
> > > On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar > > > co.in> wrote:
> > > >
> > > > Hi,
> > > > Thank you very much :)
> > > > I've gone through the "TMS320C645x Bootloader User's Guide"
> > > > 1) I got to know that for I2C slave boot for the DSP I've to send
> > > > data in Standard boot table format.
> > > > Am I write?
> > >
> > > I think that is what the doc says. I have not worked on an 'I2C
> > > slave boot' configuration.
> > >
> > > > 2) for I2C slave boot for the C6455, what are the setting I should
> > > > do except configuring BOOT[0:3] to 0110( slave I2C boot)
> > >
> > > That should be correct.
> > > > 3) I'm using a C6455 DSK, what all setting I need to do except
> > > > configuring It to slave I2C boot, do I have to do anything else??
> > > One thing comes to mind - you have not mentioned 'what you are
> > > trying to do' in general terms.
> > > I do not have a 6455 DSK, but I am pretty sure that the I2C is 'wired'
> > > to boot from a serial flash [I2C master boot] or control a codec. To
> > > operate the DSP in slave boot mode, you will neeed an I2C master to
> > control the bus.
> > > You will need to check the schematics carefully to see if there is a
> > > way that you can do it. I suspect that you could run into problems...
> > >
> > > mikedunn
> > >
> > > >
> > > >
> > > >
> > > >
> > > > Regards,
> > > > AJEESH KUMAR
> > > >
> > > > -----Original Message-----
> > > > From: Michael Dunn [mailto:mike.dunn.001@
> > > gmail.com]
> > > > Sent: Tuesday, September 30, 2008 8:42 PM
> > > > To: ajeesh@tataelxsi. co.in
> > > > Cc: c6x@yahoogroups. com
> > > > Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
> > > >
> > > > Ajeesh,
> > > >
> > > > On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar > > > > co.in>
> > > > wrote:
> > > >> Hi All :),
> > > >>
> > > >> I'm using a TMS320C6455 DSP processor, i've few quires
> > > >> 1) I read in the boot loader user's guide (spruec6b.pdf) in the
> > > >> section 2, bootloader features its given that the bootloader is
> > > >> permanently stored in the ROM of the DSP at 0x100000.
> > > >> Does this mean that an on-chip bootloader will be already present
> > > >> in the DSP. and We need not have to program this.
> > > >
> > > > Correct.
> > > >>
> > > >> 2) What is the I2C Device address for the Processor so that i could
> > > >> use this DSP for slave I2c boot.??
> > > >
> > > > 0. Check out 'TMS320C645x Bootloader User's Guide' at ti.com
> > > > for details.
> > > >>
> > > >> 3) Also an I2C slave boot is done for the DSP(C6455) processor
> > > >> using Standard boot table, do you people have any idea about this.
> > > >
> > > > Check out 'TMS320C645x Bootloader User's Guide' at ti.com for
> > > details.
> > > >
> > > > FYI - if you google something like
> > > > +c6455 +dsp +i2c +bootloader +slave
> > > > you can find most odt the info that you need.
> > > >
> > > > mikedunn
> > > >>
> > > >> Please help me in this regard
> > > >>
> > > >> Thanks,
> > > >> Ajeesh Kumar
------- End of Original Message -------