On 13/02/2026 14:51, Jan Beulich wrote:
> On 13.02.2026 12:37, Oleksii Moisieiev wrote:
>> From: Grygorii Strashko <[email protected]>
>>
>> Add chained handling of assigned DT devices to support access-controller
>> functionality through SCI framework, so a DT device assign request can be
>> passed to firmware for processing and enabling VM access to the requested
>> device (for example, device power management through SCMI).
>>
>> The SCI access-controller DT device processing is called before the IOMMU
>> path. It runs for any DT-described device (protected or not, and even when
>> the IOMMU is disabled). The IOMMU path remains unchanged for PCI devices;
>> only the DT path is relaxed to permit non-IOMMU devices.
>>
>> This lets xl.cfg:"dtdev" list both IOMMU-protected and non-protected DT
>> devices:
>>
>> dtdev = [
>>      "/soc/video@e6ef0000", <- IOMMU protected device
>>      "/soc/i2c@e6508000", <- not IOMMU protected device
>> ]
>>
>> The change is done in two parts:
>> 1) call sci_do_domctl() in do_domctl() before IOMMU processing. If
>> sci_do_domctl() reports an error other than -ENXIO, treat it as
>> authoritative and skip the IOMMU path. A return of -ENXIO indicates
>> that SCI did not handle the request and is ignored, allowing the
>> existing IOMMU handling to run unchanged;
>> 2) update iommu_do_dt_domctl() to check for dt_device_is_protected() and
>> not fail if DT device is not protected by IOMMU. iommu_do_pci_domctl
>> doesn't need to be updated because iommu_do_domctl first tries
>> iommu_do_pci_domctl (when CONFIG_HAS_PCI) and falls back to
>> iommu_do_dt_domctl only if PCI returns -ENODEV.
>>
>> The new dt_device_is_protected() bypass in iommu_do_dt_domctl only
>> applies to DT-described devices; SCI parameters are carried via DT
>> nodes. PCI devices handled by iommu_do_pci_domctl do not carry DT/SCI
>> metadata in this path, so there is no notion of “SCI parameters on a
>> non-IOMMU-protected PCI device” for it to interpret or to skip. The PCI
>> path should continue to report errors if assignment cannot be performed
>> by the IOMMU layer. So we should leave iommu_do_pci_domctl unchanged; the
>> SCI/DT-specific relaxations belong only in the DT path. Also SCI handling
>> only exists when DT is present.
>>
>> Signed-off-by: Grygorii Strashko <[email protected]>
>> Signed-off-by: Oleksii Moisieiev <[email protected]>
> Mind me asking where my A-b went?
>
> Jan
Sorry, missed that... :( Will add in the next patch series...

---
Oleksii

Reply via email to