Next-in-Thread Next Message

Question No Power on Sycard PCChost 1200? 

Forum: PCMCIA Installation and Configuration Issues
Date: 1999, Nov 25
From: Patrick Osterloh p_osterloh

I just migrated from a Sycard PCChost 1100 Bridge with a TI 1131 socket controller to a Sycard PCChost 1200 Bridge with a TI 1220 socket controller on board. The problem is: The new Bridge does not power up its sockets. I can trace the problem down to the on board socket power switch. For some reasons this device is not powering up the sockets. Does anyone share this experience with me?

David: Is the the TI 1220 supported by the current software version?

Regards,

Patrick

Next-in-Thread Next Message

Messages Inline: 0 1

Warning Patch for TI1220 on Sycardīs PCChost1200 PCI-Cardbus Adapter

Re: Question No Power on Sycard PCChost 1200? (Patrick Osterloh)
Date: 1999, Nov 28
From: Patrick Osterloh p_osterloh

Thereīs a problem with the TI PCI1220 socket controller
on the Sycard PCChost1200 PCI-CardBus Host Adapter when 
using the current version 3.1.4 of the PCMCIA package: 
The sockets are not powered up after the insertion of a
PC Card. This is due to the fact that the on board power
switch does not receive a clock signal. In order to solve
this problem, the P2CCLK Bit (#27) in the TI1220īs System
Control Register (offset 80h) must be set. When this bit
is set, the power switch clock is generated by the PCI
clock and driven by the TI PCI1220.

The following changes are required in the PCMCIA software:

Add a bit definition for the P2CCLK bit in the file
"pcmcia-cs-3.14/modules/ti113x.h":

...
/* System Control Register */
#define TI113X_SYSTEM_CONTROL		0x0080	/* 32 bit */
#define  TI113X_SCR_SMIROUTE		0x04000000
#define  TI113X_SCR_SMISTATUS		0x02000000
#define  TI113X_SCR_SMIENB		0x01000000
#define  TI113X_SCR_VCCPROT		0x00200000
#define  TI113X_SCR_REDUCEZV		0x00100000
#define  TI113X_SCR_CDREQEN		0x00080000
#define  TI113X_SCR_CDMACHAN		0x00070000
#define  TI113X_SCR_SOCACTIVE		0x00002000
#define  TI113X_SCR_PWRSTREAM		0x00000800
#define  TI113X_SCR_DELAYUP		0x00000400
#define  TI113X_SCR_DELAYDOWN		0x00000200
#define  TI113X_SCR_INTERROGATE		0x00000100
#define  TI113X_SCR_CLKRUN_SEL		0x00000080
#define  TI113X_SCR_PWRSAVINGS		0x00000040
#define  TI113X_SCR_SUBSYSRW		0x00000020
#define  TI113X_SCR_CB_DPAR		0x00000010
#define  TI113X_SCR_CDMA_EN		0x00000008
#define  TI113X_SCR_ASYNC_IRQ		0x00000004
#define  TI113X_SCR_KEEPCLK		0x00000002
#define  TI113X_SCR_CLKRUN_ENA		0x00000001  

#define  TI122X_SCR_SER_STEP		0xc0000000
#define  TI122X_SCR_INTRTIE		0x20000000
/*-- Changes for TI1220 by Patrick Osterloh on 11/28/99 -- */
#define  TI122X_SCR_P2CCLK              0x08000000
/*-------------------------------------------------------- */
#define  TI122X_SCR_CBRSVD		0x00400000
#define  TI122X_SCR_MRBURSTDN		0x00008000
#define  TI122X_SCR_MRBURSTUP		0x00004000
#define  TI122X_SCR_RIMUX		0x00000001
...  


Then adjust the "ti113x_set_opts" function within the module
"pcmcia-cs-3.14/modules/i82365.c" as follows:

...
static u_int __init ti113x_set_opts(u_short s, char *buf)
{
    socket_info_t *t = &socket[s];
    ti113x_state_t *p = &t->state.ti113x;
    u_int mask = 0xffff;
    int old = (t->type <= IS_TI1131);

/*-- Changes for TI1220 by Patrick Osterloh on 11/28/99 --*/ 
    int p2c_patch = (t->type == IS_TI1220);
/*--------------------------------------------------------*/
    
    flip(p->sysctl, TI113X_SCR_CLKRUN_ENA, has_clkrun);
    flip(p->sysctl, TI113X_SCR_CLKRUN_SEL, clkrun_sel);
    flip(p->cardctl, TI113X_CCR_RIENB, has_ring);
    p->cardctl &= ~TI113X_CCR_ZVENABLE;
    switch (irq_mode) {
    case 1:
	p->devctl &= ~TI113X_DCR_IMODE_MASK;
	p->devctl |= TI113X_DCR_IMODE_ISA;
	break;
    case 2:
	p->devctl &= ~TI113X_DCR_IMODE_MASK;
	p->devctl |= TI113X_DCR_IMODE_SERIAL;
	break;
    case 3:
	p->devctl &= ~TI113X_DCR_IMODE_MASK;
	p->devctl |= TI12XX_DCR_IMODE_ALL_SERIAL;
	break;
    default:
	if ((p->devctl & TI113X_DCR_IMODE_MASK) == 0)
	    p->devctl |= TI113X_DCR_IMODE_ISA;
    }
    if (p->cardctl & TI113X_CCR_RIENB) {
	strcat(buf, " [ring]");
	if (old) mask &= ~0x8000;
    }
    if (old && (p->sysctl & TI113X_SCR_CLKRUN_ENA)) {
	if (p->sysctl & TI113X_SCR_CLKRUN_SEL) {
	    strcat(buf, " [clkrun irq 12]");
	    mask &= ~0x1000;
	} else {
	    strcat(buf, " [clkrun irq 10]");
	    mask &= ~0x0400;
	}
    }
    if (p->sysctl & TI113X_SCR_PWRSAVINGS)
	strcat(buf, " [pwr save]");

/*-- Changes for TI1220 by Patrick Osterloh on 11/28/99--*/ 
    if (p2c_patch)
        p->sysctl |= TI122X_SCR_P2CCLK;
/*-------------------------------------------------------*/

    switch (p->devctl & TI113X_DCR_IMODE_MASK) {
    case TI12XX_DCR_IMODE_PCI_ONLY:
	strcat(buf, " [pci only]");
	mask = 0;
	break;
    case TI113X_DCR_IMODE_ISA:
	strcat(buf, " [isa irq]");
	if (old) mask &= ~0x0018;
	break;
    case TI113X_DCR_IMODE_SERIAL:
	strcat(buf, " [pci + serial irq]");
	mask = 0xffff;
	break;
    case TI12XX_DCR_IMODE_ALL_SERIAL:
	strcat(buf, " [serial pci & irq]");
	mask = 0xffff;
	break;
    }
    return mask;
}
...

Thatīs all! Donīt forget to recompile and reinstall!

Patrick

--
Patrick Osterloh
Chair of Electrical Engineering and Computer Systems (EECS)
University of Technology RWTH Aachen
phone: +49-241-807588
fax:   +49-241-8888-282
email: osterloh@eecs.rwth-aachen.de
No Power on Sycard PCChost 1200?


Add Message to: "No Power on Sycard PCChost 1200?"

Members Subscribe Admin Mode Show Frames Help for HyperNews at pcmcia-cs.sourceforge.net 1.10