OpenVMS Alpha Galaxy Guide
←Previous Next→ Contents Tables Close Help
  19.3  How PCI Direct DMA Works in OpenVMS Version 7.2

  Galaxy and memory hole considerations force us to possibly
  change the placement of the Direct DMA window.

  Memory:                                        PCI
          |        |
          |        |
          |        |
  IOC$K_DIRECT_DMA_BASE_PA:
          __________-\
          |        |   \                      |        |
          |        |    \                     |        |
          |        |     \                    |        |
          |        |      \----------------  |------  |1Gb  (IOC$K_DDMA_BASE_BA)
          |-------  |-\                       |        |    \
          |        |   \                      |        |     \
          |        |    \                     |        |       IOC$K_DDMA_WIN_SIZE

          |        |     \                    |        |     /
          |        |      \----------------  |_______|2Gb-1

  It is unknown from the drivers perspective where in memory
  the base of the Direct DMA window will be.  Simply com-
  paring a buffer address against the length of the window
  will no longer be sufficient to determine if a buffer is within
  the Direct DMA window.  Also, comparing against mmg$gl_
  maxpfn will no longer guarantee that all of pool is within the
  window.  The correct cell to check is mmg$gl_max_node_
  pfn.  Additionally, alignment concerns may require an slightly
  different offset be incorporated into physical bus address
  calculations.
←Previous Next→ Contents Tables Close Help