Trouble using EPP mode with /dev/ppi0 (freebsd 5.0)
stef
stef-listes at wanadoo.fr
Sat May 3 09:04:57 PDT 2003
Hello,
it seems I can't write to the paraller port in EPP mode. All reads
(DATA or ADR) return 0xFF.
Accesses DATA, CONTROL and STATUS registers are working fine. I have the
feeling that
the /dev/ppi0 is stuck in COMPAT mode.
The ppc device detects correctly the parallel port settings, and uses
EPP mode.
I have the feeling that the /dev/ppi0 is stuck COMPAT mode.
The test program below gives:
to be written=0x58
written=0x58
read=0xFF
Strangely, when using PPISEPPA to set and read address, 'val' is zeroed:
to be written=0x58
written=0x0
read=0xFF
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#include <dev/ppbus/ppi.h>
#include <dev/ppbus/ppbconf.h>
int main(int argc,char **argv)
{
int fd=-1;
int rc;
u_int8_t val,control;
fd=open("/dev/ppi0",O_RDONLY);
if(fd<0)
{
perror("/dev/ppi0");
return 1;
}
val=0x58;
printf("to be written=0x%0X\n",val);
rc = ioctl (fd, PPISEPPD, &val);
if(rc)
{
perror("/dev/ppi0");
return 1;
}
printf("written=0x%0X\n",val);
/* set to data reverse */
rc = ioctl (fd, PPIGCTRL, &control);
if(rc)
{
perror("/dev/ppi0");
return 1;
}
control = (control & 0x1F) | 0x20;
rc = ioctl (fd, PPISCTRL, &control);
if(rc)
{
perror("/dev/ppi0");
return 1;
}
rc = ioctl (fd, PPIGEPPD, &val);
if(rc)
{
perror("/dev/ppi0");
return 1;
}
printf("read=0x%0X\n",val);
close(fd);
return 0;
}
Any suggestion or idea ?
Regards,
Stef
More information about the freebsd-questions
mailing list