www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/11/15/06:32:04

Date: Sun, 15 Nov 1998 13:30:17 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: Shawn Hargreaves <shawn AT talula DOT demon DOT co DOT uk>
cc: djgpp AT delorie DOT com
Subject: Re: Disable DPMI memory caching?
In-Reply-To: <+M9M3kANnJT2EwOV@talula.demon.co.uk>
Message-ID: <Pine.SUN.3.91.981115132957.1381g-100000@is>
MIME-Version: 1.0
Reply-To: djgpp AT delorie DOT com

On Fri, 13 Nov 1998, Shawn Hargreaves wrote:

> with the use of memory-mapped IO registers that are located in the low
> megabyte of physical memory (0xB8000). At the moment the CPU is caching
> any writes to these registers, which obviously causes the hardware to
> miss a lot of commands!

Does this happen on several types of motherboards?  It surely seems as
a chipset bug to me!  The motherboard should have no business caching
memory regions mapped into peripheral devices, ever.

> Is there any way to disable caching for a range of conventional memory
> addresses? I can't find any mention of this in the DPMI spec

This is not a DPMI issue, so the DPMI spec is IMHO the wrong place to
look for a solution.

Many motherboards have a BIOS setup program that allows to
enable/disable caching of specific memory address regions.  Maybe
somebody has set that machine to cache those areas?  If such an option
is available, you could use it to explicitly disable caching.

Another possibility might be that some memory manager shadows the B800
region, and the caching actually happens in the remapped addresses.
To see whether this is the cause, boot into plain-vanilla DOS
configuration (empty CONFIG.SYS and AUTOEXEC.BAT) and see if the
problem goes away.  If it does, fiddling with the memory manager
command line should do the trick.

Shadowing is also sometimes controlled from the BIOS setup, so looking
there might also provide some hints.

Finally, I think I saw a long time ago some command (like a write to
some port?) that would cause a chipset to disable caching a givent
memory region.  If my memory doesn't fool me, you should be able to
find the details in the data sheets of the Intel chips used in
chipsets (I think everybody else mimics them).

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019