[PATCH 16/16] efi/arm64: Implement ARM64 DRTM in the stub

Jason Gunthorpe jgg at nvidia.com
Sat Sep 26 11:45:58 PDT 2026


On Fri, Sep 25, 2026 at 11:37:09AM -0700, Jonathan Cameron wrote:
> > +efi_status_t efi_drtm_prepare(void)
> > +{
> > +	s64 feature_status;
> > +	u16 major, minor;
> > +	s32 status;
> > +
> > +	if (efi_drtm_policy == EFI_DRTM_OFF)
> > +		return EFI_SUCCESS;
> > +
> > +	if (!efi_arm64_psci_smccc_compatible())
> > +		return efi_drtm_failure();
> > +
> > +	/* VERSION must be the first DRTM call. */
> 
> Words like 'must' should be backed by a specific spec reference.
> I couldn't immediately fine one other than common sense suggesting it should
> be called to check we have a version we understand ho to talk to.

	/*
	 * v1.4B section 3.2.1 "DRTM_VERSION usage" explains that a new major
	 * ABI version may "Change behavior of existing functions". Verify the
	 * major version before calling anything so we don't trigger unknown
	 * behavior.
	 */
	status = arm_drtm_version(&major, &minor); 

> > +	/*
> > +	 * See arch/arm64/kernel/vmlinux.lds.S for the DRTM Memory layout. After
> > +	 * the DLME we choose to place the Normal World DCE region followed by
> > +	 * the aligned DRTM_PARAMETERS structure.
> > +	 */
> > +	memset((void *)dlme_start, 0, efi_drtm_get_extra_size());
> 
> Is that efi_drtm_get_extra_size() adding much? 

Yeah, it is the one place we compute the extra amount that was
allocated. How about:

	/*
	 * For robustness zero all the trailing space at the end of the
	 * alocation. This contains the DRTM_PARAMETERS structure too, so
	 * must be done before filling it.
	 */
	memset((void *)dlme_start, 0, efi_drtm_get_extra_size());


> Maybe it is worth keeping for the big comment in there, but it does
> feel like that and what we have here could be combined.

efi_drtm_get_extra_size() is called by the generic EFI code, I can't
remove it.

> > +	/*
> > +	 * DEN0113 section 3.4 returns from DYNAMIC_LAUNCH only on error. Boot
> 
> I'd use a spec version for references + ideally title of section.
> As much as folk may try, sometimes these things move around.

I tightened all of this

Thanks,
Jason



More information about the linux-riscv mailing list