Hi!
(Forwarded by Johnson Lam from Jack R. Ellis to me. I answer again in
group, because this is not private topic):
trouble using a packet driver. If you know where to E-Mail Belousov
can you please send him the following??Thanks! Jack R. Ellis
May address mentioned on the www.freedos.org/contact page.
with loadhigh packet-driver problems. UMBPCI may or may-NOT help,
Yes, of course - if chipset doesn't supported by UMBPCI, then it will
not load at all. But if it supported - which other troubles you see?
as Uwe Sieber notes in his UMBPCI writeup that the shadow memory he
sets as upper-memory WILL NOT do DMA on mainboards for AMD CPU chips!
Hm, interesting and strange. Anyway, author of question doesn't
specifies machine configuration, so he may try this itself.
Also, drivers that work in memory below 640K but FAIL in upper-memory
may not be just incompatible; more likely they may be in ERROR! A
I just make short, generic description, which may not cover some
specifics (which was not specified by author of question).
lot of drivers still have NO LOGIC for finding and using their ACTUAL
32-bit addresses, which ABSOLUTELY demands Virtual DMA (VDS) calls!
[...]
what is now UDMA2!] VDS calls are implemented by EMM386 or whatever
equivalent driver is in use, as only that driver knows which ACTUAL
addresses are mapped into upper-memory. Only three VDS calls need
be used. First, an initialization VDS lock on the resident driver
prevents it from being mapped OUT during Windows 3.1 task-switching
AND provides a base 32-bit address for fixed driver command-chains or
buffers. Afterward, if user I-O is to be done DIRECTLY to or from a
user buffer (not through an intermediate driver buffer), the user's
buffer must have a VDS lock BEFORE any DMA I-O, then a VDS unlock
AFTER all DMA I-O ends.The lock also returns the 32-bit address
of the user buffer, needed for DMA.
If your friend is source code
competent and has the source for his packet driver, tell him to CHECK
for those 3 VDS calls. As an example of how-to-do-it he can inspect
the V2.5 UDMA2S driver (a bit simpler than UDMA2). UDMA2S.ASM lines
461-476 are the init lock, DVRCORE.ASM (the resident driver!) lines
216-231 lock user I-O buffers, and DVRCORE.ASM line 246 unlocks a
buffer (if needed) after I-O using a subroutine.
If your friend has
NO source-code competence but HAS the packet-driver sources, you will
need to check the files for him as I describe. WITHOUT the sources,
I am afraid your friend is stuck loading his packet driver into low
memory, like it or NOT!! Lack of VDS logic, even AFTER upper-memory
came into general use about 1990, is still a common ERROR in many DMA
drivers; VIA and many other companies DON'T want to talk about it!!
---
This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.
Play to win an NEC 61 plasma display: http://www.necitguy.com/?r=20
___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user