skip book previous and next navigation links
go up to top of book: HP OpenVMS Alpha Partitioning and Galaxy Guide HP OpenVMS Alpha Partitioning and Galaxy Guide
go to beginning of chapter: OpenVMS Galaxy Device Drivers OpenVMS Galaxy Device Drivers
go to previous page: How PCI Direct-Mapped DMA Works in Current Versions of OpenVMS How PCI Direct-Mapped DMA Works in Current Versions of OpenVMS
go to next page: OpenVMS Galaxy CPU Load Balancer ProgramOpenVMS Galaxy CPU Load Balancer Program
end of book navigation links

IOC$NODE_DATA Changes to Support Nonzero Direct-Mapped DMA Windows  



To alleviate this problem, new function codes have been added to IOC$NODE_DATA. Here is a list of all the codes relating to direct-mapped DMA, and a description of what the data means.

Code Description
IOC$K_DIRECT_DMA_BASE
This is the base address on the PCI side, or bus address. There is a synonym for this function code called IOC$K_DDMA_BASE_BA. A 32-bit result will be returned.
IOC$DIRECT_DMA_SIZE
On non-Galaxy machines, this returns the size of the direct-mapped DMA window (in megabytes). On a system where the direct-mapped DMA window does not start at zero, the data returned is zero, implying that no direct-mapped DMA windows exist. A 32-bit result will be returned.
IOC$K_DDMA_WIN_SIZE
On all systems, this will always return the size of the direct-mapped DMA window (in megabytes). A 32-bit result will be returned.
IOC$K_DIRECT_DMA_BASE_PA
This is the base physical address in memory of the direct-mapped DMA window. A 32-bit result will be returned.

The address returned with the IOC$K_DIRECT_DMA_BASE_PA code is necessary to compute the offset. (This usually used to be the 1 GB difference between the memory PA and the bus address.) The offset is defined as the signed difference between the base bus address and the base memory address. This is now not necessarily 1 gigabyte.


go to previous page: How PCI Direct-Mapped DMA Works in Current Versions of OpenVMS How PCI Direct-Mapped DMA Works in Current Versions of OpenVMS
go to next page: OpenVMS Galaxy CPU Load Balancer ProgramOpenVMS Galaxy CPU Load Balancer Program