Use the busdma API to allocate all DMA-able memory.
The MLX5 driver has four different types of DMA allocations which are
now allocated using busdma:
- The 4K firmware DMA-able blocks. One busdma object per 4K allocation.
- Data for firmware commands use the 4K firmware blocks split into four 1K blocks.
- The 4K firmware blocks are also used for doorbell pages.
- The RQ-, SQ- and CQ- DMA rings. One busdma object per allocation.
After this patch the mlx5en driver can be used with DMAR enabled in
the FreeBSD kernel.
MFC after: 1 week
Sponsored by: Mellanox Technologies