csx_RequestConfiguration(9F)
NAME
csx_RequestConfiguration - configure the PC Card and socket
SYNOPSIS
#include <sys/pccard.h>
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 be
used 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 and
Limit 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 MEMBERS
The 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 */
The fields are defined as follows:
Socket
Not used in Solaris, but for portability with other
Card Services implementations, it should be set to the
logical socket number.
Attributes
This 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 a call to csx_RequestIRQ(9F). If
CONF_ENABLE_IRQ_STEERING is set, once
csx_RequestConfiguration() has successfully
returned, the client may start receiving IRQ
callbacks at the IRQ callback handler esta-
blished in the call to csx_RequestIRQ(9F).
CONF_VSOVERRIDE
Override VS pins. After card insertion and prior
to the 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] vol-
tage sense pins. For Low Voltage capable host
systems (hosts which are capable of VS pin
decoding), if a client desires to apply a vol-
tage not indicated by the VS pin decoding, then
CONF_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 voltage capability in their CIS via the
CISTPL_CFTABLE_ENTRY tuple. After card insertion, Card
Services processes the CIS, and when multiple Vcc vol-
tage capability is indicated, Card Services will allow
the client to apply Vcc voltage levels which are con-
trary to the VS pin decoding without requiring the
client to set CONF_VSOVERRIDE.
IntType
This 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
registers are present. If present, the corresponding
bit is set. This field is bit-mapped as follows:
CONFIG_OPTION_REG_PRESENT
Configuration Option Register (COR) present
CONFIG_STATUS_REG_PRESENT
Configuration Status Register (CCSR) present
CONFIG_PINREPL_REG_PRESENT
Pin Replacement Register (PRR) present
CONFIG_COPY_REG_PRESENT
Socket and Copy Register (SCR) present
CONFIG_ESR_REG_PRESENT
Extended Status Register (ESR) present
Status, Pin, Copy, ExtendedStatus
These fields represent the initial values that should
be written to those registers if they are present, as
indicated 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 the csx_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
ConfigIndex
This 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.
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 parame-
ters.
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 supported 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
Man(1) output converted with
man2html