XBFLASH.QSPI(1)

πŸ“¦ version 2.25.0, in ubuntu resolute, ubuntu stonking

okay bestie, pull up a chair πŸŽ€ this is xbflash.qspi, and she lives in the User Commands part of the manual (section 1, the "just run me in your terminal" zone). Her whole thing, and I mean her whole thing, is programming, erasing, and reading QSPI flash on accelerator cards. No cap. Let's go ✨

🌸 NAME 🌸

xbflash.qspi β€” program, erase, and read QSPI flash on accelerator cards πŸ’…

That's the name. That's the vibe. Iconic, brief, slays.


✨ DESCRIPTION ✨

The usage line, fr fr, this is literally all it says:

Usage: xbflash.qspi [options]

Short queen πŸ‘‘ she lets the options do the talking.


πŸ’– OPTIONS πŸ’–

Okay so here's the thing β€” this manpage groups everything by mode, and each mode has a flag that has to be the very first option or it's not gonna work. Read those notes, bestie, I'm begging πŸ™ˆ

πŸ“ "SPI flash" πŸ“

  • --primary <MCS-path> β€” must be 1st option πŸ”₯ like literally first, do not make her wait her turn
  • --secondary <MCS-path> β€” optional, default is empty 🫢
  • --card <BDF> β€” required, no brackets, she's mandatory
  • --force β€” optional, yes for prompt πŸ’…
  • --bar <BAR-index-for-QSPI> β€” optional, default is 0
  • --bar-offset <BAR-offset-for-QSPI> β€” optional, default is 0x40000

πŸ¦‹ "SPI factory-reset" πŸ¦‹

  • --factory-reset β€” must be 1st option πŸ”₯
  • --dual-flash β€” optional flag, no value, just vibes
  • --card <BDF> β€” required
  • --force β€” optional, yes for prompt πŸ’…
  • --bar <BAR-index-for-QSPI> β€” optional, default is 0
  • --bar-offset <BAR-offset-for-QSPI> β€” optional, default is 0x40000

🌈 "QSPIPS erase" 🌈

  • --qspips-erase β€” must be 1st option πŸ”₯
  • --card <BDF> β€” required
  • --offset <offset-on-flash-to-start-with> β€” optional, default is 0
  • --length <length-to-read> β€” optional, default is 96MB
  • --flash-type <qspips-flash-type> β€” optional, default is qspi_ps_x2_single
  • --bar <BAR-index-for-QSPIPS> β€” optional, default is 0
  • --bar-offset <BAR-offset-for-QSPIPS> β€” optional, default is 0x40000
  • --force β€” optional, yes for prompt πŸ’…

⭐ "QSPIPS flash" ⭐

  • --qspips-flash β€” must be 1st option πŸ”₯
  • --input <path-to-qspips-BOOT-BIN-file> β€” required, she needs her file
  • --card <BDF> β€” required
  • --offset <offset-on-flash-to-start-with> β€” optional, default is 0
  • --flash-type <qspips-flash-type> β€” optional, default is qspi_ps_x2_single
  • --bar <BAR-index-for-QSPIPS> β€” optional, default is 0
  • --bar-offset <BAR-offset-for-QSPIPS> β€” optional, default is 0x40000
  • --force β€” optional, yes for prompt πŸ’…

πŸ’œ "QSPIPS read back" πŸ’œ

  • --qspips-read β€” must be 1st option πŸ”₯
  • --output <output-file-to-save-read-contents> β€” required, where the tea gets saved
  • --card <BDF> β€” required
  • --offset <offset-on-flash-to-start-with> β€” optional, default is 0
  • --length <length-to-read> β€” optional, default is 128MB
  • --flash-type <qspips-flash-type> β€” optional, default is qspi_ps_x2_single
  • --bar <BAR-index-for-QSPIPS> β€” optional, default is 0
  • --bar-offset <BAR-offset-for-QSPIPS> β€” optional, default is 0x40000

okay bestie so here's the part where I have to be real with you: the page literally prints this whole thing twice 😭 and I am NOT about to gatekeep half of it from you, so round two, exactly as she wrote it:

xbflash.qspi [options]

πŸ“ "SPI flash" πŸ“

  • --primary <MCS-path> β€” must be 1st option πŸ”₯
  • --secondary <MCS-path> β€” optional, default is empty 🫢
  • --card <BDF> β€” required
  • --force β€” optional, yes for prompt πŸ’…
  • --bar <BAR-index-for-QSPI> β€” optional, default is 0
  • --bar-offset <BAR-offset-for-QSPI> β€” optional, default is 0x40000

πŸ¦‹ "SPI factory-reset" πŸ¦‹

  • --factory-reset β€” must be 1st option πŸ”₯
  • --dual-flash β€” optional flag, no value
  • --card <BDF> β€” required
  • --force β€” optional, yes for prompt πŸ’…
  • --bar <BAR-index-for-QSPI> β€” optional, default is 0
  • --bar-offset <BAR-offset-for-QSPI> β€” optional, default is 0x40000

🌈 "QSPIPS erase" 🌈

  • --qspips-erase β€” must be 1st option πŸ”₯
  • --card <BDF> β€” required
  • --offset <offset-on-flash-to-start-with> β€” optional, default is 0
  • --length <length-to-read> β€” optional, default is 96MB
  • --flash-type <qspips-flash-type> β€” optional, default is qspi_ps_x2_single
  • --bar <BAR-index-for-QSPIPS> β€” optional, default is 0
  • --bar-offset <BAR-offset-for-QSPIPS> β€” optional, default is 0x40000
  • --force β€” optional, yes for prompt πŸ’…

⭐ "QSPIPS flash" ⭐

  • --qspips-flash β€” must be 1st option πŸ”₯
  • --input <path-to-qspips-BOOT-BIN-file> β€” required
  • --card <BDF> β€” required
  • --offset <offset-on-flash-to-start-with> β€” optional, default is 0
  • --flash-type <qspips-flash-type> β€” optional, default is qspi_ps_x2_single
  • --bar <BAR-index-for-QSPIPS> β€” optional, default is 0
  • --bar-offset <BAR-offset-for-QSPIPS> β€” optional, default is 0x40000
  • --force β€” optional, yes for prompt πŸ’…

πŸ’œ "QSPIPS read back" πŸ’œ

  • --qspips-read β€” must be 1st option πŸ”₯
  • --output <output-file-to-save-read-contents> β€” required
  • --card <BDF> β€” required
  • --offset <offset-on-flash-to-start-with> β€” optional, default is 0
  • --length <length-to-read> β€” optional, default is 128MB
  • --flash-type <qspips-flash-type> β€” optional, default is qspi_ps_x2_single
  • --bar <BAR-index-for-QSPIPS> β€” optional, default is 0
  • --bar-offset <BAR-offset-for-QSPIPS> β€” optional, default is 0x40000

πŸ”₯ SEE ALSO πŸ”₯

The full documentation for xbflash.qspi is maintained as a Texinfo manual πŸ“š so if you want the complete complete version, that's where she's at. If the info and xbflash.qspi programs are properly installed at your site, this command:

info xbflash.qspi

should give you access to the complete manual ✨ go read her, she's worth it.


and that's the whole page, bestie 🫢 it's dated October 2025 and the footer tags the source as xbflash.qspi Usage:. love that for her. go flash something responsibly πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from