[Compuware Corporation] [Compuware NuMega home page]                [NuMega Lab]
[teal]

 [DriverStudio]    [Image][Image]
  · Home
 [Driver Products]        Driver Technical Tips
  · DriverStudio          Notes on Memory Mapped Devices
  · DriverBundle
  · Previews              Memory mapped devices are those that decode regions
  · Compatibility         of the memory address space on a peripheral bus. A
 [Downloads]  ·           classic example is a VGA, which maps its display RAM
                          to physical address 0xA0000.
 Wizards
  · Utilities             The ISA bus is a poor choice for memory mapped
  · NT source             devices, because it is limited to 24 address bits. On
 examples                 most PCs these days, the entire space above 1 MB ( up
  · VxD source            to 16 MB) is occupied by system RAM, leaving no room
 examples                 for devices. Some BIOSes have a switch that leaves a
  · WDM source            "hole" at 15 MB, thereby enabling an ISA device an
 examples                 available window. However, this is prone to a host of
 [Resources]  ·           configuration problems.
 Technical papers
  · Useful links          In theory, Windows NT would accommodate a motherboard
  · Technical tips        that could map the ISA bus to a higher address in the
 [Support]  ·             physical address space of the CPU. NT requires device
                          drivers to translate peripheral bus addresses to
 Support                  physical CPU space by calling HalTranslateBusAddress.
  · Knowledge base        Once the CPU space physical address is known, the
  · Problem               driver can generate a virtual address with
 submission               MmMapIoSpace. However, in reality, PCI motherboards
  · Product               map the ISA bus at zero, and pass bus transactions to
 registration             it when the local bus or PCI bus times out.
  · Release notes
 [Shop NuMega]  ·         PCI bus is better suited for memory mapped devices.
 Buy it!                  In fact, a common problem on NT is that a PCI device
  · Price list            requires so large a physical address window that NT
  · How to buy            cannot allocate sufficient page table entries (PTEs)
  · Sales offices         to map the entire space. It is not unusual for a
                          device driver to call MmMapIoSpace requesting the
                          mapping of hundreds of megabytes. For each megabyte
 [Y2K Compliance]         of device space to be mapped, the system requires 1KB
                          of system memory for page table entries. For large
                          regions this can be significant, and often
 [More information]       MmMapIoSpace fails because of this. To overcome the
                          problem, the system administrator must adjust a
                          registry setting
                          (HKLM\System\CurrentControlSet\Control\Session
                          Manager\Memory Management\SystemPages) so that NT
                          reserves sufficient memory for mapping devices.

                          Back to technical tip start page.

  DriverCentral · DriverStudio · Free downloads · Resources · Support and
                          Services · Shop NuMega
     Compuware NuMega · Tel: +1 603 578-8400 · Updated: 9 August 1999 ·
                      Problems? Contact our webmaster.