$XiGId: README.initpcic,v 1.11 2002/04/15 21:35:51 jon Exp $

Last Updated: 4/15/2002

Subject: Additional PC Card (PCMCIA) adapter support for
         Solaris 6, 7 and 8 (Intel Platform Edition).


NOTE: This software is supplied "AS IS".  We will not support it on an
end-user basis, so please don't bother calling Support if you have
problems.  We have setup a mailing list for users to communicate with
other users about Solaris PCMCIA support.  To subscribe, send mail to
'majordomo@xig.com' with a line in the body of the message containing
'subscribe pcmcia-users <your email address>'.


NOTE: Starting with revision 1.5, the source code for the initpcic
driver will be made available from our ftp site.  You are free to use
this code in any way you see fit.  If you add new support, or fix
bugs, please post them to the pcmcia-users@xig.com so that I can
integrate them into future releases.


# Overview:

	This package tries to work around a problem in the Solaris bus
enumerator boot code.  While it detects that a PCMCIA bridge is
present, it does not properly initialize the bridge, and therefore it
is not available when the system boots.  What this package does is to
force the bridge into an ISA only mode so that the bridge is usable
after boot.  Of course this means that CardBus cards cannot be used
with this package.  This package does not provide support for any of
the Solaris Card specific drivers, so if your card is not on the
Solaris HCL, it still will not work with this patch.


# Package contents:

	README.initpcic - this file
	initpcic-x.y.pkg - the package in SVR4 Stream Format, where
'x' and 'y' is the current version.

# Adapters Supported:

This update is indicated only if you have the SUNWpcmc cluster (PCMCIA support
1.0.0) installed in your laptop, and yet it doesn't work.  To find out if this
update is applicable, run prtconf -D, and look for something like:
	pci, instance #0 (driver name: pci)
		...
		pcixxxx, yyyy, instance #0 (driver name: pcic)
		pcixxxx, yyyy, instance #1 (driver name: pcic)
Where xxxx is the PCI Vendor ID (or Subsystem Vendor ID), while yyyy is the 
Device ID (or Subsystem ID).  If you have entries like this under the pci 
nexus, and no child nodes under either of these entries, even with a card 
inserted, then this update may help.

# Media Contents:
The package contains the XIGSpcic module, which must be installed after the 
SUNWpcmc cluster.  If the SUNWpcmci (PCMCIA Card Services (Root)) module is 
installed at any time after installing XIGSpcic, then XIGSpcic must be 
reinstalled.

# BIOS Configuration:

An IRQ must be available for each card.  The ISA-PCMCIA IRQ's available are 
very system specific and not necessarily connected to the controller even if 
they are free.  The IRQ's assigned for the PCI-PCMCIA bridge are unnecessary, 
so if there is a means of removing those assignments, that should be done.

# Installation from the package Stream format:

1. Copy the stream (*.pkg) file to a location on your file system, like /tmp.
2. run pkgadd -d /tmp/initpcic.pkg
3. Choose the XIGSpcic module
4. Answer the prompts to add the module to the system
5. Reboot the machine by typing init 6
6. Perform Device Configuration as described below as the machine reboots.

# Installation from floppy:

Perform the following steps as user root:
1. insert the floppy into the drive.
2. run /etc/init.d/volmgt start  if volume management is not running
3. run volcheck
4. run pkgadd -d /floppy/floppy0/initpcic.pkg
5. Choose the XIGSpcic module
6. Answer the prompts to add the module to the system
7. Manually eject the floppy after typing eject
8. Reboot the machine by typing init 6
9. Perform Device Configuration as described below as the machine reboots.

# Device Configuration:

An ISA PCMCIA device must be configured using the Device Configuration 
Assistant.  To do this, while rebooting the machine, press Esc when prompted 
to enter the Device Configuration Assistant.  

1. Press F2 (or Esc-2) to continue past the first screen.
2. At the Identified Devices screen, press F4 to enter the Device Tasks screen.
3. Select View/Edit Devices, then F2 to continue to the View/Edit
   Devices screen. 
4. Select F3 to continue to the Add ISA Device screen.
5. Select PCMCIA controller, then F2 to continue to the Select Resource Types 
   screen.
6. Follow the advice on the each screen to assign an IRQ and 4 Kbytes
   of Memory.   The Port resource must be set to 3e2-3e3. For the IRQ
   selection, just choose one that you know to ba available.  initpcic
   does not use DMA, so leave that field blank.


7. When completed, select F4 from the Select Resource Types screen to Add the 
   device.  When successful, you will see the device added to the View/Edit 
   Devices screen, as in this example:

   [ ] ISA: PCMCIA controller
	  Port: 3E2-3E3; Memory: D0000-D0FFF


8. Continue (F2) to the Device Tasks screen.
9. Back (F3) to the Identified Devices screen.
10. Continue (F2) to the Boot Solaris screen from the Identified
    Devices screen. 
11. Select F4 to continue to the Boot Tasks screen.
12. Select View/Edit Property Settings, then F2.
13. Select F4 to continue to the Create Property screen
14. Specify _INIT_RECONFIG as the property name and true as the property value.
15. Back (F2) to the Boot Tasks screen.
16. Back (F3) to the Boot Solaris screen.
17. Select DISK, then F2 from the Boot Solaris screen.

# Post Installation:


	There should be no more post installation activities with
version 1.5, as this version does not use, or need init scripts.  The
driver will be loaded at system boot time by a 'forceload' command in
the /etc/system file.  Any network configuration you need for your
machine should be done in the normal Solaris way.

# Removal:

Perform the following step as user root: pkgrm XIGSpcic

# See Also:

	pcmcia(1M), pcmciad(1M), pcser(7D), pcram(7D),
        pcmem(7D), pcelx(7D), pcata(7D), pcic(7D)
	Solaris 7 (Intel Platform Edition) Installation Library,
	Solaris 7 (Intel Platform Edition) Device Reference Manual,
	Solaris 7 (Intel Platform Edition) Device Configuration Guide,
	Solaris 7 (Intel Platform Edition) 11/99 Hardware Compatibility List

## Tested Configurations:

* Fujitsu Lifebook 990TX2
* Fujitsu Lifebook E Series
* Fujitsu Lifebook S Series
* Fujitsu Lifebook B Series

 No special requirements.

** Fieldworks FW2233P:

Must set BIOS:PCI CONFIGURATION SETUP: PnP BIOS Auto-Config: Enabled
ISA-PCMCIA IRQ must be one of 5,7,9,10,11,12,14, or 15.

** Panasonic CF-27:

Must have touch /reconfigure line uncommented in PCinit file.  The addition of
the ISA-PCMCIA controller is lost every time the Device Configuration Assistant
is entered, so it must be re-added if that configuration isn't saved.

	You will also need to go into the BIOS and disable 'Serial
Port B', otherwise a system error will be reported.

** Panasonic CF-M34 Toughbook

	You will need to free up some interrupts in the BIOS.
	This was tested with Solaris 2.6

** Toshiba Tecra 8100: 

It isn't necessary to load XIGSpcic module since once this machine's PC Card
bridge chip is configured as PCIC it isn't visible on the PCI bus.
1. Set BIOS PC Card mode to PCIC Compatible.
2. In Device Configuration Assistant, delete PnP PCMCIA device.
2. Add ISA-PCMCIA config: Port:3e0-3e1; Memory:D0000-D0fff.
3. Create /etc/init.d/PCinit and link /etc/rc2.d/S77PCinit to it containing:

	#!/sbin/sh
	touch /reconfigure

# 1) create a /etc/hostname.pcelx# file (where # is reported 
#    by ls /dev/pcelx*)
#    containing the hostname of the machine
# 2) add an IP address for the new host name to /etc/inet/hosts
# 3) list the associated network in /etc/inet/netmasks
# 4) uncomment the following two lines after inserting the
#	appropriate values for the instance and the IP address
# ifconfig pcelx# plumb
# ifconfig pcelx# inet XXX.XXX.XXX.X netmask + broadcast + -trailers up

** Dell Inspiron 8000 (provided by James Hackett <gcb33@dial.pipex.com>)

Success must use the initpcic1.6 package with the changes added to it.

Configuration:-
         
1. Left the COM1 and COM2 settings in the BIOS as is with IRQ defaults
         
2. In the Device Assistant delete the COM1 or the IRQ3 device
         
3. Configured the PCMCIA device as follows
         
   Port: 3e2-3e3
   IRQ: 3
   Memory: DF000-DFFFF  <- note top slot , bottom slot is DE000-DEFFF  range

4. Added the _INIT_RECONFIG=true in the boot sections

5. Added the /kernel/usr/pcelx.conf (not sure if it should be in or
out but left it in)

   force-8bit=1;

6. The card is placed in the top slot will produce  /dev/pcelx1
   Standard hostname, netmask, host etc......
         
7. ifconfig pcelx1 plumb
         
   ifconfig pcelx1 inet XXX.XXX.XXX.X up

8. Pinged my network all blinking lights work.

NOTE: I left the card out of the slot until the machine has booted up
then placed it in then the started on section 7 onwards you might need
to add the following script in the rc2.d folder to plumb the card etc.

/etc/rc2.d/S80PCinit

ifconfig pcelx1 plumb
ifconfig pcelx1 inet 10.245.245.155 up


## Troubleshooting:

1. Only use PC Cards supported by Sun (see Hardware Compatibility List).
2. Search /var/adm/messages for 'WARNING: xxxxx: Request IRQ failed'
   to find out if the card driver failed due to lack of an IRQ.
3. Make sure the user daemon is running with ps -elf |grep pcmciad.


####################### HISTORY #########################

1.7 4/15/2002:

	- added ToPIC support from Victor Anoutchine

1.6 8/8/2001:

	- added patches from James Hackett <gcb33@dial.pipex.com> to
enable ISA mode on TI 445X controllers (like the Dell Inspiron 8000).

	- removing the package will now remove the 'forceload' command
from /etc/system

1.5 1/5/2001: 

	- corrected Solaris 8 issue that often required the PC card to
be removed and inserted after boot.

	[ Guess this is still a problem for some? ]

	- removed all init scripts, and the rather 'hacky' way that
net cards were being configured.  forceload is now used to force the
driver to load at boot time, so that the pcmcia cards are available by
the time Solaris configures your network interfaces.

	- initpcic will now identify itself, it's version number,
version date, and the PCI ID of the bridge it detected.

	- source code released.