DSPRelated.com
Forums

FSBBP: I2C Slave boot for DSP C6455

Started by Ajeesh Kumar September 30, 2008
Hi Jeff,
>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.

Regards,
AJEESH KUMAR

-----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
The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments contained in it.
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
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 -------
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
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 -------
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
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
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
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 -------
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