Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Valued Contributor III
1,110 Views

nios2-flash-programmer not working with Arria 10 GX dev kit

No matter what I do, I can't flash the memory on this board. The FPGA is programmed with the default Board Update Portal. I've created a .flash file using bin2flash to place it at address 0x2d00000, the first user hardware location in flash memory. I keep getting the following output when I try to flash: 

 

$ nios2-flash-programmer --debug --device=1 --base=0x0 bravo.flash 

Using cable "USB-BlasterII [USB-1]", device 1, instance 0x00 

Resetting and pausing target processor: 

OK 

Found CFI table in 32 bit x16||x16 mode 

Raw CFI query table read from device: 

0: 89 00 89 00 B0 88 B0 88 11 00 11 00 FE FF FE FF ................ 

10: 89 00 89 00 07 F9 07 F9 04 00 04 00 89 00 89 00 ................ 

20: 89 00 89 00 B0 88 B0 88 11 00 11 00 11 00 11 00 ................ 

30: 89 00 89 00 07 F9 07 F9 04 00 04 00 89 00 89 00 ................ 

40: 51 00 51 00 52 00 52 00 59 00 59 00 00 00 00 00 Q.Q.R.R.Y.Y..... 

CFI query table read from device: 

10: 51 52 59 00 02 0A 01 00 00 00 00 17 20 85 95 06 QRY......... ... 

20: 0B 0A 00 02 01 02 00 1B 01 00 0A 00 01 FF 01 00 ................ 

30: 04 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 

CFI extended table read from device: 

0: 50 52 49 31 34 E6 07 00 00 01 33 00 18 90 02 80 PRI14.....3..... 

10: 00 03 03 89 00 00 00 00 00 00 10 00 04 05 03 02 ................ 

20: 03 07 01 16 00 08 00 11 00 00 01 3F 00 00 04 64 ...........?...d 

30: 00 12 03 0A 00 10 00 10 00 01 16 00 01 00 11 00 ................ 

Read autoselect code FFFF0089-FFFF88B0 (in 32 bit mode) 

No CFI override data for [FLASH-FFFF0089-FFFF88B0] 

No support for CFI algorithm 512 on 32 bit flash 

Leaving target processor paused 

 

The nios2-flash-programmer user guide discusses the need sometimes for an override file, but I'm not sure if this is the case here. Any idea what I'm doing wrong here? 

 

Thanks, 

Steve
0 Kudos
3 Replies
Highlighted
Valued Contributor III
12 Views

Anybody have any thoughts on this? I'm really stuck here. 

 

Steve
0 Kudos
Highlighted
Valued Contributor III
12 Views

Nobody has tried to program flash on this board? I'm so stuck. ;-( 

 

Steve
0 Kudos
Highlighted
Valued Contributor III
12 Views

In case anybody else runs into this, for some reason, the Nios II flash programmer is not currently (Quartus version 16.1) compatible with the flash on this board. Intel standard CFI uses 0x40 command to initiate writes, but the Micron flash on this board for some reason uses 0x41. Until the flash programmer is updated, it cannot be used for writes since an override file cannot change the command to 0x41. However, you can still do reads using an override file like this one: 

 

[FLASH-FFFF0089-FFFF88B0] 

CFI[0x13] = 0x01  

CFI[0x14] = 0x00 

 

You'll need to use the --override, --read, and --read-bytes options with nios2-flash-programmer to do it, but it works. 

 

I was, however, able to put a .flash file at 0x02d00000 using the Board Update Portal factory image. It requires web access (over ethernet) to the board. You can either connect the board to a hub or switch on your network so it can get an IP address or, like I did, set up a local DHCP server on my laptop to directly give the board an IP address. One issue with this is that you cannot access user hardware area 2 (0x05800000). No matter what --location address you specify when using bin2flash, the Board Update Portal always puts the file at 0x02d00000 in flash memory.
0 Kudos