Cleanup the alpha bus dma code a bit and sync it up with i386.  Changes include: - Honor alignment and boundary restrictions on DMA tags by using bounce   pages for misaligned buffers and not coalescing pages if the resulting   segment would cross a boundary. - Teach the _bus_dmamap_load_buffer() helper function to use bounce pages   when needed and change bus_dmamap_load() to use the helper function   instead of largely duplicating it.  As a side effect, this enables bounce   page support for the other load routines (load_mbuf(), load_mbuf_sg(),   and load_uio()).
Cleanup the alpha bus dma code a bit and sync it up with i386.  Changes
include:
- Honor alignment and boundary restrictions on DMA tags by using bounce
  pages for misaligned buffers and not coalescing pages if the resulting
  segment would cross a boundary.
- Teach the _bus_dmamap_load_buffer() helper function to use bounce pages
  when needed and change bus_dmamap_load() to use the helper function
  instead of largely duplicating it.  As a side effect, this enables bounce
  page support for the other load routines (load_mbuf(), load_mbuf_sg(),
  and load_uio()).

Honoring the boundary restrictions partially helps with the Alpha ATA DMA
problem.  More work is needed for that however (and forthcoming).

PR:		alpha/75317
Tested by:	wilko
Approved by:	re (kensmith)

jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase