Hi Folks,
It's first time to raise questions here, not sure it's the right place for discussion on feature planning and support here. The background is our RHEL distributions like RHEL10 supports 64KB (base) page size for arm64, which isn't supported by upstream TF-RMM yet. So the question is do we have a plan to support 64KB granule size and the estimated time for it to happen?
Looking at the latest TF-RMM upstream code, 64KB granule size isn't supported as I can understand.
- In smc_rmm_config_set(), handler of RMI RMM_CONFIG_SET, the configured granule size should be RMI_GRANULE_SIZE, which is hardcoded to 4KB like below.
/* The implementation currently supports only the 4 KiB RMI Granule size. */ #define RMI_GRANULE_SIZE RMI_GRANULE_SIZE_4KB
- 'struct granule' represents a granule in TF-RMM, whose length is 16-bits. Bits[0 - 9] are curved out for the reference count, which isn't sufficient when the granule is taken as stage-2 RTT if the granule size is 64KB. In this specific case, Bits[0 - 13] are needed for the reference count.
- The translation regimes are sticky to 4KB. For example, option 'XLAT_GRANULARITY_SIZE_SHIFT' only supports 4KB at present.
if(NOT(XLAT_GRANULARITY_SIZE_SHIFT EQUAL "12")) message(FATAL_ERROR "Only 4K granularity is supported at the moment") endif()
Thanks, Gavin