- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
AMD FLASH PROBLEM
because it was difficult to buy an AMD FLASH AM29LV065DU-120REI, AMD recommended to use the newer S29GL064M11TAIR0, which is pin compatible and CFI compliant. Now we have some custom boards,where the NIOS FLASH Programmer does not work with the S29GL064M11TAIR0 (boards with AM29LV065DU-120REI work fine) QUARTUS 4.1 SP2 NIOSII V1.0 SP1 -------------------------------------------------------------------------------- make: Entering directory `/cygdrive/i/12DXI02_SOFTWARE/boot01/Debug' nios2-flash-programmer --input=ext_flash.flash --sof=`C:/altera/quartus41/sopc_builder/bin/find_sopc_component_dir BOARD_12DIXI02`/system/BOARD_12DIXI02.sof --device=2 "--cable='USB-Blaster [USB-0]'" --base=0x00800000 13.01.2005 10:05:08 - (INFO) nios2-flash-programmer: Launching Quartus Programmer to download: I:/12DXI02_FPGA/BOARD_12DIXI02/system/BOARD_12DIXI02.sof Pre-Reading 125KBytes of data from D5: |----.----+----.----| ********************* (1.016 sec). Erasing 2 Sectors: |----.----+----.----| ********************* (1.437 sec). Writing 128KBytes : |----.----+----.----| **** Bad ack from Target. Yikes!, Bad Acknowledge Command-Field, Command-Packet Was: +---Flash-Monitor Protocol Packet---------- | Command : W | Flash-Base : 8388608 | Flash-Offset : 24576 | Command-Set : 2 | Flash Width : 1 | Flash Mode : 1 | payload size: 4096 | Payload : | 00000000: 1E 05 00 10 17 00 80 E0 17 00 C0 E0 17 40 80 10 | .............@.. | 00000010: 17 41 00 19 3A E8 3E 10 17 00 80 E0 85 01 00 10 | .A..:.>......... | 00000020: 17 00 80 E0 05 01 00 10 17 00 80 E0 03 01 80 10 | ................ | 00000030: 15 03 80 E0 17 03 C0 E0 E0 00 80 18 1E 4C 00 10 | .............L.. | 00000040: 17 03 C0 E0 08 01 80 18 1E 04 00 10 17 03 C0 E0 | ................ | 00000050: 3A 00 05 18 1E 08 00 10 06 ED 01 00 17 03 C0 E0 | :............... | 00000060: 20 01 80 18 1E 9B 01 10 17 03 C0 E0 60 01 80 18 | ...........`... | 00000070: 1E E3 01 10 06 E6 01 00 17 00 80 E0 03 11 80 10 | ................ | 00000080: 58 00 80 10 1E E2 01 10 17 00 80 E0 05 11 00 10 | X............... | 00000090: 17 00 80 E0 15 08 00 10 17 00 80 E0 15 09 00 10 | ................ | ... | 00000F70: 80 61 05 08 17 00 80 E0 8B 0E 80 10 B4 20 00 01 | .a........... .. | 00000F80: 04 F3 31 21 3A 88 0B 10 80 61 05 08 17 00 80 E0 | ..1!:....a...... | 00000F90: 8B 04 80 10 B4 20 00 01 04 F9 31 21 3A 88 0B 10 | ..... ....1!:... | 00000FA0: 80 61 05 08 17 00 80 E0 0B 0E 80 10 B4 20 00 01 | .a........... .. | 00000FB0: 04 FF 31 21 3A 88 0B 10 80 61 05 08 17 00 80 E0 | ..1!:....a...... | 00000FC0: 8B 0F 80 10 B4 20 00 01 04 05 32 21 3A 88 0B 10 | ..... ....2!:... | 00000FD0: 80 61 05 08 17 00 80 E0 0B 10 80 10 B4 20 00 01 | .a........... .. | 00000FE0: 04 0B 32 21 3A 88 0B 10 80 61 05 08 17 00 80 E0 | ..2!:....a...... | 00000FF0: 8B 10 80 10 B4 20 00 01 04 11 32 21 3A 88 0B 10 | ..... ....2!:... +------------------------------------------ Ack-Packet Was: +---Flash-Monitor Protocol Packet---------- | Command : ! | Flash-Base : 8388608 | Flash-Offset : 24576 | Command-Set : 2 | Flash Width : 1 | Flash Mode : 1 | payload size: 0 | Payload : +------------------------------------------ Unable to send write-packet @24576 buffer-chunk write failed @24576 erase-block write failed @24576 write failed @0 13.01.2005 10:05:19 - (SCHWERWIEGEND) nios2-flash-programmer: Unable to write to flash 13.01.2005 10:05:19 - (SCHWERWIEGEND) nios2-flash-programmer: Error: Write-operation failed on device. - exiting. make: *** [ext_flash_programflash] Error 8 make: Leaving directory `/cygdrive/i/12DXI02_SOFTWARE/boot01/Debug' -------------------------------------------------------------------------------- make: Entering directory `/cygdrive/i/12DXI02_SOFTWARE/boot01/Debug' nios2-flash-programmer --input=ext_flash.flash --sof=`C:/altera/quartus41/sopc_builder/bin/find_sopc_component_dir BOARD_12DIXI02`/system/BOARD_12DIXI02.sof --device=2 "--cable='USB-Blaster [USB-0]'" --base=0x00800000 13.01.2005 12:54:26 - (INFO) nios2-flash-programmer: Launching Quartus Programmer to download: I:/12DXI02_FPGA/BOARD_12DIXI02/system/BOARD_12DIXI02.sof Pre-Reading 125KBytes of data from D5: |----.----+----.----| ********************* (1.031 sec). Erasing 2 Sectors: |----.----+----.----| ********************* (1.531 sec). Writing 128KBytes : |----.----+----.----| ****Unable to send write-packet @24576 buffer-chunk write failed @24576 erase-block write failed @24576 write failed @0 13.01.2005 12:54:41 - (SCHWERWIEGEND) nios2-flash-programmer: Unable to write to flash 13.01.2005 12:54:41 - (SCHWERWIEGEND) nios2-flash-programmer: Error: Write-operation failed on device. - exiting. make: *** [ext_flash_programflash] Error 8 make: Leaving directory `/cygdrive/i/12DXI02_SOFTWARE/boot01/Debug' I'm not a flash expert, but having a look at the datasheet of S29GL064M11TAIR0 does not show the single word program command which is used by the following function (write to buffer and program buffer) /* * alt_program_amd * * Program a block (or part of one) * * Use the old fashioned word at a time program method * that way it will work on all devices * * There is another mechanism which puts the device into a mode and * then writes Addr, Data Addr, Data etc. */ int alt_program_amd(alt_flash_dev* flash_info, int block_offset, int offset, const void* src_addr, int length) { ... - will this flash type (S29GL064M11TAIR0) be supported by altera ? - which newer FLASH devices can be used with NIOSII and the flash programmer ? - how can the flash programmer be modified to support other flash devices ? thanksLink Copied
12 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
<div class='quotetop'>QUOTE </div>
--- Quote Start --- I'm not a flash expert, but having a look at the datasheet of S29GL064M11TAIR0 does not show the single word program command which is used by the following function (write to buffer and program buffer) /* * alt_program_amd * * Program a block (or part of one) * * Use the old fashioned word at a time program method * that way it will work on all devices * * There is another mechanism which puts the device into a mode and * then writes Addr, Data Addr, Data etc. */ int alt_program_amd(alt_flash_dev* flash_info, int block_offset, int offset, const void* src_addr, int length) { ... - will this flash type (S29GL064M11TAIR0) be supported by altera ? - which newer FLASH devices can be used with NIOSII and the flash programmer ? - how can the flash programmer be modified to support other flash devices ? thanks[/b] --- Quote End --- First things first it's a common mistake to look at the HAL code and assume that this is the flash programmer code. This is incorrect. Looking at the HAL code in the 1.1 kit and the datasheet for this part http://www.amd.com/us-en/assets/content_ty...xxa_00_a1_e.pdf (http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/s29glxxxa_00_a1_e.pdf) I found that the code matched the Program sequence in table 18. Obviously it's not 100% possible to say that it will work without trying it. One thing to note is that a number of flash companies claim their parts are CFI compliant which are not, though AMD is not one I have seen do this in the past.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for your reply,
I know that the HAL code is not the FLASH Programmer code, but both must work for our system. I updated to Quartus 4.2 and NIOS 1.1 I converted a project and got the following result - SOPC Builder generated,Quartus compiled without problem - software compiled (small change: did not recognized "#include<sys\ioctl.h" changed to "#include<sys/ioctl.h" - NIOS Flash Programmer from IDE makes a lot of trouble - NIOS Flash Programmer from shell script works with AMD FLASH AM29LV065DU-120REI - NIOS Flash Programmer from shell script does not work with AMD FLASH S29GL064M11TAIR0 additional to the flash problem, I have the following problem - SOME USER INTERFACE LOGIC DOES NOT WORK AS EXPECTED when I iopen the flash programmer from the ide ,I always get the message: "There is a problem with the target board. Check the target board selection in SOPC Builder for this system" after closing IDE, opening Quartus, opening SOPC Builder, closing SOPC-Builder, opening IDE again (! no changes, just open and close)), sometimes everything is ok and I can start the flash programmer. (I had this problem several times with NIOS 1.0, but now it got worsened) when I can start FLASH Programmer, I get the folowing message: -------------------------------------------------------------------------------- # ! /bin/sh# # This file was automatically generated by the Nios II IDE Flash Programmer.# # It will be overwritten when the flash programmer options change.# cd I:/12DXI02_SOFTWARE/te1_01/Debug # Creating .flash file for the FPGA configuration $SOPC_KIT_NIOS2/bin/sof2flash --flash=D5 --offset=0x00700000 --input=I:/12DXI02_ FPGA/standard.sof --output=standard.flash Info: ******************************************************************* Info: Running Quartus II Convert_programming_file Info: Command: quartus_cpf --no_banner --convert I:/12DXI02_FPGA/standard.sof st andard.rbf Info: Quartus II Convert_programming_file was successful. 0 errors, 0 warnings Info: Processing ended: Fri Jan 14 20:47:20 2005 Info: Elapsed time: 00:00:00 # Programming flash with the FPGA configuration $SOPC_KIT_NIOS2/bin/nios2-flash-programmer --input=standard.flash --sof=/system/ BOARD_12DIXI02.sof --cable='USB-Blaster [USB-0]' --base=0x00800000 14.01.2005 20:47:22 - (INFO) nios2-flash-programmer: Launching Quartus Programme r to download: /system/BOARD_12DIXI02.sof Error: Can't locate programming file BOARD_12DIXI02.sof (/system/;) in Chain Des cription File 14.01.2005 20:47:24 - (SCHWERWIEGEND) nios2-flash-programmer: Unable to download SOF: /system/BOARD_12DIXI02.sof, exiting # Creating .flash file for the project $SOPC_KIT_NIOS2/bin/elf2flash --flash=D5 --base=0x00000000 --end=0x800000 --rese t=0x0 --input=te1_01.elf --output=ext_flash.flash --boot=$SOPC_KIT_NIOS2/compone nts/altera_nios2/boot_loader_cfi.srec # Programming flash with the project $SOPC_KIT_NIOS2/bin/nios2-flash-programmer --input=ext_flash.flash --sof=__NO_SO F_PLEASE__ --cable='USB-Blaster [USB-0]' --base=0x00800000 14.01.2005 20:47:26 - (INFO) nios2-flash-programmer: SOF-download skipped. 14.01.2005 20:47:27 - (SCHWERWIEGEND) nios2-flash-programmer: Error opening targ et hardware jtag_atlantic connection failed to open: There are no JTAG UARTs available which match the --device and --instance options you provided. 14.01.2005 20:47:27 - (SCHWERWIEGEND) nios2-flash-programmer: In order to program flash, you must first create a purpose-built flash-programming design (i.e. FPGA configuration) and associate it with your particular board. The Nios development kit is delivered with purpose-bui lt flash-programming designs pre-built for several development boards. If you wi sh to program flash on your own board, you must first create a flash-programming design. The process of creating a flash-programming design for your board is mostly automated. From a bash-shell, execute this script: mk_target_board --help The help-message includes references to other documentation on programming flash and targeting Nios systems to custom board designs. - exiting. -------------------------------------------------------------------------------- the following is the output from the flash programmer for AMD FLASH S29GL064M11TAIR0 (shell script) ---------------------------------------------------------------------------- COPY FILE : standard.SOF `../12DXI02_FPGA/standard.SOF' -> `standard.SOF' ---------------------------------------------------------------------------- CONVERT FILE : standard.SOF to : standard.FLASH FLASH ID : U1 OFFSET : 0x00700000 ---------------------------------------------------------------------------- 14.01.2005 21:03:19 - (FEIN) sof2flash: Starting Info: ******************************************************************* Info: Running Quartus II Convert_programming_file Info: Command: quartus_cpf --no_banner --convert standard.SOF standard.rbf Info: Quartus II Convert_programming_file was successful. 0 errors, 0 warnings Info: Processing ended: Fri Jan 14 21:03:20 2005 Info: Elapsed time: 00:00:01 14.01.2005 21:03:20 - (FEIN) sof2flash: Done PRG:standard.flash ---------------------------------------------------------------------------- PROGRAM FILE : standard.flash BOARD FILE : BOARD_12DIXI02.sof CABLE : USB-Blaster [USB-0] JTAG-DEVICE : 2 FLASHPRG BASE ADD : 0x00800000 ---------------------------------------------------------------------------- 14.01.2005 21:03:21 - (INFO) nios2-flash-programmer: Launching Quartus Programmer to download: BOARD_12DIXI02.sof Pre-Reading 283KBytes of data from U1: |----.----+----.----| ********************* (2.36 sec). Erasing 5 Sectors: |----.----+----.----| ********************* (4.406 sec). Writing 320KBytes : |----.----+----.----| **14.01.2005 21:03:42 - (SCHWERWIEGEND) nios2-flash-programmer: Unable to write to flash 14.01.2005 21:03:42 - (SCHWERWIEGEND) nios2-flash-programmer: Error: Write-operation failed on device. - exiting. --- !!! ERROR !!! !!! ERROR !!! !!! ERROR !!! !!! ERROR !!! --- FEHLER PROGRAMMIERUNG First I need help with the flash programmer, I will post some info with the problem with user logic when i have more test results thanks- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
FLASH TYPES PROBLEM (S29GL064M):
you are right, the document from your link for S29GLxxxa really has the word programming command, but when I look at the TSOP package, it seems not to be pin compatible with type Am29LV065D. the type which AMD recommended to use is not this type (S29GL064A) , it is S29GL064M, see http://www.amd.com/us-en/assets/content_ty...xxm_00_b3_e.pdf (http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/s29glxxxm_00_b3_e.pdf) and look there at the command table, there is no word programming mode. I am a little bit confused, I thought that "CFI compliant" means "software compatible".- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Fischer,
I think we are working on the same project http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/smile.gif . My Flash was an Atmel AT49BV162A which 'has a CFI'. Same error messages: <div class='quotetop'>QUOTE </div> --- Quote Start --- Bad ack from Target. Yikes!, Bad Acknowledge Command-Field, Command-Packet Was: ......[/b] --- Quote End --- from Altera I've got an eMail through my FAE that this will be solved in the next version. Meanwhile I removed Flash totally from my design, so this issue doesn't concern me further. <div class='quotetop'>QUOTE </div> --- Quote Start --- additional to the flash problem, I have the following problem - SOME USER INTERFACE LOGIC DOES NOT WORK AS EXPECTED[/b] --- Quote End --- with quartus 4.2 register slaves now have other sub addresses, they are accessed always in steps by 4 independent of their width (as documented in avalon specs). see other thread ... (http://www.niosforum.com/forum/index.php?act=st&f=2&t=903&hl=) The other issue: <div class='quotetop'>QUOTE </div> --- Quote Start --- "There is a problem with the target board. Check the target board selection in SOPC Builder for this system"[/b] --- Quote End --- costs you really time. You can recompile your design and then use 'flash programmer' but only once. Then you have again "... a problem with the target board...". Sometimes it helps if you leave the room, or turn yourself twice. Then it works again. sometimes. http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/dry.gif Sorry, no help. Mike- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
again ide flash programmer problem
hi mike, yes I can leave the room twice,turn mysel 10 times and then if the ide is happy with the target board and i can start programming, it stops with the error message above, because the script generated by the ide is wrong. !!! I do not understand, why there is no input box in the flashprogrammer tool !!! where I can enter the path to the board sof-file !!! from where does the ide flashprogrammer get's the information for the board.sof file ??? in my case the ide flashprogrammer writes the script flash_programmer.sh -- the path "--sof=/system/BOARD_12DIXI02.sof" is wrong --sof=__NO_SOF_PLEASE__ is wrong- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- originally posted by fischer@Jan 14 2005, 08:06 PM flash types problem (s29gl064m):
you are right, the document from your link for s29glxxxa really has the word
programming command, but when i look at the tsop package, it seems not to be
pin compatible with type am29lv065d.
the type which amd recommended to use is not this type (s29gl064a) , it is
s29gl064m, see
http://www.amd.com/us-en/assets/content_ty...xxm_00_b3_e.pdf (http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/s29glxxxm_00_b3_e.pdf)
and look there at the command table, there is no word programming mode.
i am a little bit confused, i thought that "cfi compliant" means
"software compatible". --- Quote End --- Fischer, Looking at the link you posted Table 35 on page 113 contains the Program command. As for CFI Compliant meaning software compatible, it should, however there is no body which certifies whether a flash is CFI compliant. In the last few weeks alone I have seen a flash which claimed to be CFI compliant and indeed you could get a CFI table, however the mechanism used to get the CFI table was not that documented in the CFI spec, so it wasn't software compatible. I have also seen a flash chip which had an invalid CFI table, again not software compatible.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Fischer,
I dont't believe that the message .... <div class='quotetop'>QUOTE </div> --- Quote Start --- "There is a problem with the target board. Check the target board selection in SOPC Builder for this system" [/b] --- Quote End --- really describes the problem. I guess there is a problem with the java runtime. When I get this message, I close flash programmer, start quartus, start sopc builder and start flash programmer again and there is no error message. As long as the SOPC builder remains open, I can use flash programmer! In the past, there was a problem with javaw.exe which is used by NIOS IDE as well as SOPC builder and leaded sometimes to a hanging system. This is obviously solved. I removed an additional java runtime installation I had, but without any success. --- Quote Start --- originally posted by fischer@Jan 15 2005, 06:43 PM .... because the script generated by the ide is wrong. --- Quote End --- My design is named: 'ComMan', my Custom board is 'CM_Board' and my only flash is a EPCS4. My generated Flash programmer script consists of four commands:# Creating .flash file for the FPGA configuration
$QUARTUS_ROOTDIR/NIOS_11/bin/sof2flash --flash=U4 --offset=0x00000000 --epcs --input=D:/Projects/CMNios/FPGA/ACT/ComMan.sof --output=ComMan.flash
# Programming flash with the FPGA configuration
$QUARTUS_ROOTDIR/NIOS_11/bin/nios2-flash-programmer --input=ComMan.flash -- sof=D:/Projects/CMNios/FPGA/ACT/CM_Board/system/CM_Board.sof --cable='ByteBlasterII ' --epcs
# Creating .flash file for the project
$QUARTUS_ROOTDIR/NIOS_11/bin/elf2flash --flash=U4 --epcs --base=0x0 --end=0x7fffffff --input=CM_Boot.elf --output=epcs_controller.flash --boot=$QUARTUS_ROOTDIR/NIOS_11/components/altera_nios2/boot_loader_epcs.srec
# Programming flash with the project
$QUARTUS_ROOTDIR/NIOS_11/bin/nios2-flash-programmer --input=epcs_controller.flash --sof=__NO_SOF_PLEASE__ --cable='ByteBlasterII ' --epcs
But these commands are processed after flash programmer has established a connection to the target board and this script works (even with __NO_SOF_PLEASE as my target design is already programmed with the socond command (it is included in ComMan.flash) ). Perhaps it helps if you compare these with your script. If your design name doesn't match delete all *.launch files from "NIOSDIR\bin\eclipse\workspace\.metadata\.plugins\org.eclipse.debug.core\" and create a new Flash Programmer Configuration. The custom board design will be automatically found, if placed in your final design directory. (b.t.w. All (!) custom boards placed there, will be found and processed perhaps) If I'll figure out anything concerning this issue I'll post it here. Mike
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
because the AMD FlASH chip Am29LV065D is difficult to buy and expensive,
can some users please post the type of their flash chip they are using and if they work with nios2-flash-programmer. thanks- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We are developing a board that will be using the Spansion S29GL128M flash part.
I am very concerned about the level of software support for this part. I'm worried that the flash programmer will work properly, as well as the MTD drivers under Linux. I have this listed as one of the primary risks of the project. I was also told by our local AMD rep. that the Spansion part is the best choice for new designs and that it is CFI compliant. Are there enough people using this flash part to pressure Altera into officially supporting it in their SOPC builder? As for the Linux MTD support, I'll have to see what the MTD project has available and possibly make the changes myself.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi trk_golf,
do you have any more information on designing a board with Spansion S29GL128M flash and a Nios ? I am interested in your results since we plan to develop such a board too. Thanks cetic- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We haven't quite made it to the stage where we would be able to test this implementation.
It is indeed part of our plan, because AMD themselves have recommended using this Spansion branded flash chip (S29GL128M) over some of their earlier AMD flash chips. We are also running uClinux and plan to use JFFS2 for our flash system, so we have a lot to test and configure. 1) Support for flash chip on Avalon bus. 2) Support for flash chip with the flash programmer tool. 3) Support for flash chip under the Linux mtd drivers. 4) Support for the flash chip under the Linux JFFS2 filesystem. If we can get all of these items working, then our flash choice will work. Our contingency plan will be to move back to a 8MB flash chip and simply use the one that is on the Microtronix uKit board. We will be putting forth some good effort towards getting the S29GL128M flash chip to work. Our only enemy will be time. If we can't get things resolved quick enough, we will have to resort to the older flash. I will post our progress so others may benefit. Since we haven't implemented it yet, we would also like to know if anyone else has made it further down this path.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
do you have more information, about the support for the S29GL128M from AMD ? I plan to use a S29GL256M, and I would like to know wheter the Flash programmer can be used (and the MTD driver under uClinux). Another question : Since I want to set a JFFS2 on that flash, what will give me the best performance : using it in byte mode or in word mode ? Thanks for you answer, pod
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page