[PATCH v18 3/7] firmware: arm_rmm: Configure the RMM with the host's page size
Suzuki K Poulose
suzuki.poulose at arm.com
Sun Sep 13 23:34:17 PDT 2026
On 14/09/2026 02:21, Gavin Shan wrote:
> On 9/12/26 6:36 PM, Suzuki K Poulose wrote:
>> From: Steven Price <steven.price at arm.com>
>>
>> RMM v2.0 brings the ability to set the RMM's granule size. Check the
>> feature registers and configure the RMM so that it matches the host's
>> page size. This means that operations can be done with a granularity
>> equal to PAGE_SIZE.
>>
>> Reviewed-by: Suzuki K Poulose <suzuki.poulose at arm.com>
>> Signed-off-by: Steven Price <steven.price at arm.com>
>> Signed-off-by: Suzuki K Poulose <suzuki.poulose at arm.com>
>> ---
>> Changes since v17:
>> * Move rmi_config_set() out of the header file.
>> * Print the error message for rmi_config_set if it fails
>> Changes since v15:
>> * Actually check the feature register for the host's page-size
>> support.
>> Changes since v14:
>> * Move the implementation into drivers/firmware/arm_rmm.
>> Changes since v13:
>> * Moved out of KVM.
>> ---
>> drivers/firmware/arm_rmm/rmi.c | 79 ++++++++++++++++++++++++++++++++++
>> 1 file changed, 79 insertions(+)
>>
>> diff --git a/drivers/firmware/arm_rmm/rmi.c b/drivers/firmware/
>> arm_rmm/rmi.c
>> index 2fd538c937dca..5b0e342ce3d58 100644
>> --- a/drivers/firmware/arm_rmm/rmi.c
>> +++ b/drivers/firmware/arm_rmm/rmi.c
>> @@ -35,6 +35,25 @@ static int rmi_features(unsigned long index,
>> unsigned long *out)
>> return args.a0;
>> }
>> +/**
>> + * rmi_rmm_config_set() - Configure the RMM
>> + * @cfg_ptr: PA of a struct rmm_config
>> + *
>> + * Sets configuration options on the RMM.
>> + *
>> + * Return: RMI return code
>> + */
>> +static int rmi_rmm_config_set(unsigned long cfg_ptr)
>> +{
>> + struct arm_smccc_1_2_regs regs = {
>> + SMC_RMI_RMM_CONFIG_SET, cfg_ptr,
>> + };
>> +
>> + rmi_smccc_invoke(®s);
>> +
>> + return regs.a0;
>> +}
>> +
>
> The comments for rmi_rmm_config_set() can be dropped since its logic is
> simply enough and
> the code is self-explainning. Besides, I would move this right before
> its only caller
> rmi_configure().
Ack
>
> I would suggest drop this function by combining its logics into the only
> caller
> rmi_configure(), seeing below for more details.
That looks a bit odd in the middle of a function, given the argument
setting. I have moved it closer to the configure().
Cheers
Suzuki
More information about the linux-arm-kernel
mailing list