Hung-Te Lin has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/42029 )
Change subject: drivers/vpd: Add a function that reads BIOS version from a VPD variable ......................................................................
Patch Set 6:
Our plan for VPD usage would be the place where we store the BIOS setting variables (e.g., turbo mode on/off, FSP UPD values .,etc). CB:41732 mentioned this
VPD stands for Vital Product Data, and is where you put "device-specific data", especially those user will want to modify, or those only decided at manufacturing time (not firmware build time).
If you are making something for a whole family of firmware and won't be changed after firmware is flashed on device, that should be in mainboard Kconfig, or a CBFS file.
the RO_VPD would hold the default values and RW_VPD can be updated from user to overwrite the values under Linux.
Particular for that case (allowing user to turn on/off some settings) I think it may be fine to use VPD. That's the reasonable way to use it.
So it's likely we would update VPD for different versions.
That is the part I don't understand.
If you want to allow users overriding some settings, then you definitely can't update/overwrite VPD when updating firmware.
Also, for "version of firmware", that really doesn't sound like something user will want to override, or provisioned in manufacturing process.