DSPRelated.com
Forums

FSBBP: I2C Slave boot for DSP C6455

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

2) What is the I2C Device address for the Processor so that i could use this
DSP for slave I2c boot.??

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.

Please help me in this regard

Thanks,
Ajeesh Kumar
Ajeesh,

On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar 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,
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?
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)
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??

Regards,
AJEESH KUMAR

-----Original Message-----
From: Michael Dunn [mailto:m...@gmail.com]
Sent: Tuesday, September 30, 2008 8:42 PM
To: a...@tataelxsi.co.in
Cc: c...
Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455

Ajeesh,

On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar
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,

On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar 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:m...@gmail.com]
> Sent: Tuesday, September 30, 2008 8:42 PM
> To: a...@tataelxsi.co.in
> Cc: c...
> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>
> Ajeesh,
>
> On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar
> 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
> 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.
>

--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
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:m...@gmail.com]
Sent: Wednesday, October 01, 2008 9:39 PM
To: a...@tataelxsi.co.in
Cc: c...
Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455

Ajeesh,

On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar 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:m...@gmail.com]
> Sent: Tuesday, September 30, 2008 8:42 PM
> To: a...@tataelxsi.co.in
> Cc: c...
> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>
> Ajeesh,
>
> On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar
>
> 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
> 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.
>

--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
Hi All,

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.

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
> 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.
>

--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
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?

-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,

On Wed, Oct 8, 2008 at 12:25 AM, Ajeesh Kumar wrote:
> Hi All,
>
> 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.
>
> 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??

I would speculate that is could be correct, based on the info in
2.3.5. [I have never used 'slave boot']
"The procedure is the same as Section 2.3.4, except for how the DSP
receives data. In this case, rather
than performing a master address write followed by a master data read,
the DSP configures its I2C
interface for slave reads, its device address to the default slave
address (0x0), and polls for receiver
ready, reading one byte at a time."
>
> 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.
From your reference:
"3.2.2.3.1 Example - Creating a Boot Table for ascii Output
To create a boot table for the application my_app.out with the
following conditions:
Little endian compilation
Desired output is ascii format in a file called my_app.hex
Use the following options on the hex conversion utility command line
or command file:
-boot ; option to create a boot table
-a ; ASCII format
-e _c_int00 ; Standard entry point for C library
-order L ; Little endian format
-memwidth32 ; memory width
-romwidth32 ; rom width
-o my_app.hex ; specify the output filename
my_app.out ; specify the input file"

I would use exactly those options.

mikedunn
>
> 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:m...@gmail.com]
> Sent: Wednesday, October 01, 2008 9:39 PM
> To: a...@tataelxsi.co.in
> Cc: c...
> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>
> Ajeesh,
>
> On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar 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:m...@gmail.com]
>> Sent: Tuesday, September 30, 2008 8:42 PM
>> To: a...@tataelxsi.co.in
>> Cc: c...
>> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>>
>> Ajeesh,
>>
>> On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar
>>
>> 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
>> 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.
>> --
> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>
>
> 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.

--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
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,

A couple of answers below.

On Fri, Oct 3, 2008 at 12:36 AM, Ajeesh Kumar wrote:
>
> 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??

Software boot:
When the DSP is released from reset, if the hardware decodes the state
of the configuration pins as a 'software boot', the DSP begins
executing code in internal ROM. That code is the boot loader. It
reads some I/O pins to determine the desired boot mode. It then runs
a routine to acquire data from the boot 'port'. After acquiring data,
it executes the 'booted code'.
Hardware boot:
When the DSP is released from reset, if the hardware decodes the state
of the configuration pins as a 'hardware boot', the DSP core is held
in reset. The hardware decode selects the decoded 'boot port' and a
hardware state machine begins the boot process - no DSP instructions
are executed during the boot process. If the 'boot port' is the EMIF,
a fixed number of bytes are read [usually 1k for the c6x] via DMA into
internal memory and the internal reset is released. This causes the
DSP to begin executing at the reset vector. When the 'boot mode' is
host boot, the DSP behaves like a slave under the control of an
external host. The host just writes address and data to the DSP and
data is DMA'd one word at a time to the last selected or incremented
address. Since the length is unknown, the host issues a command
[usually DSPINT] that releases the DSP core from reset and execution
begins at the reset vector.
>
> 3) When will the on-chip(ROM) boot loader come into picture???
see above.

mikedunn
>
> Regards,
> AJEESH KUMAR
>
> -----Original Message-----
> From: Michael Dunn [mailto:m...@gmail.com]
> Sent: Wednesday, October 01, 2008 9:39 PM
> To: a...@tataelxsi.co.in
> Cc: c...
> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>
> Ajeesh,
>
> On Wed, Oct 1, 2008 at 5:54 AM, Ajeesh Kumar 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:m...@gmail.com]
>> Sent: Tuesday, September 30, 2008 8:42 PM
>> To: a...@tataelxsi.co.in
>> Cc: c...
>> Subject: Re: [c6x] FSBBP: I2C Slave boot for DSP C6455
>>
>> Ajeesh,
>>
>> On Mon, Sep 29, 2008 at 10:36 PM, Ajeesh Kumar
>>
>> 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
>> 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.
>> --
> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
> 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.
>

--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php