ok kettenis@
Chris Cappuccio [[email protected]] wrote:
> CVSROOT: /cvs
> Module name: src
> Changes by: [email protected] 2026/02/23 19:03:07
>
> Modified files:
> sys/dev/acpi : acpidmar.c
>
> Log message:
> Make acpidmar useful for general IOMMU use on amd64.
>
> 1. Remove panics in favor of error returns
> 2. Make unmap ordering clear (PTEs > invalidate IOTLB > free IOVA)
> 3. Add locking so concurrent mappings cannot race installing intermediate
> page table levels (when marked MPSAFE)
>
> For AMD-Vi:
>
> 1. Add cache flush for page tables and IVHD command/event data
> structures (no-op on coherent IOMMUs)
> 2. Add per-page/range IOTLB invalidation
> 3. Fix device/interrupt-table invalidations to be keyed by requester device ID
> 4. Move batch completion variable from stack to softc
>
> For Intel VT-d:
>
> 1. Finish queued invalidation (QI) with batching
> 2. Add page-selective invalidation (PSI) with address-mask coalescing
>
> And:
>
> Identity map the APIC MSI adress window per-domain so interrupts work.