cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
shenhuanghui
Visitor
Visitor
7,918 Views
Registered: ‎05-05-2009

EDK10.1.3 Generic_External_Memory_Controllor(EMC) Intel Strataflash test

Jump to solution

hello, could anyone help me ?

my question is as fellows:

when I use EDK 10.1.03 to test Intel Strataflash, first use Base System Builder Wizard to add Generic_External_Memory_Controllor(EMC). Basic setting: FPGA Device:Virtex-4 xc4vfx140-ff1517-11; Processor: PowerPC;Reference CLK Frequency:50MHz, Processor CLK:100MHz;Bus CLK:100MHz; On chip Memory: None. IO Device: Generic_External_Memory_Controllor(EMC),GPIO LEDs, UART。

Then generate *.bit and build all user application. and download the bitstream and program the flash.  all above is just ok!

now errors come: when I use SDK to debug the TestAPP_Memory.c, the terminal print:

 

-- Entering main() --

Starting MemoryTest for Generic_External_Memory:

Running 32-bit test... FAILED!

Running 16-bit test... FAILED!

Running 8-bit test...  FAILED!

-- Exiting main() --

 

and how to solve the problem? many thanks!

 

0 Kudos
1 Solution

Accepted Solutions
Anonymous
Not applicable
9,851 Views

Hi,

 

Not sure if I am on the right track, but the memory test routines write to a memory device and then read back from it in various orders and with various bit patterns to detect stuck-at address pins, or floating data pins.

 

To write to a StrataFLASH device you will need to issue commands to that device (as I assume it is a CFI device).  You can not simply write a byte to a FLASH memory without first erasing a page and unlocking that page.

 

Typically the memory test routines will only run on SRAM based memories, and you may need to write your own driver to test the FLASH.

 

I would quite simply do a CFI query on the memory and if necessary go from there...

 

For example on a  AT49BVxxx FLASH memory you would:

 

 

//reset VAT49VB_WriteCommand(0x00, 0xFF); //enter CFI query mode VAT49VB_WriteCommand(0x55, 0x98); //read our CFI definition table //addx 10 is 0x51 "Q" u16Temp = u16AT49BV_ReadWord(0x10 << 1); u16Temp = u16AT49BV_ReadWord(0x11 << 1); u16Temp = u16AT49BV_ReadWord(0x12 << 1);

 

Good Luck

Lachlan.

 

 

 

View solution in original post

7 Replies
Anonymous
Not applicable
9,852 Views

Hi,

 

Not sure if I am on the right track, but the memory test routines write to a memory device and then read back from it in various orders and with various bit patterns to detect stuck-at address pins, or floating data pins.

 

To write to a StrataFLASH device you will need to issue commands to that device (as I assume it is a CFI device).  You can not simply write a byte to a FLASH memory without first erasing a page and unlocking that page.

 

Typically the memory test routines will only run on SRAM based memories, and you may need to write your own driver to test the FLASH.

 

I would quite simply do a CFI query on the memory and if necessary go from there...

 

For example on a  AT49BVxxx FLASH memory you would:

 

 

//reset VAT49VB_WriteCommand(0x00, 0xFF); //enter CFI query mode VAT49VB_WriteCommand(0x55, 0x98); //read our CFI definition table //addx 10 is 0x51 "Q" u16Temp = u16AT49BV_ReadWord(0x10 << 1); u16Temp = u16AT49BV_ReadWord(0x11 << 1); u16Temp = u16AT49BV_ReadWord(0x12 << 1);

 

Good Luck

Lachlan.

 

 

 

View solution in original post

shenhuanghui
Visitor
Visitor
7,884 Views
Registered: ‎05-05-2009

Thanks a lot! 

I have written a flash Driver according to CFI API provided by EDK and run successfully !

0 Kudos
njujames
Visitor
Visitor
7,178 Views
Registered: ‎10-24-2009

hi!

i have the same question as you ,you said you have run the memory test successful by write your own driver for the flash.Can you tell me how to write the own driver for the flash, or you can provide the code ..thank you very much.

0 Kudos
shenhuanghui
Visitor
Visitor
7,154 Views
Registered: ‎05-05-2009
First, check hardware interconnection. then in \\Xilinx\10.1\EDK\sw\lib\sw_services\, you will find the xilflash test example routines. you could modify or add your own codes.
0 Kudos
njujames
Visitor
Visitor
7,135 Views
Registered: ‎10-24-2009

thank you very much , i have found the examples,and run successfully.

 

james

0 Kudos
shikhar623
Observer
Observer
5,537 Views
Registered: ‎03-24-2011

I am using a custom board, which includes XILINX fpga(xc4vfx100). i have created a C code which generates a look up table. i want to access the FLASH memory(s29jl064h), using XPS for reading/writing data of the look up table during the execution of that code in Power PC.

the data is generated by the program itself(.elf).

i have gone through the flash test program, it Writes/reads in byte (using INBYTE(),or READ () functions) to write in the memory addresses but I wish to write Bit by Bit in the memory(as it is binary data).

please guide.

thank u.

0 Kudos
shikhar623
Observer
Observer
5,525 Views
Registered: ‎03-24-2011
anyone??
0 Kudos