On Wed, Nov 06, 2024 at 10:10:08PM +0100, Janne Grunau via B4 Relay wrote:

> The changes in "Make LMB memory map global and persistent" [1] break
> mapping DMA memory in the USB xHCI driver when using the apple_dart
> iommu present on Apple silicon systems.
> 
> The IOVA space used by the u-boot driver (low 4GB) and physical memory
> do not overlap. The physical memory on this systems starts depending on
> the SoC either at 0x10_0000_0000 or 0x100_0000_0000. It make no sense to
> manage these distinct regions in a single LMB map. In addition every
> device has its own iommu and IO address space so sharing a single memory
> map between all iommu instances is not necessary.
> 
> To fix this issue restore the used subset (add, alloc and free) of the
> previous pointer based LMB interface with "io_" as prefix.
> 
> To ensure that low level lmb functions do not use the global LMB
> variable reorder lib/lmb.c so that the variable is not visible.
> 
> Tested with patches from my "Fix device removal order for Apple dart
> iommu" series [2] to fix a separate issue.
> 
> The cosmetic commit has two checkpatch warnings in existing code which I
> ignored.
> 
> [1] 
> https://lore.kernel.org/u-boot/[email protected]/
> [2] 
> https://lore.kernel.org/u-boot/[email protected]/
> 
> Signed-off-by: Janne Grunau <[email protected]>
> ---
> Changes in v2:
> - added io_lmb_teardown() and use it in dart's remove callback
> - removed leftover from copy-n-paste in io_lmb_setup() documentation
> - added Tom's Rb:
> - Link to v1: 
> https://lore.kernel.org/r/[email protected]

Sorry for the late reply here, can you please rebase on top of current
master? A few other changes / clean-ups have gone in and I can't easily
rebase and confirm the changes right now. Thanks!

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to