According to XESS, CPLD is on: +-----------+--------+---------+ | xess name | JTAG | LPT pin | +===========+========+=========+ | PPC1 | TCK | 14 | /AUTOFD +-----------+--------+---------+ | PPC2 | TMS | 16 | /INIT +-----------+--------+---------+ | PPC3 | TDI | 17 | /SELIN +-----------+--------+---------+ | S7 | TDO | 11 | BUSY +-----------+--------+---------+ XSA is on: // inversion mask for parallel port connection to XSA Board // 00000011: bits 7- 0 are attached to data pins D7-D0 // 00000xxx: bits 15-11 are attached to status pins /S7,S6,S5,S4,S3 // xxxx1001: bits 19-16 are attached to control pins /C3,C2,/C1,/C0 const unsigned int invMask = 0x090003; // bit position of Spartan2 configuration pins within parallel port registers const unsigned int posCCLK = 0; const unsigned int posPROG = 7; const unsigned int posDLO = 2; const unsigned int posDHI = 5; const unsigned int posDONE = 11; // S3 above, S4 in Manual // bit position of XC9572XL JTAG pins within parallel port registers const unsigned int posTCK = 17; const unsigned int posTMS = 18; const unsigned int posTDI = 19; const unsigned int posTDO = 15; // bit position of prog. osc. pins within parallel port registers const unsigned int posOSC = 16; // bit positions of RAM access pins within parallel port const unsigned int posRRESET = 0; const unsigned int posRCLK = 1; const unsigned int posRDOLSB = 2; const unsigned int posRDOMSB = 5; const unsigned int posRDILSB = 11; const unsigned int posRDIMSB = 14; const unsigned int posRSTLSB = 11; const unsigned int posRSTMSB = 14; // bit positions of Flash access pins within parallel port const unsigned int posFRESET = 0; const unsigned int posFCLK = 1; const unsigned int posFDOLSB = 2; const unsigned int posFDOMSB = 5; const unsigned int posFDILSB = 11; const unsigned int posFDIMSB = 13; const unsigned int posFSTLSB = 11; const unsigned int posFSTMSB = 13; // bit positions for board test status const unsigned int posTESTSTATUS = 14; FreeBSD control bits: #define STROBE 0x01 1 #define AUTOFEED 0x02 14 #define nINIT 0x04 16 #define SELECTIN 0x08 17 FreeBSD status bits: #define TIMEOUT 0x01 #define nFAULT 0x08 #define SELECT 0x10 13 #define PERROR 0x20 15 #define nACK 0x40 10 #define nBUSY 0x80 11