aboutsummaryrefslogtreecommitdiff
path: root/iceprog/iceprog.c
AgeCommit message (Collapse)Author
2025-09-13iceprog: add option for global block unlockHEADmainIan McIntyre
Required for some Microchip flash memories. Tested against a SST26VF032. No strong reason to put it as a separate command line option. I'm leaving the part unlocked once the program returns. I should probably re-lock it. This part's lock command seems to be 0x8D, not the expected 0x7E.
2025-06-03Update Claire's name and fix the reference image in the iceprog helpMatt Venn
2024-05-15Reset procedure after verification fails and before exiting. Refactor ↵Roland Coeurjoly
set_cs_creset(1, 1) to flash_release_reset()
2022-05-30Merge pull request #283 from smunaut/miscMiodrag Milanović
Misc improvements to iceprog
2022-04-13Fix float exception when value is less than 100Rafael Lee
Signed-off-by: Rafael Lee <rafaellee.img@gmail.com>
2021-12-17iceprog: Use open-drain output to drive SS and Reset lineSylvain Munaut
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-12-17iceprog: Improve reset to disable both CRM and QPISylvain Munaut
It's hard to cover 100% of cases, but this seems to improve probability that a reset works, at least for me on the icebreaker. Some other flash have a different QPI disable command though :/ Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-12-17iceprog: Add option that set QE=1 bit in SR2Sylvain Munaut
This is useful when testing litex SoC that rely on that bit being set The setting is non-volatile so it only needs to be done once in case you happen to have used a flash chip that's not by default QE=1 (This has been designed for winbond flash. Others might use different bit ...) Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-09-06Merge pull request #282 from jkiv/iceprog-ignorig-fixMiodrag Milanović
[iceprog] Fixed typo in error message: "Ignorig"
2021-05-03[iceprog] Fixed typo in error message: "Ignorig"Jon Kivinen
2021-01-16iceprog: Add write and read progress indication.Piotr Esden-Tempski
2020-04-22Merge branch 'opt_skip_powerdown' of https://github.com/smunaut/icestormClaire Wolf
2020-02-02Added an option to choose the erase block size.Piotr Esden-Tempski
This allows us to flash binaries at offsets that are smaller multiples.
2019-12-28iceprog: Add option to keep flash powered upSylvain Munaut
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-08-15Merge pull request #230 from smunaut/fix_flash_resetClifford Wolf
iceprog: Better reset of flash
2019-08-05iceprog: Better reset of flashSylvain Munaut
If the flash was in a 'weird' mode (like CRM, QPI, ...), sending a continuous stream of 0xff should take it out of it. It looks like the previous code was trying to do that, but was only transferring 8 bits and then 2 bits which is way too short. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-08-05Fix piping on windowsTim Pambor
On windows stdin and stdout have to be set to binary as otherwise windows treats it as text and converts occurences of CRLF to LF
2019-04-27Add -X option to iceprogPablo Cossutta
In my setup, in OSX I have problems reading from libftdi but not writing. In case of a failure iceprog exits and leaves the FPGA in an useless state. I think it would be a good option to have the possibility to skip the verification process.
2018-12-24Split the hardware specific gpio functions.Piotr Esden-Tempski
2018-12-24Factored out mpsse functions for easier reusability.Piotr Esden-Tempski
2018-09-02Force flash to exist QPI mode in iceprogClifford Wolf
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-09-02iceprog: switch to SPI mode 0, add -s option, add flash_resetClifford Wolf
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-19Minor style changes in iceprogClifford Wolf
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-19iceprog coding style, don't use "assert" as variable nameClifford Wolf
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-18Slightly more robust flash wait function.Piotr Esden-Tempski
In cases when the FLASH chip is bit flaky and the status register "bounces" this flash_wait should be able to perform a bit better. Also added more verbose output around block erase.
2018-08-18Add a function to read and decode the status register.Piotr Esden-Tempski
Very useful for debugging purposes. ;)
2018-08-18Added the FTDI cable pinout for reference.Piotr Esden-Tempski
2018-08-18Improved JEDEC ID read function.Piotr Esden-Tempski
The function now checks how long the extended JEDEC ID field is for the particular FLASH chip and only reads the amount provided by the chip.
2018-08-18Replaced some more magic numbers with FLASH command IDs.Piotr Esden-Tempski
I missed those the first time around.
2018-08-18Added easier to read chip_select/reset functions.Piotr Esden-Tempski
Just calling a gpio function with two numbers was not very self explanatory. The functions now refer to the actual indended action, chip (de)select for flash, reset and chip (de)select for sram. Reading the code and understanding what steps are taken should be easier now.
2018-08-16Added more code comments.Piotr Esden-Tempski
Main point was to group the code into three logical segments: * MPSSE/FTDI defines and functions * FLASH defines and functions * iceprog implementation core While I was at it I also added a few comments for stuff that was not immediately obvious what it does.
2018-05-30Merge pull request #144 from daveshah1/unbrickClifford Wolf
Add write protection disable to iceprog
2018-03-11Added some flash command definitions to decrease magic number usage.Piotr Esden-Tempski
2018-03-11Added some MPSSE command definitions to decrease magic number usage.Piotr Esden-Tempski
2018-02-12Add write protection disable to iceprogDavid Shah
2018-02-09Add out-of-the-box FT232H support (for Upduino 2, etc)David Shah
2018-01-02Add "iceprog -e"Clifford Wolf
2017-08-01Squelch trailing whitespaceLarry Doolittle
2017-07-17iceprog: Make errors print only the program nameRobert Ou
Previously, the entire argv[0] would be printed.
2017-07-17iceprog: Do not use nonstandard err.hRobert Ou
This header does not exist under MinGW. Replace these functions with standard functions.
2017-07-05Fix coding style in iceprog.c (mostly line breaks and indenting)Clifford Wolf
2017-07-04iceprog: Keep name space cleanRoland Lutz
2017-07-04iceprog: Remove trailing newlineRoland Lutz
2017-07-04iceprog: Break overlong linesRoland Lutz
2017-07-04iceprog: Fix coding style inconsistenciesRoland Lutz
2017-07-04iceprog: Fix error messagesRoland Lutz
2017-07-02iceprog: Return a meaningful exit statusRoland Lutz
2017-07-02iceprog: When reading, don't write more bytes than requestedRoland Lutz
2017-07-02iceprog: Allow programming from pipeRoland Lutz
2017-07-02iceprog: Allow programming from standard inputRoland Lutz