Re: [PARPORT] ppscsi/epst mode question(slow scanning w/ hp5200C


Mark Thorp Duxbury (marktd@bellsouth.net)
Thu, 24 Jun 1999 23:39:08 -0400


Greetings,

After looking into it a little, I think the problem is that the National
PC97307 is not being detected/configured properly. (Note that the
PC97307 and the PC87307 are the same, but the 87306 is quite
different.) What appears to be happening is that the PC97307 is in fact
in EPP mode, but that fact is not being detected/utilized by the epst
driver. According to the PC97307 data sheet (available at
http://www.national.com/ds/PC/PC87307.pdf) when in EPP mode, if the EPP
registers aren't used, the chip behaves like it's in PS/2 mode (this may
be normal behavior for any multi-mode port, it's been quite a while
since I've dealt with any of this.) This seems to be what's happening
on my system.

There are two ways to set/change the port mode on this chip (1)
configure the mode 'perminately' (not really) into the parallel port's
SuperI/O (SIO) register (National calls this 'static') -or- set the
SuperI/O register to mode 100 or 111 (bits 7-5), allow "configuration
bits within parallel port" (bit 4) and then use
parallel_port_base+0x402,0x403,0x404 to set the mode ('dynamic' of
course) . It appears that epst wants to do the latter since the mode
settings in the SIO register are not effected by running epst, but those
in base+0x402 are. Whatever 'dynamic' mode I put the thing into,
base+0x402 allways winds up in "SPP compatle mode" (chip mode 000) after
installing epst. If I put the port into 'static' EPP mode (i.e. you
can change all you want in base+whatever and it won't change the chip's
mode) epst runs in PS/2 mode which, as stated above would be expected.
Note that in addition to the obvious 'mode' settings, there are also
some 'compatability' registers scattered about that probably must be set
correctly (having to do with EPP 1.7/1.9 and such). Also note that my
BIOS sets the port into 'static' mode after reset, and if you want to
change the mode after that, you've got to change the SIO _not_
base+0x402 - or change the SIO to put the chip in 'dynamic' mode.
Thus, even if everything at base+whatever is set correctly, it will have
no effect if the chip is still in static mode.

I've written a small program that can find a PC97397/87307 it there's
one in your system (it has an ID register, and provided PnP hasn't moved
it somewhere wierd, it can only be in a couple of places), probe,
report, and change the modes of the parallel port. If anyone is
interested, let me know and I'll send it to you. I can change the chip
into any mode I want, but installing epst changes the chip back to some
other mode. I havn't really looked at how epst does what it does.

Much thanks to "David Campbell" <campbell@gear.torque.net>. I
downloaded the program you asked me to - but unfortunately it's for the
87306 which is completely different, so produced it no output - but I
looked at your code and it got got me thinking. Also, thanks for
illuminating my ignorance regarding dmesg. It think maybe at one time I
knew about this... I think... well I like to think that at least. You
were right, I was really doing things the hard way.

Thanks for the help and if there's anything I can do to help please let
me know.

Mark

-- To unsubscribe, send mail to: linux-parport-request@torque.net --
-- with the single word "unsubscribe" in the body of the message. --



This archive was generated by hypermail 2.0b3 on Thu 24 Jun 1999 - 23:47:15 EDT