Kernel Functions for Drivers csx_RequestConfiguration(9F)
NAME
csx_RequestConfiguration - configure the PC Card and socket
SYNOPSIS
#include
int32_t csx_RequestConfiguration(client_handle_t ch, config_req_t *cr);
INTERFACE LEVEL
Solaris DDI Specific (Solaris DDI)PARAMETERS
ch Client handle returned from csx_RegisterClient(9F).
cr Pointer to a config_req_t structure.
DESCRIPTION
This function configures the PC Card and socket. It must beused by clients that require I/O or IRQ resources for their PC Card.
csx_RequestIO(9F) and csx_RequestIRQ(9F) must be used before
calling this function to specify the I/O and IRQ require-
ments for the PC Card and socket if necessary.csx_RequestConfiguration() establishes the configuration in
the socket adapter and PC Card, and it programs the Base andLimit registers of multi-function PC Cards if these regis-
ters exist. The values programmed into these registers depend on the IO requirements of this configuration. STRUCTURE MEMBERSThe structure members of config_req_t are:
uint32_t Socket; /* socket number */
uint32_t Attributes; /* configuration attributes */
uint32_t Vcc; /* Vcc value */
uint32_t Vpp1; /* Vpp1 value */
uint32_t Vpp2; /* Vpp2 value */
uint32_t IntType; /* socket interface type - mem or IO */
uint32_t ConfigBase; /* offset from start of AM space */
uint32_t Status; /* value to write to STATUS register */
uint32_t Pin; /* value to write to PRR */
uint32_t Copy; /* value to write to COPY register */
uint32_t ConfigIndex; /* value to write to COR */
uint32_t Present; /* which config registers present */
uint32_t ExtendedStatus; /* value to write to EXSTAT register */
SunOS 5.11 Last change: 19 Jul 1996 1
Kernel Functions for Drivers csx_RequestConfiguration(9F)
The fields are defined as follows: Socket Not used in Solaris, but for portability with other CardServices implementations, it should be set to the logi-
cal socket number. AttributesThis field is bit-mapped. It indicates whether the
client wishes the IRQ resources to be enabled and whether Card Services should ignore the VS bits on the socket interface. The following bits are defined:CONF_ENABLE_IRQ_STEERING
Enable IRQ Steering. Set to connect the PC Card IREQ line to a system interrupt previously selected by acall to csx_RequestIRQ(9F). If
CONF_ENABLE_IRQ_STEERING is set, once
csx_RequestConfiguration() has successfully
returned, the client may start receiving IRQ call-
backs at the IRQ callback handler established in thecall to csx_RequestIRQ(9F).
CONF_VSOVERRIDE
Override VS pins. After card insertion and prior tothe first successful csx_RequestConfiguration(), the
voltage levels applied to the card shall be those indicated by the card's physical key and/or the VS[2:1] voltage sense pins. For Low Voltage capable host systems (hosts which are capable of VS pin decoding), if a client desires to apply a voltage not indicated by the VS pin decoding, thenCONF_VSOVERRIDE must be set in the Attributes field;
otherwise, CS_BAD_VCC shall be returned.
Vcc, Vpp1, Vpp2 These fields all represent voltages expressed in tenths of a volt. Values from zero (0) to 25.5 volts may be set. To be valid, the exact voltage must be available from the system. PC Cards indicate multiple Vcc voltagecapability in their CIS via the CISTPL_CFTABLE_ENTRY
tuple. After card insertion, Card Services processes the CIS, and when multiple Vcc voltage capability isSunOS 5.11 Last change: 19 Jul 1996 2
Kernel Functions for Drivers csx_RequestConfiguration(9F)
indicated, Card Services will allow the client to apply Vcc voltage levels which are contrary to the VS pin decoding without requiring the client to setCONF_VSOVERRIDE.
IntTypeThis field is bit-mapped. It indicates how the socket
should be configured. The following bits are defined:SOCKET_INTERFACE_MEMORY
Memory only interface.SOCKET_INTERFACE_MEMORY_AND_IO
Memory and I/O interface. ConfigBase This field is the offset in bytes from the beginning of attribute memory of the configuration registers. Present
This field identifies which of the configuration regis-
ters are present. If present, the corresponding bit isset. This field is bit-mapped as follows:
CONFIG_OPTION_REG_PRESENT Configuration Option
Register (COR) presentCONFIG_STATUS_REG_PRESENT Configuration Status
Register (CCSR) presentCONFIG_PINREPL_REG_PRESENT Pin Replacement Register
(PRR) presentCONFIG_COPY_REG_PRESENT Socket and Copy Register
(SCR) presentCONFIG_ESR_REG_PRESENT Extended Status Register
(ESR) presentSunOS 5.11 Last change: 19 Jul 1996 3
Kernel Functions for Drivers csx_RequestConfiguration(9F)
Status, Pin, Copy, ExtendedStatus These fields represent the initial values that should bewritten to those registers if they are present, as indi-
cated by the Present field. The Pin field is also used to inform Card Services which pins in the PC Card's PRR (Pin Replacement Register) are valid. Only those bits which are set are considered valid. This affects how status is returned by thecsx_GetStatus(9F) function. If a particular signal is
valid in the PRR, both the mask (STATUS) bit and the change (EVENT) bit must be set in the Pin field. The following PRR bit definitions are provided for client use:PRR_WP_STATUS WRITE PROTECT mask
PRR_READY_STATUS READY mask
PRR_BVD2_STATUS BVD2 mask
PRR_BVD1_STATUS BVD1 mask
PRR_WP_EVENT WRITE PROTECT changed
PRR_READY_EVENT READY changed
PRR_BVD2_EVENT BVD2 changed
PRR_BVD1_EVENT BVD1 changed
ConfigIndexThis field is the value written to the COR (Configura-
tion Option Register) for the configuration index required by the PC Card. Only the least significant six bits of the ConfigIndex field are significant; the upper two (2) bits are ignored. The interrupt type in the COR is always set to level mode by Card Services.SunOS 5.11 Last change: 19 Jul 1996 4
Kernel Functions for Drivers csx_RequestConfiguration(9F)
RETURN VALUES
CS_SUCCESS Successful operation.
CS_BAD_HANDLE Client handle is invalid or
csx_RequestConfiguration() not
done.CS_BAD_SOCKET Error in getting or setting
socket hardware parameters.CS_BAD_VCC Requested Vcc is not available on
socket.CS_BAD_VPP Requested Vpp is not available on
socket.CS_NO_CARD No PC Card in socket.
CS_BAD_TYPE I/O and memory interface not sup-
ported on socket.CS_CONFIGURATION_LOCKED csx_RequestConfiguration()
already done.CS_UNSUPPORTED_FUNCTION No PCMCIA hardware installed.
CONTEXT
This function may be called from user or kernel context.SEE ALSO
csx_AccessConfigurationRegister(9F), csx_GetStatus(9F),
csx_RegisterClient(9F), csx_ReleaseConfiguration(9F),
csx_RequestIO(9F), csx_RequestIRQ(9F)
PC Card 95 Standard, PCMCIA/JEIDA
SunOS 5.11 Last change: 19 Jul 1996 5