Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16612 Discussions

No CFI table found at address 0x00000000

Altera_Forum
Honored Contributor II
5,112 Views

My SOPC has cfi_flash,and its base address is 0x0.But when I used the Flash Programmer in Nios IDE, it paused with  

No CFI table found at address 0x00000000 

Leaving target processor paused 

 

It could't find the cfi_flash? I checked in Nios commend shell,also the problem. 

what's the matter?
0 Kudos
19 Replies
Altera_Forum
Honored Contributor II
3,392 Views

Hi, I had the same problem in a design that has SOPC and a cfi flash. In my case, the problem was VHDL coding. The design worked fine in Quartus 5.1 but not in Quartus 7.1 

 

Exact same code. We later found out that Quartus 6.X and later implemented stricter VHDL synthesis standards than Quartus 5.1. When we put a logic analyser on the pins, it looked the same for flash accesses, but the Flash Programmer in Nios IDE always gave the same error you described if the design was compiled using 7.1. I dont remember the exact coding that was the issue as I dont have the file diff's in front of me but I seem to remember that it had something to do with an inout port. The data was going out the FPGA ok but the input side was not getting to a lower level instantiation. It was the flash data pins that were not getting to where they needed to go, and with the flash reponding properly on the logic analyzer, it made debug really frustrating. Altera FAE informed us of the change in how quartus interpreted VHDL between 5.1 and 6.X and we made a simple fix to the code that allowed programming using 6.X and later versions of quartus.  

 

I'm not saying this is the problem you have but it was the issue I had with the same messages you are seeing.
0 Kudos
Altera_Forum
Honored Contributor II
3,392 Views

You can try the memory test to see if your flash controller is working properly or not.

0 Kudos
Altera_Forum
Honored Contributor II
3,392 Views

What type of Flash device is it and how is it connected to your system (in terms of SOPC components, address and data pins etc.)? It sounds like something pretty fundamental to me. Have you tried the --debug option with the flash programmer to see what other information you can glean?

0 Kudos
Altera_Forum
Honored Contributor II
3,392 Views

Here is an example of the code problem I inherited. 

 

 

--- Quote Start ---  

 

entity example is 

port 

flash_data : inout std_logic_vector(7 downto 0)); 

end entity example; 

architecture rtl of example is 

signal flash_data_internal : std_logic_vector(7 downto 0); 

begin 

 

--this works in quartus 5.1 but not 6.0 and above 

flash_data <= flash_data_internal; 

flash_inst: entity work.flash(rtl) 

port map 

flash_data => flash_data_internal --flash_data is inout in flash.vhd 

); 

 

--this is the proper way 

flash_inst: entity work.flash(rtl) 

port map 

flash_data => flash_data --direct to the input port. 

); 

 

--- Quote End ---  

 

 

The flash_data_internal signal allows the data to go out but provides no path for the data coming in.
0 Kudos
Altera_Forum
Honored Contributor II
3,392 Views

Thank you , Thank you , Thank you, Thank you. 4 days trying to debug this problem, 4 days, and your post saved my A**. It works now. Thank you again. Do you know why signals defined as inout wouldn't work with intermediate signals like this ? 

 

Edited to add this is for : gmpstr
0 Kudos
Altera_Forum
Honored Contributor II
3,392 Views

 

--- Quote Start ---  

Thank you , Thank you , Thank you, Thank you. 4 days trying to debug this problem, 4 days, and your post saved my A**. It works now. Thank you again. Do you know why signals defined as inout wouldn't work with intermediate signals like this ? 

 

Edited to add this is for : gmpstr 

--- Quote End ---  

 

 

I am facing this same issue  

Info: Using cable "USB-Blaster [USB-0]", device 1, instance 0x00 

Info: Resetting and pausing target processor: OK 

Info: Reading System ID at address 0x111010B8: verified 

Info: No CFI table found at address 0x10800000 

Info: Leaving target processor paused 

Error: Error code: 8 for command: nios2-flash-programmer "E:/Nios_Flash/sys1/software/gui_bsp/flash/gui_cfi_flash_0.flash" --base=0x10800000 --sidp=0x111010B8 --id=0x0 --timestamp=1368512084 --device=1 --instance=0 '--cable=USB-Blaster on localhost [USB-0]' --program  

 

 

please explain me what you have done to fix this Bug ? 

 

RD 

asickrishna
0 Kudos
Altera_Forum
Honored Contributor II
3,392 Views

@ gmpstr : interseting. Maybe the resolved type "std_logic_vector" is not good for inout. The unresolved "std_ulogic_vector" could be good 

 

@asickrishna : 

In a Nios II command Shell (see Windows start menu/programs/altera/... or "C:\altera\12.0sp1\nios2eds\Nios II Command Shell.bat" ) 

nios2-flash-programmer --debug --base=0x10800000 

You will get something like this 

this is an example Using cable "USB-Blaster ", device 1, instance 0x00 Resetting and pausing target processor: OK Found CFI table in 16 bit mode Raw CFI query table read from device: 0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 20: 51 00 52 00 59 00 02 00 00 00 40 00 00 00 00 00 Q.R.Y.....@..... 30: 00 00 00 00 00 00 27 00 36 00 00 00 00 00 07 00 ......'.6....... 40: 07 00 0A 00 00 00 03 00 05 00 04 00 00 00 17 00 ................ CFI query table read from device: 10: 51 52 59 02 00 40 00 00 00 00 00 27 36 00 00 07 QRY..@.....'6... 20: 07 0A 00 03 05 04 00 17 02 00 05 00 02 07 00 20 ............... 30: 00 7E 00 00 01 00 00 00 00 00 00 00 00 00 00 00 .~.............. CFI extended table read from device: 0: 50 52 49 31 33 08 02 01 01 04 00 00 01 B5 C5 02 PRI13........... 10: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 ................ 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Read autoselect code 0001-227E (in 16 bit mode) No CFI override data for Device size is 8MByte Erase regions are: offset 0: 8 x 8K offset 10000: 127 x 64K Device supports AMD style programming algorithm Multi-byte programming with 32 byte buffer Sector erase timeout is 16s Word program timeout is 1ms Buffer program timeout is 4ms
0 Kudos
Altera_Forum
Honored Contributor II
3,392 Views

Hi  

 

I got the CFI table in 16 bit mode.After getting CFI table also i got the error as Leaving Target processor paused.
0 Kudos
Altera_Forum
Honored Contributor II
3,392 Views

It is not an error, just cycle power or reset the board. 

 

You could use the -g option of nios2-flash-programmer.
0 Kudos
Altera_Forum
Honored Contributor II
3,392 Views

I am getting error like this  

 

Please find the attachment.
0 Kudos
Altera_Forum
Honored Contributor II
3,392 Views

I am getting error code 4 for nios-flash-programmer  

 

Please find the attachment
0 Kudos
Altera_Forum
Honored Contributor II
3,391 Views

Hi 

 

I tried like this  

 

nios2-flash-programmer -g ro.flashs_ext_flash.flash --base=0x8000000 

using cable "USB-Blaster [USB-0]", device 1, instance 0x00 

Resetting and pausing target processor : OK 

Checksum took 0.0z 

erase not required 

Program failed at offset 10001E 

Leaving target processor paused 

 

Error: Error code: 4 for command: nios2-flash-programmer "D:/web/webserver1/board_update_portal/software/web_server270813_bsp/flash/ro.flashfs_ext_flash.flash" --base=0x8000000 --sidp=0x8024E0 --id=0x0 --timestamp=1377500456 --device=1 --instance=0 '--cable=USB-Blaster on localhost [USB-0]' --program --verbose.
0 Kudos
Altera_Forum
Honored Contributor II
3,391 Views

Are you sure of your base address ? 

 

You have double extension on your flash file, maybe that cause problem 

 

--- Quote Start ---  

nios2-flash-programmer "D:/web/webserver1/board_update_portal/software/web_server270813_bsp/flash/ro.flashfs_ext_flash.flash" 

--- Quote End ---  

 

 

Maybe a watchdog 

 

Maybe timing problems (mostly) 

 

Regards
0 Kudos
Altera_Forum
Honored Contributor II
3,391 Views

I am trying to execute example code only what ever i got from altera cyclone III development board examples  

 

I installed the cyclone III fpga development kit  

 

In that i have the board update portal.If i want to execute that file it is showing errors  

 

In my cyclone III development board i am using S29GL512N flash
0 Kudos
Altera_Forum
Honored Contributor II
3,391 Views

I ran into the same problem yesterday. I had a qsys system that was implemented and running, but I needed to add a Flash component for booting on power-up. After adding the Flash components in the System Contents view, I generated and compiled my design. Using the command line to program the device, I used these commands in a batch file: 

 

nios2_command_shell.sh sof2flash --input=top_module.sof --output=flash_hw.flash --offset=0x20C0000 --pfl --optionbit=0x00030000 --programmingmode=PS 

nios2_command_shell.sh nios2-flash-programmer --base=0x0 flash_hw.flash 

 

The first command worked, but the programmer (2nd command) gave me the error ==> No CFI table found at address 0x00000000 

 

I solved the problem because I realized I did not attached the data_master of the Nios to my avalon memory mapped slave port of the instanced External Flash. In fact, I only had the instruction master connected.  

 

See the attached image for my solution. Hope this helps.
0 Kudos
Altera_Forum
Honored Contributor II
3,391 Views

Hi all, 

I've a similar problem due to a migration from SOPC design to Qsys, on Quartus 12.1 sp1. 

 

Basically, it's a Nios2 linked to sram(32bit addr), f-ram(16bit addr.) and a flash cfi compliance (16bit addr.). 

Now, I no longer able to download my firmware on cfi flash via nios2-flash-programmer ( No CFI table found at address... ). 

 

In the Qsys design, I have one Generic Tri-State Controller for every memory device. They are connected to a Tri-State Conduit Pin Sharer and this is connected to Tri-State Conduit Bridge. 

 

I'm able to read/write data from/to sram and fram and then I'm pretty sure the bus is ok. 

 

Via oscilloscope, I checked that signals timings are ok. I noticed that, while in SOPC the flash memory access is @ 16bit, now in Qsys, the access is @ 32bit, but I don't thing this is the problem. 

 

Any, ideas? 

 

Thanks in advance, 

Rino  

 

p.s. 

Sorry for my english
0 Kudos
Altera_Forum
Honored Contributor II
3,391 Views

Hi, did you configure your CFI FLASH as a 16bit wide ? 

It becomes hard to manually configure a CFI FLASH in QSYS (in version 12.0SP1). The documentation are incomplete, split. bad point from altera.
0 Kudos
Altera_Forum
Honored Contributor II
3,391 Views

Hi, 

yes. But I found the mistake even though I didn't completly understand the solution. 

 

The flash is a 16bit data width, density 1Gbit then 26bit of addressing lines. 

In the electrical scheme his address pin A00 is connected to the pin 01 of the address bus, A01 to pin02, A02 to pin 03 and so on. 

Originally, I've done in this way: 

--> in Qsys, when I instantiated the flash controller, I declared, in the generic tri-state controller, addr width = 26 and data width = 16. 

Then I obtained an Out_addr : out std_logic_vector(25 downto 0). 

--> On the top level, I wrote: Out_addr => PRIMARY_BUS_ADDR(26 down to 1), where PRIMARY_BUS_ADDR is a std_logic_vector(26 downto 0).  

I thought it was ok, but I wasn't able to access to the flash memory. 

 

After many tests, I declared: 

--> in Qsys, in the generic tri-state controller, addr width = 27 , then I obtain an Out_addr : out std_logic_vector(26 downto 0) 

--> on top level, Out_addr => PRIMARY_BUS_ADDR.  

 

Now I can read/write the flash via nios2-flash-programmer and my system works fine...even though I didn't understand because in the first way it does not work. 

 

Bye, 

Rino
0 Kudos
Altera_Forum
Honored Contributor II
3,391 Views

Nice you found. 

 

There is a quite complex example in Altera Documentation of QSYS generic tri-stated components. --> http://www.altera.com/literature/hb/qts/qsys_system_components.pdf?gsa_pos=1&wt.oss_r=1&wt.oss=qsys%20tri-state 

 

I don't understand very well either.
0 Kudos
Reply