...
> Would it help to show them in hex?
>
> As of ACPI 6.2 Errata A, the following values are valid for the bottom
> two bits:
>
> 0x2 - Memory Controller Flush to NVDIMM Durability on Power Loss Capable.
> 0x3 - CPU Cache Flush to NVDIMM Durability on Power Loss Capable.
Yes, that helps (unless the parser for that command-line does not
accept hex values).
It would also help to make the text be:
"CPU Cache and Memory Controller Flush"
...
> > So, there should be a way to specify a highest_cap value to convey that
> > some of the upper capabilities bits are valid and contain 0.
>
> Right, I'll make this dynamic based on the capabilities value passed in by
> the user. That's a much better solution, thanks. This should cover all the
> same cases as you have outlined above, without burdening the user with yet
> another input value.
Automatically determining the highest bit that the user wants to set to 1
should be easy, and will probably be the most common case.
It's harder to let the user set some upper bits to 0 but also have them
within the highest_cap range. Since this will be less common, the syntax
could be more convoluted, like an optional highest_cap argument
to override the automatically generated value.
For example, to report bits 7, 1 and 0 are all set to 1:
-machine pc,accel=kvm,nvdimm,nvdimm-cap=0x83
would automatically set highest_cap to 7.
To report bit 7 set to 0 while bits 1 and 0 are set to 1:
-machine pc,accel=kvm,nvdimm,nvdimm-cap=0x3,nvdimm-highest-cap=7