[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.
