delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2006/09/07/04:47:45

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
From: "Rod Pemberton" <do_not_have AT bitfoad DOT cmm>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: 64 bit access under DOS?
Date: Thu, 7 Sep 2006 04:38:03 -0400
Organization: Corriga.net news service
Lines: 53
Message-ID: <edolud$a5q$1@main.corriga.net>
References: <44ff387a$0$19628$88260bb3 AT free DOT teranews DOT com>
NNTP-Posting-Host: c-68-60-59-250.hsd1.mi.comcast.net
X-Trace: main.corriga.net 1157618445 10426 68.60.59.250 (7 Sep 2006 08:40:45 GMT)
X-Complaints-To: postmaster AT corriga DOT net
NNTP-Posting-Date: Thu, 7 Sep 2006 08:40:45 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1437
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

"Ivor Bowden" <ivorlist AT peritek DOT com> wrote in message
news:44ff387a$0$19628$88260bb3 AT free DOT teranews DOT com...
> Hi,
>
<snip>
> Currently I am using the _farpeek and
> _farpoke routines, after mapping in the physical address, and can test
> byte, word and long accesses.
<snip>
> I would like the memory test to function in 64 bit mode on the PCI bus
> for hardware that supports it
> I could use something like _farpeekll / _farpokell (long long).

Since, (1) the code is already using _farpeek/poke and (2) it runs under
Windows, using functions which work using the same manner of memory
accessing is probably the best idea. (i.e., don't switch to address
wrap-around now which may not work under Windows...)

> The other thought I had was to set up some assembly routines to use the
> AMD64 instructions.
>

My understanding is that you are wanting a single 64-bit read or write on
the actual hardware data lines, which is/should be a 64-bit data bus.

If so, then you'll need to write your own routines using AMD64 (or
equivalent Intel instructions depending on the CPU).  You'll also have to
figure out how to use those instructions either (1) in 32-bit mode (possibly
using instruction overrides?) or (2) by switching into and out of 64-bit
mode without affecting executing 32-bit code such as the DPMI host or
Windows.

Also, it should be possible effectively test a 64-bit read/write on a 64-bit
bus by using two 32-bit reads/writes (_farpeekl/_farpokel) to consecutive
addresses.  Of course, either (1) half the data lines should be activated
for each read/write and you'd need to monitor two memory/port accesses
instead of one or (2) the hardware may combine both accesses into a single
64-bit access (bonus!).  This is specific knowledge you or the manufacturer
should have or you may be able to determine with your test equipment.

I really can't help much further.  You'll probably need to post to a few
assembly language groups (AMD64 instructions) and a few electrical
engineering groups (test hardware/logic analyzer) for more accurate
answers...  For assembly, I'd try alt.lang.asm and comp.lang.asm.x86, but I
haven't seen too many who seem to have much AMD64 knowledge.  I don't have
any suggestions for EE groups.


Rod Pemberton




- Raw text -


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