From: Mark Kettenis Subject: Re: ice 64 bit dma To: Alexander Bluhm Cc: tech@openbsd.org Date: Tue, 24 Feb 2026 20:52:52 +0100 > Date: Tue, 24 Feb 2026 20:03:42 +0100 > From: Alexander Bluhm > > 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; > > >