Motorola MCP750 Specifications Page 203

  • Download
  • Add to my manuals
  • Print
  • Page
    / 344
  • Table of contents
  • BOOKMARKS
  • Rated. / 5. Based on customer reviews
Page view 202
Supporting Direct Memory Access (DMA)
12-5
else {
/*
* we must add another chain pair
*
* return an error if there are too many discontiguous
* memory areas to fit in an HSA data chain.
*/
if (chn >= HSHD_MAXCHAIN)
return (IMERR_XFER_TOO_LONG);
/*
* construct a new chain pair here
* always set the LWC_DATA_CHAIN flag indicating
* that there are more pairs in the list.
*/
mcb->hdw.chain[chn].ta = pa;
mcb->hdw.chain[chn].tc = bc | LWC_DATA_CHAIN;
/*
* point to the next chain pair
* and remember the last physical address/bc from
* this pair.
*/
chn++;
prevpa = pa;
prevbc = bc;
}
/*
* increment the virtual buffer pointer and decrement
* the total length indicator
*/
va += bc;
len -= bc;
} while (len > 0);
/*
* on the way out, turn off the LWC_DATA_CHAIN
* bit on the last pair in the list.
* we are guaranteed that there will ALWAYS be
* at least 1 chain on the list (chn >= 1)
*/
mcb->hdw.chain[chn-1].tc &= ~LWC_DATA_CHAIN;
/*
* return success
*/
return (0);
}
24-Bit DMA Devices 12
If the device uses a 32-bit DMA controller, it will be able to address any area of physical
memory on the Series 6000 platform. However, if the device provides only a 24-bit DMA
controller, the user or kernel area involved in the DMA transfer will not be accessible if
the area’s physical memory address is greater than 16 MB. A statically allocated kernel
buffer may be the best solution in this case.
Page view 202
1 2 ... 198 199 200 201 202 203 204 205 206 207 208 ... 343 344

Comments to this Manuals

No comments