How to check the health of the NVRAM/if the garbage collection is still working:
There is a extremely simple way (simple here as in not need to know how the NVRAM works/check free space indicators/validate checksums and etc) to check if the garbage collection failed and the need to reflash with the clean dump:
- Dump the BootROM with ROMTool
- Open the dump with UEFITool NE A63, the most recent release of UEFITool NE that is compatible with MacPro5,1 BootROM images.
- Go to EFISystemNvDataFvGUID, open it
- Go to the first VSS store, open it:
- Click Free space, it's after the last variable/VSS entry:
- Check on the right panel the Full size:
A clean reconstructed never booted image have the
Free Space Full Size as 65448 - this is for a fully empty store:
A normal working single CPU Mac Pro with 3 DIMMs have the
Free Space Full Size usually around 45000 to 40000 - this is for a healthy working dump:
A normal working dual CPU Mac Pro with 8 DIMMs (DIMM configuration data and SPD caches stored by MemoryConfig NVRAM entries are what takes the most space inside the VSS store) have the Free space Full size around 35000 to 30000 - this is for a healthy working dump:
A Mac Pro that the garbage collection is not working anymore will have less than 1/3 of
Free Space Full Size available, less than 22000 bytes available. Any less than this and you usually start having problems and could even brick your Mac Pro. This is critical with Big Sur and Monterey OTA Software Updates, but also happened in the past with previous macOS versions (examples
#1,
#2) because the number of variables saved while staging the software updates.
This one has just 8921 and already corrupted the NVRAM volume:
Examples of corruption:
Where is the secondary VSS store?
This dump below had two different failures, a corrupt circular log and failed garbage collection on primary VSS store where after the corrupt point the circular log was identified as padding, and the secondary VSS store completely trashed and not even being identified by UEFITool anymore. The owner of this early-2009 got it repaired in the nick of time before bricking it.
If you found that your NVRAM volume have any of the issues above and you need a BootROM reconstruction service, send me a PM.
Advice after several bricks over the years:
First a fact, MacPro5,1 NVRAM was designed back in 2008ish, when the NVRAM was used sparingly. Now we are in 2022 and the NVRAM is used constantly for all sort of things, like all sort the iCloud variables (for example, the Wi-Fi credentials for the wireless networks that you connect with your iPhone and MacBooks are also saved inside the Mac Pro NVRAM) to the several variables needed to bootstrap software updates when you have sealed containers (BigSur and Monterey).
The NVRAM is now the Achilles heel of our MacPro5,1 and I personally don't wait for the garbage collection to fail. Now I have a recurring appointment on my Calendar to flash the never booted BootROM image every 3 months. Since starting doing it, I never had a brick or any NVRAM problems - even with all my crazy tests that bricked so much times my backplanes in the past. Do the same.
Btw, flashing a clean dump is a process that is a lot less wear intensive to the NAND cells than the whole garbage collection process. Only the sectors that need to be erased/re-written will be when you flash the clean dump, while the garbage collection process have to copy the valid circular log to the secondary VSS store, erase the primary, write to it, erase the secondary and etc.[/LIST]