X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f From: Charles Sandmann Newsgroups: comp.os.msdos.djgpp Subject: Re: How to access two 512MB PCI cards? Date: Fri, 18 Jan 2002 22:53:29 CST Organization: Rice University, Houston TX Lines: 22 Message-ID: <3c48fbc9.sandmann@clio.rice.edu> References: NNTP-Posting-Host: clio.rice.edu X-Trace: joe.rice.edu 1011416465 25248 128.42.105.3 (19 Jan 2002 05:01:05 GMT) X-Complaints-To: abuse AT rice DOT edu NNTP-Posting-Date: 19 Jan 2002 05:01:05 GMT X-NewsEditor: ED-1.5.9 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com > Hi, I'm trying to peak/poke my two custom PCI cards that each occupy > 512MB of address space, located at hardware addresses 0xA0000000 and > 0xC0000000. Is this possible using DOS, djgpp, and cwsdpmi5? When you map memory using page tables, each 4Mb takes 4Kb of memory, and CWSDPMI puts this in DOS memory. Mapping 1Gb of physical address space would take 1Mb of page tables in 640K of DOS memory. So this won't work with the "off the shelf" stuff. It can be fixed. This may work using pmode 1.3, or I believe it may work using the CWSDPMI test WIP version I've made available for testing which uses 4Mb pages. > getting SIGSEGV errors or "could not allocate page table memory". > I can't find any examples of accessing huge areas, so I'm just flailing > about with dpmi function calls that I don't fully understand. What's > the right approach? What sequence of function calls? Thanks. If you make your code work properly with a smaller area (say 50Mb) of mapped space, first try ftp://clio.rice.edu/djgpp/csdpmi6t.zip and see if it works - or PMODE 1.3 in raw (no emm) mode. In any case, bug me with email if it doesn't and I'll fix up something that does.