X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f From: GammaBurst Newsgroups: comp.os.msdos.djgpp Subject: Re: How to access two 512MB PCI cards? Organization: - Message-ID: References: <3c48fbc9 DOT sandmann AT clio DOT rice DOT edu> X-Newsreader: Forte Agent 1.8/32.548 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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 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.