Using DMA_CONTIGUOUS
The DMA_CONTIGUOUS flag in the d_map_init service or the d_map_init_ext service is the preferred way for the drivers to ask for contiguous bus addresses.
The other way is the old model of drivers explicitly using rmalloc() to guarantee contiguous allocation during boot. However, with the advent of PCI Hot Plug devices, the rmalloc reservation does not add a device after boot. If a PowerPC® driver determines that the device was dynamically added, the driver can use the DMA_CONTIGUOUS flag to ensure that a contiguous list of bus addresses is generated because no prior resources were reserved with rmalloc.