Download raw body.
ice 64 bit dma
> Date: Tue, 24 Feb 2026 20:03:42 +0100
> From: Alexander Bluhm <bluhm@openbsd.org>
>
> Hi,
>
> In my tests ice works with 64 bit DMA transfers.
>
> ok?
Linux driver has:
err = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));
and this is modern PCIe hardware, so I expect no issues.
ok kettenis@
> Index: dev/pci/if_ice.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/dev/pci/if_ice.c,v
> diff -u -p -r1.67 if_ice.c
> --- dev/pci/if_ice.c 19 Feb 2026 10:15:36 -0000 1.67
> +++ dev/pci/if_ice.c 24 Feb 2026 19:01:38 -0000
> @@ -1315,13 +1315,13 @@ ice_alloc_dma_mem(struct ice_hw *hw, str
>
> mem->tag = sc->sc_dmat;
>
> - err = bus_dmamap_create(mem->tag, size, 1, size, 0, BUS_DMA_NOWAIT,
> - &mem->map);
> + err = bus_dmamap_create(mem->tag, size, 1, size, 0,
> + BUS_DMA_NOWAIT | BUS_DMA_64BIT, &mem->map);
> if (err)
> goto fail;
>
> err = bus_dmamem_alloc(mem->tag, size, 1, 0, &mem->seg, 1, &nsegs,
> - BUS_DMA_NOWAIT | BUS_DMA_ZERO);
> + BUS_DMA_NOWAIT | BUS_DMA_ZERO | BUS_DMA_64BIT);
> if (err || nsegs != 1)
> goto fail_1;
>
>
>
ice 64 bit dma