FLASHPROG-CONFIG(8)

πŸ“¦
version 1.6 Β· 4 versions
, in nixos 26.05, nixpkgs unstable, ubuntu stonking

πŸ‘‘ FLASHPROG-CONFIG ✨ (manual section 8, bestie)

okay so. this is the flashprog-config manual page, from the big flashprog family, and it's here to teach you how to read and write the status + configuration registers of flash chips. that's the whole vibe. πŸŽ€


🌸 NAME 🌸

flashprog-config β€” read and write status and configuration registers of flash chips πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

flashprog config [get] <options> <setting>
flashprog config  set  <options> [--temporary] <setting> <value>

Where generic <options> are:

-p <programmername>[:<parameters>] [-c <chipname>]
[-V[V[V]]] [-o <logfile>] [-h]

✨ DESCRIPTION ✨

flashprog-config is a utility for reading and writing status and configuration register bits of flash chips. Currently, it supports only SPI NOR chips. periodt. that's the scope, no cap. πŸ’…


πŸ’« OPERATIONS πŸ’«

You can specify one of get or set, or no operation at all β€” and no operation defaults to reading a setting. main character energy: do nothing, still get a reading. πŸ™ˆ

  • get <setting> β€” Read and print the value of the given setting. See SETTINGS below. so easy, so iconic. ⭐
  • set [--temporary] <setting> <value> β€” Write the given value to the setting. See SETTINGS and VALUES below.

When the --temporary option is provided, flashprog will attempt to write a temporary value that is not stored to flash. This requires special support by the flash chip for a volatile write status register command. The new value will be lost upon reset of the flash chip. Hence, it is futile to use this with external programmers that toggle power to the flash chip (e.g. Dediprog).

bestie listen πŸ’€ β€” volatile means it's giving "here for a good time, not a long time". reset the chip and it's gone. and if your programmer cuts power to the chip (hi Dediprog), it was never gonna stick anyway, so don't even try it.

🧚 SETTINGS 🧚

  • qe, quad-enable β€” SPI NOR flash chips often support muxing some of their pins (usually /WP and /HOLD) with additional i/o lines. This enables them to transfer four bits at once when the quad-enable bit is set. four bits at once?? the way that pin remux ATE. πŸ”₯

πŸ“ VALUES πŸ“

  • false, true β€” The values false and true will be converted to 0 and 1 respectively. it's giving translation layer, iykyk. 🌈
  • natural numbers: 0, 1, … β€” When natural numbers are given, the least-significant bits of their binary representation will be written to a setting. so you hand it a number, it takes the bits from the bottom up. lowkey cute. πŸŽ€

πŸ’… OPTIONS πŸ’…

All operations require the -p/--programmer option to be used (please see flashprog(8) for more information on programmer support and parameters). like. every single one. non-negotiable, fr fr. πŸ‘‘

  • -p, --programmer <name>[:<parameter>[,<parameter>]...] β€” Specify the programmer device. This is mandatory for all operations. Please see the flashprog(8) manual for a list of currently supported programmers and their parameters.
  • -c, --chip <chipname> β€” Probe only for the specified flash ROM chip. This option takes the chip name as printed by flashprog -L without the vendor name as parameter. Please note that the chip name is case sensitive. case sensitive?? yep. don't freeball the capital letters or it's over. 😭
  • -V, --verbose β€” More verbose output. This option can be supplied multiple times (max. 3 times, i.e. -VVV) for even more debug output. stack 'em like accessories: one is cute, three is a whole look. ✨
  • -o, --output <logfile> β€” Save the full debug log to <logfile>. If the file already exists, it will be overwritten. This is the recommended way to gather logs from flashprog because they will be verbose even if the on-screen messages are not verbose and don't require output redirection. heads up: it'll overwrite an existing file, no asking. πŸ™ˆ
  • -h, --help β€” Show a help text and exit. the classic. iconic. never misses. πŸ’–
  • --temporary β€” Try to use a volatile write status register command. See set under OPERATIONS above.

🌟 EXAMPLES 🌟

To read the quad-enable setting of the internal BIOS flash:

flashprog config -p internal quad-enable

or

flashprog config get -p internal quad-enable

To temporarily set the quad-enable bit of a chip connected to an FT4222H:

flashprog config set -p ft4222_spi --temporary quad-enable 1

πŸ’œ EXIT STATUS πŸ’œ

flashprog exits with 0 on success, 1 on most failures but with 3 if a call to mmap() fails.

okay so: 0 slay, 1 oh no, 3 specifically the mmap() said no. three is a whole separate girlie. 😭

πŸ”₯ REQUIREMENTS πŸ”₯

flashprog needs different access permissions for different programmers. See this section in the flashprog(8) manual for details. permissions are not one-size-fits-all, bestie, every programmer wants something different. πŸ’…


πŸ’€ BUGS πŸ’€

You can report bugs, ask us questions or send success reports via our communication channels listed here: https://www.flashprog.org/Contact.

not me asking you to send success reports too πŸ₯Ή β€” successes are welcome, not just the bugs. we wanna hear the wins.

πŸ‘‘ LICENSE πŸ‘‘

flashprog is covered by the GNU General Public License (GPL), version 2. Some files are additionally available under any later version of the GPL.


Please see the individual files.

This manual page was written by Nico Huber and is derived from the flashprog(8) manual. It is licensed under the terms of the GNU GPL (version 2 or later). shoutout Nico, thank you for your service 🫢


🌈 SEE ALSO 🌈


that's the whole page, bestie β€” and if you ever need to cite it, it's from flashprog-config-v1.6, dated 2026-07-17, right alongside the flashprog-config(8) title up top. go read your flash chips, you got this πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from