
	       FreeBSD 2.2.8-RELEASE PC Card Installer

			   Tatsumi Hosokawa
		      <hosokawa@jp.FreeBSD.org>
			BSD-nomads team, Japan


1. What's this floppy?

The kernel and sysinstall of this floppy includes PAO PC Card package
for FreeBSD.  You can install FreeBSD with this floppy from various
PC Cards (Ethernet, SCSI CDROM, ATAPI CDROM, etc.).  This floppy is
based on FreeBSD 2.2.8-RELEASE and PAO-19990405.  Therefore, supported
cards are same as the cards supported by PAO-19990405.

PAO is a package that supports moble computing on FreeBSD.  Part of
old PAO packages have been incorporated into original FreeBSD souce
tree, and now also the code in this package is waiting for
integration.  Part of codes in PAO has been less reviewed and it
includes some experimental (pre-alpha level) codes that is not suited
to be incorported into the original source tree at current status, but
PAO is more useful and support more card compared to current FreeBSD
PC Card suppot.

*Important Note about 2.2.8-RELEASE*

PAO for 2.2.8 explicitly specifies IRQ for PC Card controllers.
Default IRQ is 5.  Some laptop has a soundcard at IRQ 5.  On such
machines, you have to configure IRQ to free IRQ with UserConfig.  To
do that, select "CLI" configuration of UserConfig from the first menu
of this boot floppy and type

--------------------------------------------------------------------
config> irq pcic0 9
        ~~~~~~~~~~~
--------------------------------------------------------------------

where IRQ 9 is free.  Currently, pcic0 does not support "visual" mode
of UserConfig.

You also have to do it again after the PAO kernel is compiled.  To
execute UserConfig on installed system,

--------------------------------------------------------------------
boot: -c
      ~~
--------------------------------------------------------------------

from boot prompt.

2. PC Card Basics

To use this floppy, you have to know at least some basic ideas of
PC Card architecture.  PC Card uses I/O port, IRQ, and shared memory
like many ISA devices, but the address and IRQ level are dynamically
allocated by a special hardware called PC Card controller (or PC Card
bridge).  

Each PC Card slot has eight memory windows, two I/O windows and a
unnumbered IRQ line.  PC Card controller maps these resources onto ISA
or PCI space.  PC Card can be controlled by CPU like ordinaly ISA
devices because this mapping function works transparently.


           (All memory windows and
               I/O Window 1 are unused) 
   +---------+                    +------------+           /
   |         |--------------------|            |-----------/ ISA BUS
   | Modem   |    I/O Window 0    | PC Card    | 3f8 - 3ff /
   | PC Card |--------------------| Controller |-----------/
   |         |<==================>|            |<=========>/
   +---------+  unnumbered IRQ    +------------+  IRQ 3    /

       fig.1  Modem card is mapped as a serial chip on ISA bus


To determine the value of these parameters, operating system uses "CIS
(Card Information Structure) tupples" described in EEPROM memory in
the cards.  Operating system gets this information also via PC Card
controller.  PC Card controller requires 16 kilobytes of memory
address for this purpose (it maps EEPROM memory onto this area).  You
can read these data by typing "/stand/pccardc dumpcis" from command
prompt after the installation.  A sample output of "/stand/pccardc
dumpcis" follows.


-----------------------------------------------------------------------
Tuple #6, code = 0x1b (Configuration entry), length = 16
    000:  e0 41 99 49 55 26 25 aa 60 f8 03 07 30 ff ff 28
        Config index = 0x20(default)
        Interface byte = 0x41 (I/O)  +RDY/-BSY active
        Vcc pwr:
                Nominal operating supply voltage: 5 x 1V
                Continuous supply current: 2 x 100mA
                Power down supply current: 2 x 10mA
        Card decodes 10 address lines, 8 Bit I/O only
                I/O address # 1: block start = 0x3f8 block length = 0x8
                IRQ modes: Level
                IRQs:  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
        Max twin cards = 0
        Misc attr: (Audio-BVD2) (Power down supported)
Tuple #7, code = 0x1b (Configuration entry), length = 7
    000:  21 08 aa 60 f8 02 07
        Config index = 0x21
        Card decodes 10 address lines, 8 Bit I/O only
                I/O address # 1: block start = 0x2f8 block length = 0x8
-----------------------------------------------------------------------

     fig.2  Sample CIS tupples (part of CIS in Megahertz XJ3288)


This floppy uses 0xd0000-0xd3ffff for this scratch area by default,
but if your hardware uses this area for other purposes, you can select
another addresses (0xd4000, 0xd8000, and 0xdc000) from the first menu
of this floppy.  If you're uncertain of the detailed spec of your
hardware, proceed without selecting optional values, and test other
options after it causes any problems :-).  0xd0000 is appropreate
value on most laptop hardware.

There's another additional menu about PC Card in this floppy.  The
second menu is used to choose the free IRQ pool for PC Cards.  PC Card
requires a free IRQ that is not used by other devices.  Operating
system must manages free IRQ pool for this purpose.  You can choose
this free IRQ pool from the menu.  The default is IRQ 10 and 11.
Please note that there are some machines that have sound card which
occupies IRQ 10 (and too bad that can't be probed by installation
floppy, of course).  If you have such machines, you can't use IRQ 10
for this purpose.  IRQ 5 and 11 would be good alternative, but use IRQ
11 only if you have another devices which occupies IRQ 5.


3. FreeBSD installation note

If you want to use PC Card after the installation is finished, you
must recompile kernel with PC Card support.  Therefore, you *MUST*
install kernel sources.  This floppy automatically adds "src/ssys"
(kernel sources) distribution on "User" and "X-User" distribution
sets, but if you want to install "minimum" distributsion set or if you
want to choose distribution by yourself, you have to add "src/ssys"
distribution to distribution set manually.


4. After installation

If you installed 2.2.8-RELEASE with this floppy, you can install PAO
kernel without getting PAO package from net or CDROM.  This floppy
installs PAO patches in /stand/PAO/sys, /etc files in /stand/PAO/etc,
and pccardd (PC Card daemon) and pccardc (PC Card controller) in
/stand, respectively.  Moreover, you can recompile PAO kernel from
"Config" menu of /stand/sysinstall.

When you've installed FreeBSD with this floppy and reboot the machine,
log in the machine as root user and execute /stand/sysinstall.  You
can recompile and install PAO kernel from the menu of this installer.

Select the "PC Card" in "Config" menu of sysinstall.  Note that these
operations have to be done just after the system is installed.
Especially if you've made any patches onto kernel sources, these
operations may fail.  Please do it as soon as possible.

If you have selected non-default parameters for PC Card controller
scratch memory or untouchable IRQ, please modify the following
paramters manually (sorry, this can't be done automatically now).

    PC Card controller memory   -->  "pccardmem" in /etc/sysconfig
    IRQ's that cannot be used by PC Cards  -->  
      IRQ 5             "ignirq 5" in /etc/pccard.conf
      IRQ 10            "ignirq 10" in /etc/pccard.conf
      IRQ 1-9           "ignirq 1 2 3 4 5 6 7 8 9" in /etc/pccard.conf
      IRQ 1-10          "ignirq 1 2 3 4 5 6 7 8 9 10" in /etc/pccard.conf

The FAQ list of PAO is refer to
http://www.jp.FreeBSD.org/PAO/index.html#faq.  Please read
it before asking us about your problems.  Many typical questions are
answered in this file.

This floppy does not have the device drivers and utilities that is not
necessary for installation (e.g. Video Capture, Voice Synthesizer,
LS120 Super Floppy, etc.)  To install these drivers, you have to
recompile the kernel with original PAO package. You can found PAO
package and information at PAO Webpage
(http://www.jp.FreeBSD.org/PAO/) and PAO anonymous FTP server
(ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/).

The latest development snapshot version of PAO can be found at
ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/snap/.  If you have any
problem with this version, please try to use these snapshots.

Let's enjoy mobile computing with FreeBSD!
