IPMCTL-LOAD-DIMM(1)

πŸ’– IPMCTL-LOAD-DIMM πŸ’–

okay bestie, so this is the ipmctl manual page for ipmctl-load-dimm β€” the glow-up-your-firmware command. buckle up, it's giving ✨firmware update✨ energy and we're gonna understand every single bit of it, no cap.


✨ NAME ✨

ipmctl-load-dimm β€” updates the firmware on one or more PMem modules. that's the whole vibe. firmware glow-up, periodt. πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

ipmctl load [OPTIONS] -source (path) -dimm [TARGETS]

like literally that's the whole incantation. options first, then you tell it where the firmware image lives, then you tell it who's getting the update. πŸ¦‹


🌸 DESCRIPTION 🌸

so what this does is update the firmware on one or more PMem modules. and here's the little plot twist bestie: on the next power cycle, the firmware will become active. so you don't get the glow-up immediately β€” you gotta reboot first. main character energy takes time. πŸ‘‘

Note 🫢 if Address Range Scrub (ARS) is in progress on any target PMem module, an attempt will be made to abort ARS and then proceed with the firmware update. so it's not gonna just sit there and wait, it'll politely interrupt.
Note 😭 a power cycle reboot is required to activate the updated firmware image, and it's also recommended to ensure ARS runs to completion. so like… reboot. please. fr fr.

πŸ’… OPTIONS πŸ’…

here's where it gets juicy. every single flag, no skips:

  • -x, -examine β€” verifies the target PMem modules are compatible and ready to receive the firmware image you specified in the source option. it also returns the firmware image version. it's basically the vibe check before the glow-up. πŸ”
  • -f, -force β€” downgrading firmware to an older version is a potentially destructive operation which requires confirmation from the user for each PMem module. this option suppresses that confirmation when you're attempting a downgrade. so yeah it's powerful, use it with your whole chest but like… carefully. πŸ’€
  • -h, -help β€” displays help for the command. the classic "wait what do i do" button. πŸ™ˆ
  • -ddrt β€” used to specify DDRT as the desired transport protocol for the current invocation of ipmctl. πŸš€
  • -smbus β€” used to specify SMBUS as the desired transport protocol for the current invocation of ipmctl. 🐒
Note ⚠️ the -ddrt and -smbus options are mutually exclusive and may not be used together. pick one bestie, you can't have both.
  • -lpmb β€” used to specify large transport payload size for the current invocation of ipmctl.
  • -spmb β€” used to specify small transport payload size for the current invocation of ipmctl.
Note ⚠️ the -lpmb and -spmb options are mutually exclusive and may not be used together. same rule, different pair.
  • -source β€” specifies the firmware image binary to upload to the PMem module. this is literally the file. the whole point. πŸ“¦
  • -recover β€” --DEPRECATED-- okay so this flag is no longer necessary to run firmware update on PMem modules where the DDRT link is not trained. these untrained PMem modules are now automatically included when the command is run without the -recover option. however, this flag is still maintained for backwards compatibility. so it's like that one ex that still shows up but you don't actually need them anymore. πŸ’€
  • -o (text|nvmxml), -output (text|nvmxml) β€” changes the output format. one of: "text" (default) or "nvmxml". pick your aesthetic. 🎨

πŸ‘‘ TARGETS πŸ‘‘

  • -dimm [DimmIDs] β€” updates the firmware on specific PMem modules by supplying one or more comma separated PMem module identifiers. however, this is not recommended as it may put the system in an undesirable state. 😭 the default is to update all manageable PMem modules. so like, the default is the safe lane, and naming specific DIMMs is the risky lane. iykyk.

🌈 EXAMPLES 🌈

Example 1 β€” updates the firmware on all PMem modules in the system to the image in sourcefile.bin on the next power cycle:

ipmctl load -source sourcefile.bin -dimm

Example 2 β€” checks the firmware image in sourcefile.bin and retrieves the version:

ipmctl load -examine -source sourcefile.bin -dimm

look at that. clean. iconic. ⭐


🧚 LIMITATIONS 🧚

in order to successfully execute this command, bestie:

  • the caller must have the appropriate privileges. πŸ”
  • the specified PMem modules must be manageable by the host software. πŸ–₯️

firmware version (PN.RN.SV.bbbb) updates are supported as follows:

  • the product number (PN) cannot be changed. 🚫
  • the revision number (RN) can be upgraded when PN is the same. ⬆️
  • the security revision number (SV) can be upgraded when PN.RN is the same. in some configurations it can also be downgraded when PN.RN is the same; use the examine option to determine if the security revision number can be downgraded. πŸ”„
  • the build number (bbbb) can be upgraded or downgraded. however, if the firmware API version in the firmware image is lower than is supported by the host software and would make the PMem module become unmanageable, the downgrade is not supported. πŸ›‘
Note 🌸 once a firmware image is staged for execution, a power cycle is required before another firmware image of the same type (production or debug) can be staged for execution using this command. so one at a time, okay? patience is a virtue bestie.

πŸ”₯ RETURN DATA πŸ”₯

when the examine option is provided, the firmware image is checked and the version number and firmware type is provided. the firmware will either be:

  • valid for the PMem module,
  • a downgrade, or
  • invalid β€” meaning it cannot be used for that PMem module.

πŸ’œ SAMPLE OUTPUT πŸ’œ

(file path): MM.mm.hh.bbbb
Load FW on PMem module (DimmID): (Valid|Downgrade) [(with
confirmation or the force option)]

if the firmware is being downgraded and the force option is not provided, the user will be prompted to confirm the downgrade for each PMem module. otherwise, for each PMem module, the CLI will indicate the status of the operation.

Downgrade firmware on PMem module (DimmID)? (y or [n]) Downgrade firmware
on PMem module (DimmID)? (y or [n])

if a failure occurs when updating multiple PMem modules, the process will continue attempting to update the remaining PMem modules requested. the firmware will not become active until the next power cycle. use the command Section [Show Firmware] to view more detailed information about the active and staged firmware. πŸ‘€

Load FW on PMem module (DimmID): Success, a power cycle is required to
activate the FW.

Load FW on PMem module (DimmID): Error (Code) - (Description)

and that's the whole page bestie!! πŸŽ€ this came from the ipmctl manual, dated 2024-04-22. go forth and firmware responsibly, mwah πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from