On Thu, Dec 12 2024, Eric Auger <[email protected]> wrote:
> Hi Richard,
>
> On 12/12/24 14:59, Richard Henderson wrote:
>> On 12/6/24 05:21, Cornelia Huck wrote:
>>> +#define NR_ID_REGS (3 * 8 * 8)
>>> +
>>> +typedef struct IdRegMap {
>>> + uint64_t regs[NR_ID_REGS];
>>> +} IdRegMap;
>>> +
>>
>> Where does the NR_ID_REGS come from? In particular the * 3?
>> IIRC, all of the id registers are in op0=3, op1=0, crn=0, crm={0-7},
>> op2={0-7}.
>
> According to the KVM API and code,
>
> "The Feature ID space is defined as the AArch64 System register space
> with +op0==3, op1=={0, 1, 3}, CRn==0, CRm=={0-7}, op2=={0-7}."
>
>
> hence that choice
>
> See:
> https://lore.kernel.org/all/[email protected]/
>
> Definitively we can add a comment
I've added
/*
* ID registers in op0==3, op1=={0,1,3}, crn=0, crm=={0-7}, op2=={0-7},
* as used by the KVM_ARM_GET_REG_WRITABLE_MASKS ioctl call.
*/