www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2002/01/19/03:05:48

X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f
From: GammaBurst <buzz AT off DOT spambots>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: How to access two 512MB PCI cards?
Organization: -
Message-ID: <gm7i4usv47ojhiqc28idtka5ic9g46s7q6@4ax.com>
References: <s1lh4uc493532cik4buor7829b6gchg8m1 AT 4ax DOT com> <3c48fbc9 DOT sandmann AT clio DOT rice DOT edu>
X-Newsreader: Forte Agent 1.8/32.548
MIME-Version: 1.0
Lines: 45
NNTP-Posting-Date: Sat, 19 Jan 2002 01:58:20 CST
X-Trace: sv3-HGRZ1sPw+2dDgPQG9c9A4l89oWFDiP9pZ4FqqLYOFzuab1rMJmBPraGEb9sqAUtopYnCldMabLpBtBp!MaImRHmZ39JjAVrCyyenx5UjYVWS59jxzdnnbijCtCf++Dtz76Q0HngjVWCTa1wYsuDQ
X-Complaints-To: abuse AT GigaNews DOT Com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-Info: Please be sure to forward a copy of ALL headers
X-Abuse-Info: Otherwise we will be unable to process your complaint properly
Date: Sat, 19 Jan 2002 07:58:20 GMT
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Success! Both PMODE 1.3 and CWSDPMI 6b give me full access to my two
512MB PCI cards. Excellent utilities, thank you.

Just for fun, I tried mapping my entire non-DOS memory from 0x00100000
to 0xFFFFFFFF into one segment, and then I peek bytes from various
addresses. PMODE 1.3 works great. CWSDPMI 6b works too if I restrict
my segment to 0x20000000 to 0xFFFFFFFF. For some reason, a wider
segment provokes SIGSEGV when I peek bytes. Oh well, it was just an
experiment.

I'm calling these functions, in this order:
  __dpmi_physical_address_mapping()
  __dpmi_allocate_ldt_descriptors()
  __dpmi_set_segment_base_address()
  __dpmi_set_segment_limit()
  _farpeekb()
  __dpmi_free_ldt_descriptor()
  __dpmi_free_physical_address_mapping()


On Fri, 18 Jan 2002 22:53:29 CST, Charles Sandmann
<sandmann AT clio DOT rice DOT edu> wrote:
>> 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.

- Raw text -


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