On Thu, Apr 17, 2025 at 12:06:16PM +0100, Olivier Deprez wrote:
Hi, On this actually after checking the driver * Meanwhile the error message seems to suggest the returned value is INTID 6 ? Which doesn't correlate with hafnium HF_NOTIFICATION_PENDING_INTID = 5? Value 6 may be the return value from irq_create_of_mapping [1], not the value returned by FFA_FEATURES(FFA_FEAT_NOTIFICATION_PENDING_INT) [2]
Yes that's correct.
----------------------------------------------------------------------
From: Olivier Deprez via Hafnium hafnium@lists.trustedfirmware.org Sent: 17 April 2025 13:01 To: hafnium@lists.trustedfirmware.org hafnium@lists.trustedfirmware.org; Sungbae Yoo sungbaey@nvidia.com Cc: Jon Hunter jonathanh@nvidia.com; Byungkuk Seo bseo@nvidia.com; Sudeep Holla Sudeep.Holla@arm.com; Bertrand Marquis Bertrand.Marquis@arm.com Subject: [Hafnium] Re: Notification setup failed log in the latest Linux Hi,
Thanks for your observations.
My own perspective is that normal world shall not try to enquire about the NPI virtual interrupt id used by hafnium to inject into secure partitions. NPI virtual interrupt id shall be defined by an Hypervisor and SPMC independently and don't necessarily need to match. An hypervisor uses whichever value it defines to inject into VMs. Similarly for an SPMC and secure partitions.
Indeed.
There may have been other reasons to design the driver this way because of presence of an hypervisor (and the driver running in a VM) vs a system without an hypervisor.
I thought this was fixed in Hafnium with Commit 17c9ad327bfa ("fix(ff-a): report NPI and MEI unsupported to normal world")
I don't see any issue with upstream hafnium and hence wanted to confirm if the above commit is present or not on the setup where the issue is observed.
We're discussing this internally and will come back to you with a more precise answer.
We can do SRI XOR NPI in the driver, but I don't recall the details as why it wasn't done that way. I do remember at the time we added this, we were not clear about it.
Not sure if Bertrand remembers anything more especially if this was needed by Xen ?