Device driver for flash device interfaced with TigerSHARC processor
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
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
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.
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
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
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
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
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
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
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
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
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
Please log in to reply.