ΣSigmaStudio Ask AI Русский Log in

Device driver for flash device interfaced with TigerSHARC processor

SigmaDSP & SigmaStudio ravikishore.t@dlrl.drdo.in Jun 13, 2012 00:00 11 replies Original on forum ↗
Subscribe
ravikishore.t@dlrl.drdo.in Question
Jun 13, 2012 00:00

Hi

Iam using t26u bittware DSP board, This board have Octal TigerSHARC TS201 Processors with two 8MB Flash devices (AM29LVO65DU).

To program this Flash using VisualDSP Flash programmer, I require to write device drivers for this Flash. can you please provide me specify source and header file for this AMD flash.

regards,

Ravi kishore

jeyanthi.jegadeesan Reply
Jun 13, 2012 00:00

Hi Ravi Kishore,

The VDSP++ tools have driver for AMD flash AM29LV081B on SHARC processors. Please see the below path:

C:\Program Files (x86)\Analog Devices\VisualDSP 5.0\213xx\lib\src\drivers\flash\AM29LV081BF

You may use this as reference and modify it as per your device. I will be able to help in any specific questions in future on this.

Best Regards.

Jeyanthi

ADIApproved Reply
Jun 13, 2012 00:00

Hi,

This post has been moved from the SigmaDSP Processors and Development Tools community to the Other ADI Processors community. Please continue the discussion here.

Regards,

Colin.

ravikishore.t@dlrl.drdo.in Reply
Jul 18, 2012 00:00

Hi,

I have modified device driver for AMD flash interfaced with tigersharc ts201 processor and downloaded two loader files into it (one starting from 0x0 location and another at 0x10000).

I have generated the loader file 1 with default boot kernel and stored at the location 0x0 of the flash and generated the loader file 2 with modified boot kernel (only boot location is changed based on the EE notes of sharc processor) and stored at the location 0x10000.

I would imagine that i have to set some flag that the bootloader checks to determine which flash

location the image is loaded from.

can you tell me how to set flag registers and where to change in the boot kernel.

Regards,

Ravi Kishore

jeyanthi.jegadeesan Reply
Jul 19, 2012 00:00

Hi Ravi Kishore,

The ADSP-TS201 PROM boot kernel initializes the subsequent DMAs to read from flash on line 188:

xr0 = 0x400;; // xr0 = source index

xr3 = TCB_EPROM | TCB_NORMAL | TCB_INT;;// boot rom,prio=norm,2D=no,word=norm,int=yes,RQ=dsbl,chain=no

You may add the condiftional check at this point and change the xr0 as per the flag value. Please refer the FLAGS chapter on page 5-1 of the ADSP-TS201 HRM for using the flags as inputs or outputs.

Best Regards,

Jeyanthi

ravikishore.t@dlrl.drdo.in Reply
Aug 24, 2012 00:00

Hi,

Four weeks back , i have modified the device driver for AMD flash interfaced with tigersharc ts201 processor and downloaded three different loader files into it (one starting from 0x0 location,another at 0x10000 and another at 0x20000). they are booting correctly based on the condition mentioned in the boot kernel of loader file1.

Now there is a problem in the booting sequence. Irrespective of the condition in the boot kernel always loader file 3 is booting. to trace back the problem i have followed these steps:

I have generated 3 different loader files and loaded into different locations of flash.

loader file 1 (generated with source address of 0x400 and 0x10400 in the boot kernel) is loaded at location 0x0.

loader file 2 (generated with default boot kernel) is loaded at location 0x10000.

loader file 3 (generated with default boot kernel) is loaded at location 0x20000.

Still loader file 3 is booting

can you tell me where iam going wrong.

Regards,

Ravi Kishore

jeyanthi.jegadeesan Reply
Aug 27, 2012 00:00

Hi Ravi Kishore,

Please answer me the following:

1. What is the changes added to the boot kernel? Can you share the modified boot kernel code used

for testing?

2. What does the different applications(1, 2 and 3) booted do?

3. Does the processor boot if you do not program the flash with loader 3?

4. Have you verified to see whether the other applications(loader 1 and 2) are booting if the

conditions specific are met ?

5. Have you checked on whether the flash programmer programs the applications correctly on the

locations specified?

Best Regards,

Jeyanthi

ravikishore.t@dlrl.drdo.in Reply
Aug 28, 2012 00:00

Hi,

1) What is the changes added to the boot kernel? Can you share the modified boot kernel code used

for testing?

ANS: In boot kernel (ts201_prom.asm), i have modified only source address xR0=0x10400 (Default value is

0x400). so that loader program at 0x10000 location in the flash will be booted.

2) What does the different applications(1, 2 and 3) booted do?

ANS: For testing purpose i have used blinking leds program , my board have 4 ts201 processors and these program are tested in multiprocessing environment using JTAG emulator (HPUSB-ICE) .

loader file 1 will blink all LEDs (4 ts201 LEDs)

loader file 2 will blink processor 1 LEDs only

loader file 3 will blink processor 3 LEDs only

3) Does the processor boot if you do not program the flash with loader 3?

ANS: yes, processor boot with loader file 2, here i observed one thing, i.e., last loaded file is booting alwalys, For confirmation i have tried by loading loader file 4 at 0x40400 location of flash. In this case loader file 4 is booting.

4) Have you verified to see whether the other applications(loader 1 and 2) are booting if the

conditions specific are met ?

ANS: Applications 1 & 2 are booting if these applicaions are loaded at last location of the flash.

These applications are also working if only one loader file is created.

5) Have you checked on whether the flash programmer programs the applications correctly on the

locations specified?

ANS:Yes, applications are correctly written and these are verified.

Regards,

Ravi Kishore

jeyanthi.jegadeesan Reply
Sep 3, 2012 00:00

Hi Ravi Kishore,

Thanks for the information. I would suggest you to debug the booting process by running the boot kernel from emulator: You may add the below instruction at the top of boot kernel code before the DMA start:

Nothing:

jump( Nothing);

After booting the processor, connect the board with the emulator in "Do Not Disturb" option. When halted the processor will be executing the above instruction. Using the disassembly window edit the instruction and change as NOP. Then single step the boot kernel code to see what happens in your system. This might explain on what goes wrong.

I also want to understand on how do you program the all the loader files in the flash. Do you program the combined ldr once or program them individually? How do you verify after programming all the codes that the previous ones are not overwritten?

Can you also provide more details about the flash used and how it is interfaced with the processor?

I have created a setup to boot two different applications on the EZ-KIT based on the FLAG0 status. See the attached document and the zip file for more details. This setup works fine on the EZ-KIT. Can you try this one on your board with modifications specific to your system?

Best Regards,

Jeyanthi

ravikishore.t@dlrl.drdo.in Reply
Sep 3, 2012 00:00

Hi,

I will try with above procedure.

Iam programming the flash with individual loader files. I am verifying by reading the contents of the flash and the contents of the flash are not overwritten. iam using 8MB flash (AMD29LVO65DU).

Regards

Ravi Kishore

jeyanthi.jegadeesan Reply
Sep 5, 2012 00:00

Hi Ravi Kishore,

Will you be able to test the codes I have shared? Can you also explain on how do you generate the loader file?

Regards,

Jeyanthi

EZAdministrator Reply
Aug 2, 2018 00:00

This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

Thank you,
EZ Admin