DDI_DMA_SET_SBUS64(9F) | Kernel Functions for Drivers | DDI_DMA_SET_SBUS64(9F) |
ddi_dma_set_sbus64 - allow 64-bit transfers on SBus
#include <sys/ddi.h> #include <sys/sunddi.h> int ddi_dma_set_sbus64(ddi_dma_handle_t handle, uint_t burstsizes);
illumos DDI specific (illumos DDI).
handle
burstsizes
ddi_dma_set_sbus64() informs the system that the device wishes to perform 64-bit data transfers on the SBus. The driver must first allocate a DMA handle using ddi_dma_alloc_handle(9F) with a ddi_dma_attr(9S) structure describing the DMA attributes for a 32-bit transfer mode.
burstsizes describes the possible burst sizes the device's DMA engine can accept in 64-bit mode. It may be distinct from the burst sizes for 32-bit mode set in the ddi_dma_attr(9S) structure. The system will activate 64-bit SBus transfers if the SBus supports them. Otherwise, the SBus will operate in 32-bit mode.
After DMA resources have been allocated (see ddi_dma_addr_bind_handle(9F) or ddi_dma_buf_bind_handle(9F)), the driver should retrieve the available burst sizes by calling ddi_dma_burstsizes(9F). This function will return the burst sizes in 64-bit mode if the system was able to activate 64-bit transfers. Otherwise burst sizes will be returned in 32-bit mode.
ddi_dma_set_sbus64() returns:
DDI_SUCCESS
DDI_FAILURE
ddi_dma_set_sbus64() can be called from user, kernel, or interrupt context.
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Architecture | SBus |
attributes(7), ddi_dma_addr_bind_handle(9F), ddi_dma_alloc_handle(9F), ddi_dma_buf_bind_handle(9F), ddi_dma_burstsizes(9F), ddi_dma_attr(9S)
64-bit SBus mode is activated on a per SBus slot basis. If there are multiple SBus cards in one slot, they all must operate in 64-bit mode or they all must operate in 32-bit mode.
January 1, 1997 | OmniOS |