DSPRelated.com
Forums

DSP/BIOS application flash bootload question

Started by "Yang, Chunhua" November 27, 2008
Hi all,

I am using TI C6424 EVM board. I try to boot the board using EMIFA ROM Fast
mode, with AIS (which is the default board setting mode). I wrote a non-DSP/BIOS
LED blink program and flash burned. It works well.

Then I wrote a DSP/BIOS based application to test. Everything else keeps the
same. It doesn't work.
I then check to find no sections have been copied from flash to RAM or SDRAM.

Could someone please tell me why in the DSP/BIOS based application the built-in
bootloader doesnt copy
any sections into RAM or SDRAM? It is in AIS format.

Thanks a lot in advance!

Yang
Hi all,

As I tested, I found .const section with a section length 0x16B1 bytes, which
was copied to IRAM successfully by AIS bootloader. However, afterward sections
stoped to be copied to IRAM. As you know, AIS assumes data to be 32 bits in
width. 0x16B1 is not a integer times of 32 bits (4 bytes).

Could anyone please suggest a solution for this case?

Best Regards,
Yang

________________________________

From: Naga Munaiah E [mailto:n...@icommtele.com]
Sent: Sat 29/11/2008 04:15
To: Yang, Chunhua
Subject: RE: [c6x] DSP/BIOS application flash bootload question

Hi ,

Please check the code with BOIS application with out Emulator cable,

Then see the output,if you are trying to execute the code with Emulator cable ,
It wont copy from flash to RAM or SDRAM.

And please tell me how u r testing the code.

With Best Regards

Nagamunaiah

________________________________

From: c... [mailto:c...] On Behalf Of Yang,
Chunhua
Sent: Thursday, November 27, 2008 8:43 PM
To: c...
Subject: [c6x] DSP/BIOS application flash bootload question

Hi all,

I am using TI C6424 EVM board. I try to boot the board using EMIFA ROM Fast
mode, with AIS (which is the default board setting mode). I wrote a non-DSP/BIOS
LED blink program and flash burned. It works well.

Then I wrote a DSP/BIOS based application to test. Everything else keeps the
same. It doesn't work.
I then check to find no sections have been copied from flash to RAM or SDRAM.

Could someone please tell me why in the DSP/BIOS based application the built-in
bootloader doesnt copy
any sections into RAM or SDRAM? It is in AIS format.

Thanks a lot in advance!

Yang
Yang,

On Mon, Dec 1, 2008 at 9:30 AM, Yang, Chunhua wrote:
> Hi all,
>
> As I tested, I found .const section with a section length 0x16B1 bytes,
> which
> was copied to IRAM successfully by AIS bootloader. However, afterward
> sections
> stoped to be copied to IRAM. As you know, AIS assumes data to be 32 bits in
> width. 0x16B1 is not a integer times of 32 bits (4 bytes).


You can use an 'align 32' directive in the sections portion of the
linker command file [you may also want to do a zero or ones fill.

mikedunn

>
> Could anyone please suggest a solution for this case?
>
> Best Regards,
> Yang
>
> ________________________________
>
> From: Naga Munaiah E [mailto:n...@icommtele.com]
> Sent: Sat 29/11/2008 04:15
> To: Yang, Chunhua
> Subject: RE: [c6x] DSP/BIOS application flash bootload question
>
> Hi ,
>
> Please check the code with BOIS application with out Emulator cable,
>
> Then see the output,if you are trying to execute the code with Emulator
> cable ,
> It wont copy from flash to RAM or SDRAM.
>
> And please tell me how u r testing the code.
>
> With Best Regards
>
> Nagamunaiah
>
> ________________________________
>
> From: c... [mailto:c...] On Behalf Of Yang,
> Chunhua
> Sent: Thursday, November 27, 2008 8:43 PM
> To: c...
> Subject: [c6x] DSP/BIOS application flash bootload question
>
> Hi all,
>
> I am using TI C6424 EVM board. I try to boot the board using EMIFA ROM Fast
> mode, with AIS (which is the default board setting mode). I wrote a
> non-DSP/BIOS
> LED blink program and flash burned. It works well.
>
> Then I wrote a DSP/BIOS based application to test. Everything else keeps the
> same. It doesn't work.
> I then check to find no sections have been copied from flash to RAM or
> SDRAM.
>
> Could someone please tell me why in the DSP/BIOS based application the
> built-in
> bootloader doesnt copy
> any sections into RAM or SDRAM? It is in AIS format.
>
> Thanks a lot in advance!
>
> Yang

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

> As I tested, I found .const section with a section length 0x16B1 bytes, which
> was copied to IRAM successfully by AIS bootloader. However, afterward sections
> stoped to be copied to IRAM. As you know, AIS assumes data to be 32 bits in
> width. 0x16B1 is not a integer times of 32 bits (4 bytes).
>
> Could anyone please suggest a solution for this case?

Are you sure it's bootloader code that got stuck? Or did the bootloader process
complete and application code start to run?

If it's truly a bootloader issue, then you can use CCS to breakpoint and single-step
the bootloader code, and find out why it's unhappy (C6424 bootloader source should be
published by TI). Maybe the bootloader stopped copying sections due to some type of
error, confusion in the AIS script, etc. I doubt that a section length of 0x16b1 is
an issue, typical TI tools behavior is to pad section lengths to next multiple of 4
or 8, depending on whether it's a data or code section.

If the boot process completed, then the issue could be something else. One quick
guess -- make sure no DSP/BIOS data sections are located in EMIFA ROM. In that case,
DSP/BIOS would be trying to write to ROM -- which obviously would not work.

-Jeff

> ________________________________
>
> From: Naga Munaiah E [mailto:n...@icommtele.com]
> Sent: Sat 29/11/2008 04:15
> To: Yang, Chunhua
> Subject: RE: [c6x] DSP/BIOS application flash bootload question
>
> Hi ,
>
> Please check the code with BOIS application with out Emulator cable,
>
> Then see the output,if you are trying to execute the code with Emulator cable ,
> It wont copy from flash to RAM or SDRAM.
>
> And please tell me how u r testing the code.
>
> With Best Regards
>
> Nagamunaiah
>
> ________________________________
>
> From: c... [mailto:c...] On Behalf Of Yang,
> Chunhua
> Sent: Thursday, November 27, 2008 8:43 PM
> To: c...
> Subject: [c6x] DSP/BIOS application flash bootload question
>
> Hi all,
>
> I am using TI C6424 EVM board. I try to boot the board using EMIFA ROM Fast
> mode, with AIS (which is the default board setting mode). I wrote a non-DSP/BIOS
> LED blink program and flash burned. It works well.
>
> Then I wrote a DSP/BIOS based application to test. Everything else keeps the
> same. It doesn't work.
> I then check to find no sections have been copied from flash to RAM or SDRAM.
>
> Could someone please tell me why in the DSP/BIOS based application the built-in
> bootloader doesnt copy
> any sections into RAM or SDRAM? It is in AIS format.
>
> Thanks a lot in advance!
>
> Yang
Hi Jeff,

Thanks a lot for your comments. Good idea to check and debug bootloader code. I
will try to find and check the C6424 bootloader source to find possible
solutions.

Best Regards,
C. Yang

________________________________

From: Jeff Brower [mailto:j...@signalogic.com]
Sent: Mon 01/12/2008 16:53
To: Yang, Chunhua
Cc: c...
Subject: Re: [c6x] DSP/BIOS application flash bootload question

Chunhua-

> As I tested, I found .const section with a section length 0x16B1 bytes, which
> was copied to IRAM successfully by AIS bootloader. However, afterward sections
> stoped to be copied to IRAM. As you know, AIS assumes data to be 32 bits in
> width. 0x16B1 is not a integer times of 32 bits (4 bytes).
>
> Could anyone please suggest a solution for this case?

Are you sure it's bootloader code that got stuck? Or did the bootloader process
complete and application code start to run?

If it's truly a bootloader issue, then you can use CCS to breakpoint and
single-step
the bootloader code, and find out why it's unhappy (C6424 bootloader source
should be
published by TI). Maybe the bootloader stopped copying sections due to some
type of
error, confusion in the AIS script, etc. I doubt that a section length of
0x16b1 is
an issue, typical TI tools behavior is to pad section lengths to next multiple
of 4
or 8, depending on whether it's a data or code section.

If the boot process completed, then the issue could be something else. One
quick
guess -- make sure no DSP/BIOS data sections are located in EMIFA ROM. In that
case,
DSP/BIOS would be trying to write to ROM -- which obviously would not work.

-Jeff

> ________________________________
>
> From: Naga Munaiah E [mailto:n...@icommtele.com]
> Sent: Sat 29/11/2008 04:15
> To: Yang, Chunhua
> Subject: RE: [c6x] DSP/BIOS application flash bootload question
>
> Hi ,
>
> Please check the code with BOIS application with out Emulator cable,
>
> Then see the output,if you are trying to execute the code with Emulator cable
,
> It wont copy from flash to RAM or SDRAM.
>
> And please tell me how u r testing the code.
>
> With Best Regards
>
> Nagamunaiah
>
> ________________________________
>
> From: c... [mailto:c...] On Behalf Of Yang,
> Chunhua
> Sent: Thursday, November 27, 2008 8:43 PM
> To: c...
> Subject: [c6x] DSP/BIOS application flash bootload question
>
> Hi all,
>
> I am using TI C6424 EVM board. I try to boot the board using EMIFA ROM Fast
> mode, with AIS (which is the default board setting mode). I wrote a
non-DSP/BIOS
> LED blink program and flash burned. It works well.
>
> Then I wrote a DSP/BIOS based application to test. Everything else keeps the
> same. It doesn't work.
> I then check to find no sections have been copied from flash to RAM or SDRAM.
>
> Could someone please tell me why in the DSP/BIOS based application the
built-in
> bootloader doesnt copy
> any sections into RAM or SDRAM? It is in AIS format.
>
> Thanks a lot in advance!
>
> Yang
Hi Jeff,

The problem was as you guessed. Thanks a lot. I moved all sections to IRAM, it
works now.

I found in AIS image file that all code/initialised sections will be loaded to
the run address even though load address and run address are set to be the same
in external ROM. In this case, this means AIS bootloader will try to write data
to ROM. It will get problem since code/data can only be burned into Flash.

Does this mean there is no chance to set a section to have both load and run
addresses in ROM? Am I right or not?

Best Regards,
Yang

________________________________

From: Jeff Brower [mailto:j...@signalogic.com]
Sent: Mon 01/12/2008 16:53
To: Yang, Chunhua
Cc: c...
Subject: Re: [c6x] DSP/BIOS application flash bootload question

Chunhua-

> As I tested, I found .const section with a section length 0x16B1 bytes, which
> was copied to IRAM successfully by AIS bootloader. However, afterward sections
> stoped to be copied to IRAM. As you know, AIS assumes data to be 32 bits in
> width. 0x16B1 is not a integer times of 32 bits (4 bytes).
>
> Could anyone please suggest a solution for this case?

Are you sure it's bootloader code that got stuck? Or did the bootloader process
complete and application code start to run?

If it's truly a bootloader issue, then you can use CCS to breakpoint and
single-step
the bootloader code, and find out why it's unhappy (C6424 bootloader source
should be
published by TI). Maybe the bootloader stopped copying sections due to some
type of
error, confusion in the AIS script, etc. I doubt that a section length of
0x16b1 is
an issue, typical TI tools behavior is to pad section lengths to next multiple
of 4
or 8, depending on whether it's a data or code section.

If the boot process completed, then the issue could be something else. One
quick
guess -- make sure no DSP/BIOS data sections are located in EMIFA ROM. In that
case,
DSP/BIOS would be trying to write to ROM -- which obviously would not work.

-Jeff

> ________________________________
>
> From: Naga Munaiah E [mailto:n...@icommtele.com]
> Sent: Sat 29/11/2008 04:15
> To: Yang, Chunhua
> Subject: RE: [c6x] DSP/BIOS application flash bootload question
>
> Hi ,
>
> Please check the code with BOIS application with out Emulator cable,
>
> Then see the output,if you are trying to execute the code with Emulator cable
,
> It wont copy from flash to RAM or SDRAM.
>
> And please tell me how u r testing the code.
>
> With Best Regards
>
> Nagamunaiah
>
> ________________________________
>
> From: c... [mailto:c...] On Behalf Of Yang,
> Chunhua
> Sent: Thursday, November 27, 2008 8:43 PM
> To: c...
> Subject: [c6x] DSP/BIOS application flash bootload question
>
> Hi all,
>
> I am using TI C6424 EVM board. I try to boot the board using EMIFA ROM Fast
> mode, with AIS (which is the default board setting mode). I wrote a
non-DSP/BIOS
> LED blink program and flash burned. It works well.
>
> Then I wrote a DSP/BIOS based application to test. Everything else keeps the
> same. It doesn't work.
> I then check to find no sections have been copied from flash to RAM or SDRAM.
>
> Could someone please tell me why in the DSP/BIOS based application the
built-in
> bootloader doesnt copy
> any sections into RAM or SDRAM? It is in AIS format.
>
> Thanks a lot in advance!
>
> Yang
Chunhua-

> The problem was as you guessed. Thanks a lot. I moved all sections to IRAM, it
> works now.
>
> I found in AIS image file that all code/initialised sections will be loaded to the
> run address even though load address and run address are set to be the same in
> external ROM. In this case, this means AIS bootloader will try to write data to
> ROM. It will get problem since code/data can only be burned into Flash.
>
> Does this mean there is no chance to set a section to have both load and run
> addresses in ROM? Am I right or not?

Hmm, well it could be a problem with AIS bootloader... but I would think it would be
smart enough not to load a section that's already loaded. I have to believe TI guys
tested this.

What about your linker command file? Does it clearly specify the ROM EMIF area as
not writable? For example for a ROM area that can contain read-only data and
executable code, you should have something like:

MEMORY {

CHUNHUAS_ROM (RX): origin = 0xaaa, length = 0xbbb
}

If attributes () are specified but there is no 'W', then the memory area is not
writable. Otherwise the default is RWIX (read/write/executable code/can be
initialized).

-Jeff

> -----------
> From: Jeff Brower [mailto:j...@signalogic.com]
> Sent: Mon 01/12/2008 16:53
> To: Yang, Chunhua
> Cc: c...
> Subject: Re: [c6x] DSP/BIOS application flash bootload question
>
> Chunhua-
>
> > As I tested, I found .const section with a section length 0x16B1 bytes, which
> > was copied to IRAM successfully by AIS bootloader. However, afterward sections
> > stoped to be copied to IRAM. As you know, AIS assumes data to be 32 bits in
> > width. 0x16B1 is not a integer times of 32 bits (4 bytes).
> >
> > Could anyone please suggest a solution for this case?
>
> Are you sure it's bootloader code that got stuck? Or did the bootloader process
> complete and application code start to run?
>
> If it's truly a bootloader issue, then you can use CCS to breakpoint and
> single-step
> the bootloader code, and find out why it's unhappy (C6424 bootloader source should
> be
> published by TI). Maybe the bootloader stopped copying sections due to some type
> of
> error, confusion in the AIS script, etc. I doubt that a section length of 0x16b1
> is
> an issue, typical TI tools behavior is to pad section lengths to next multiple of 4
> or 8, depending on whether it's a data or code section.
>
> If the boot process completed, then the issue could be something else. One quick
> guess -- make sure no DSP/BIOS data sections are located in EMIFA ROM. In that
> case,
> DSP/BIOS would be trying to write to ROM -- which obviously would not work.
>
> -Jeff
>
> > ________________________________
> >
> > From: Naga Munaiah E [mailto:n...@icommtele.com]
> > Sent: Sat 29/11/2008 04:15
> > To: Yang, Chunhua
> > Subject: RE: [c6x] DSP/BIOS application flash bootload question
> >
> > Hi ,
> >
> > Please check the code with BOIS application with out Emulator cable,
> >
> > Then see the output,if you are trying to execute the code with Emulator cable ,
> > It wont copy from flash to RAM or SDRAM.
> >
> > And please tell me how u r testing the code.
> >
> > With Best Regards
> >
> > Nagamunaiah
> >
> > ________________________________
> >
> > From: c... [mailto:c...] On Behalf Of Yang,
> > Chunhua
> > Sent: Thursday, November 27, 2008 8:43 PM
> > To: c...
> > Subject: [c6x] DSP/BIOS application flash bootload question
> >
> > Hi all,
> >
> > I am using TI C6424 EVM board. I try to boot the board using EMIFA ROM Fast
> > mode, with AIS (which is the default board setting mode). I wrote a non-DSP/BIOS
> > LED blink program and flash burned. It works well.
> >
> > Then I wrote a DSP/BIOS based application to test. Everything else keeps the
> > same. It doesn't work.
> > I then check to find no sections have been copied from flash to RAM or SDRAM.
> >
> > Could someone please tell me why in the DSP/BIOS based application the built-in
> > bootloader doesnt copy
> > any sections into RAM or SDRAM? It is in AIS format.
> >
> > Thanks a lot in advance!
> >
> > Yang