[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Linear address mapping
- To: Mailing List Recipients <pci-sig-request@znyx.com>
- Subject: RE: Linear address mapping
- From: Jim Ulrich <jimu@pathlight.com>
- Date: Mon, 23 Sep 1996 13:44:17 -0400
- Resent-Date: Mon, 23 Sep 1996 13:44:17 -0400
- Resent-From: pci-sig-request@znyx.com
- Resent-Message-Id: <"PNczX.0.8V4.FqiHo"@dart>
- Resent-Sender: pci-sig-request@znyx.com
----------
From: Tobias Stumber[SMTP:tobias.stumber@fr.bosch.de]
Sent: Monday, September 23, 1996 10:39 AM
To: Mailing List Recipients
Subject: Linear address mapping
Hello PCI Experts !
I'm developing a pci card with on board dram. This memory is
mapped directly into the pci address space.
Using watcom c++ with the dos4gw extender I can get the linear
address which accesses the 'pci ram' by calling the DPMI Int31h
0800h with the physical address of the bar.
Now I want to initiate dma tranfers which copy parts of the 'pci ram'
into the pc main memory. But the only address I have is the linear
address to which data should be written.
Is there an opposite to the DPMI Int31h 0800h that gives the physical
address of a linear one ? Or what address needs the pci controller
to post at the pci bus so that the data is stored where I want it
to be ?
Regards
Tobias
------------------------
If you are allocating the buffers on the host PC then try using the
DPMI function INT.31 FUNC.0100 to allocate your buffers.
to call:
AX = 0x0100
BX = number of paragraphs (16-byte chunks) to allocate
returns:
AX - Real mode segment of allocated block
DX - First selector for allocated block, if a 16-bit
program calls this function multiple
contiguous selectors will be allocated.
from this you should be able to calculate the physical address of
the memory block.
Jim Ulrich
Pathlight Technology
jimu@pathlight.com
) °