---------------------------------------------------------------------------
	IBM Smart Capture Card device driver for FreeBSD (Ver.0.34)

					綶 
					彣
					ohashi@mickey.ai.kyutech.ac.jp
					96/08/11
---------------------------------------------------------------------------

0. IBM Smart Capture Card ˤĤ

 PCMCIA typeII Υӥǥץ㥫ɤǤ. 640x480(ºݤϽ240
 )Ż߲ޤưϤǤޤ. ɸǤNTSCΥӥǥ椫
 Ǥޤ, ץTV塼ʤȤ߹礻ƥƥӿ椫Ϥ
 ޤ. ξͥϥեȤѹǽǤ. ޤ, Ʊץ
 Υåץ󥫥Ȥ߹礻ŸPC-CardΤǥǥ
 ӥǥȤѲǽǤ.
 Smart Capture Card  Smart Capture Card II , ʲSCCSCC2Ȥ
 ޤ. IIˤϥϡɥǥǽɲäʤɤѹ
 ŪˤϤۤƱʵǽäƤޤΤSCCȤξɽ魯
 Ȥˤޤ.

 Smart Capture Card ʾ
   http://www.ibm.co.jp/pc/prod/hb/0485.html

 Win95ѤΥɥ饤СˤĤ¾
   http://web.kyoto-inet.or.jp/people/yozaki/scc95p10.html

1. ΥѥåˤĤ

 ΥѥåFreeBSDPAOФSCCΥǥХɥ饤СǤ.

 PAOˤĤ
   http://www.mt.cs.keio.ac.jp/person/hosokawa/PAO/

 ʲȤ߹礻ФưǧƤޤ.
   FreeBSD-2.2-960612-SNAP + PAO-960731
   FreeBSD-2.1.5-RELEASE   + PAO-960731
   FreeBSD-2.1.0-RELEASE   + (PAO-960731)

 ʲʷˤ뤿 22SNAP, 215R, 210RȤޤ.

 ǿСϰʲURLǤޤ.
   ftp://at_ohasi.mickey.ai.kyutech.ac.jp/pub/mc/scc/driver/FreeBSD/

 LinuxǤؤβ¼(oka@kobe-u.ac.jp)ˤäƳȯƤޤ. 
   ftp://ftp.kobe-u.ac.jp/pub/mc/scc/driver/linux/

2. ɥ饤СΥ󥹥ȡ

2.1 ͥ scc Ȥ߹

2.1.1 ɥ顼СΥ򥫡ͥ륽ĥ꡼˥ԡƤƤ.

 # cp scc.c      /sys/i386/isa/scc.c
 # cp scc_cs.h   /sys/i386/isa/scc_cs.h
 # cp scc_subr.c /sys/i386/isa/scc_subr.c
 # cp scc.h      /sys/i386/include/scc.h

 ޤ, /usr/include/machine ˤ scc.h 򥳥ԡƤ. 

 # cp /sys/i386/include/scc.h /usr/include/machine/scc.h

2.1.2 /sys/i386/isa/scc.c Խޤ. 

 ۥС, 22SNAPѤˤʤäƤޤ.
 215R210RΤȤ, scc.c FREEBSD210R ͭ(define)ˤƤ.
 22SNAPΤȤ̵(undef)ˤƤ.
 ¾, 5.FAQ򻲹ͤԽƤ.

2.1.2 /sys/i386/conf/ ʲΥեԽޤ. 

 /sys/i386/conf/files.i386 ˰ʲɲäޤ.  
 i386/isa/scc.c                  optional        scc     device-driver
 i386/isa/scc_subr.c             optional        scc     device-driver

 /sys/i386/conf/PAO ʤɤΥեե˰ʲɲäޤ. 
 device          scc0 at isa? port 0x240 irq 10 iomem 0xd4000 vector sccintr
 device          scc1 at isa? port 0x244 irq 11 iomem 0xd8000 vector sccintr

2.1.3 /sys/i386/i386/ ʲΥեԽޤ. 

 215R210RΤȤ, 줾ʲΤ褦˥ѥåƤƤ.
 (ѥåХѥˤʤäƤޤ)

 # patch -p0 < conf.c.diff-215R
 (ޤ)
 # patch -p0 < conf.c.diff-210R

 215R22SNAPΤȤ, 줾ʲΤ褦˥ѥåƤƤ.
 (ѥåХѥˤʤäƤޤ)
 : 210RΤȤˤĤƤ̤ǧǤ.
       ΥѥåǤ, device_info[]˰ʲιԤɲäޤ. 
 {"scc",         "IBM Smart Capture Card",           0,      CLS_MMEDIA},

 # patch -p0 < userconfig.c.diff-22SNAP
 (ޤ)
 # patch -p0 < userconfig.c.diff-215R


2.1.4 ͥᥤƥ󥹥ȡ뤷ޤ. 

 եե뤬PAOʤʲΤ褦˿ͥ򥤥󥹡뤷
 . 

 # cd /sys/i386/conf
 # config PAO
 # cd /sys/compile/PAO
 # make depend
 # make
 # make install

2.2 ڥǥХκ

 # cd /dev
 # mknod scc0 c 76 0
 # mknod sccctl0 c 76 128

 (2ܤȤȤϰʲ)
 # mknod scc1 c 76 1
 # mknod sccctl0 c 76 129

 215R22SNAPΤȤϥ᥸㡼ֹ76Ǥ. 210RΤȤ, ᥸㡼ֹ
 76ǤϤʤ71ˤƤ.  

2.3 pccard

2.3.1 /etc/pccard.conf  scc Υȥ꡼ǧޤ. 

 ʲ꤬pccard.conf.sampleɸǤ.
 # IBM Smart Capture Card
 card "IBM Corp\." "Video Capture"
         config  default "scc0" any
         cardmem 0xd4000 0x0 0x8000
         insert  echo Smart Capture Card inserted
         remove  echo Smart Capture Card removed

 ʾѤϰʲ򻲹ͤԽƤ. 

 # IBM Smart Capture Card
 card "IBM Corp\." "Video Capture"
         config  default "scc0" any
         cardmem 0xd4000 0x0 0x4000
         config  default "scc1" any
         cardmem 0xd9000 0x0 0x4000
         insert  echo Smart Capture Card inserted
         remove  echo Smart Capture Card removed

2.4 ֡Ȥޤ. 

2.4.1 ͥεưˤǤʲΥåǧޤ. 

 pccard driver scc added
 scc0 not found

 (2ܤȤȤϰʲ)
 pccard driver scc added
 scc1 not found

 , ISAǥХȤƤϸդʤ PC-cardѥɥ饤СȤ
 ߤޤȤ̣Ǥ. 

2.4.2 SCCɤPC-Card˻ɤޤ

 scc0: init

 ȥåϤ, PC-Card٥ȥӡפʹǤ.

2.4.3 SCCPC-Cardȴޤ

 scc0: unload
 Return IRQ=10
 Card removed, slot 0
 stray irq 10

 ʤɤɽokǤ. 

 : ץꥱ󤫤 scc˥ƤȤˤȴʤǤ
       . 

3. ѹ

Ver.0.33->Ver.0.34 ( RELEASE version)
FreeBSD-2.1.5-RELEASEбޤ. (綶)
IBM coporationInternational Busines Machines Coporation ѹ
  . (綶)

Ver.0.3->Ver.0.33
2ܰʹߤsccȤ褦ˤޤ. (¼, 綶)
/dev/sccctlǿĴʤɤǤ褦ˤʤޤ.
  (¼, 綶)
scc_probe()/scc_attach()scc_registerdev()Ť˸Ƥ֥ߥľ
  . (ۤ蘆)
Ѥ/dev/sccctlѤ褦ˤޤ. (綶)
SNAPǤUIOΥХľäƤ褦ʤΤ, ХΤ
  BUGGY_UIOꤹ褦ˤޤ. (綶)

Ver.0.21->Ver.0.3
CopyrightεҤʤɥ꡼˸򤷤ޤ. (綶)
scc.hioctlǻѤ빽¤Τ򿷤ޤ. (綶)

Ver.0.2->Ver.0.21
nvưǧޤ. (綶)
Хʥ꡼ǥͥ뤬뤳Ȥǧޤ. (綶)

Ver.0.1->Ver.0.2
ioctl˥塼ʤ俧꤬Ǥ褦ˤޤ. (綶)
PAO(pccard-test)Ǥ, sccʤɤΥɤǤ꡼ݤǤ褦
  ˤʤޤ. 
FreeBSD.orgϢ, ᥸㡼ֹ 76 ͽ󤷤ޤ. (綶)
߶ػߤ2٤褦ˤޤ. (, 綶)
ɤɤΥåȤޤƤפˤʤޤ. (綶)
vicưǧޤ. (綶)
2ĤʬΥޤ. ()

Ver.0.1->Ver.0.2

ioctlLinuxȹ礻ޤ. ()
2.1.0-RELEASEбޤ. ()
scc.cscc_readǶŪ˥꡼ɥǤ褦
  ޤ. (綶)
struct scc_softc  maddr ѹޤ. (綶)
scctest.c RGB565YUV422(Υ)ˤޤ. (綶)
FreeBSDǤ⥭ץǤ褦ˤʤޤ. (綶)
320x240ʤ礭β⥭ץǤ褦ˤޤ. (綶)
xscc,sccatʤɤưǧFreeBSDб򤷤ޤ. (綶)
scctest.c -> sccsnap.c ǽĥѹޤ. (綶)

4. ưǧ

 FreeBSDǥեƥȾ

         | PCIC        | 
 ------------+-------------+---------------------------------------
 ǥȥå  | IBM King    | REMAP(48K)
 FMV-450NL/S | CL-PD6710   | REMAP(80K), ʤ80Kޤok. 
 FMV-450NL/T | CL-PD6710   | REMAP 
 TP230Cs-YB7 | VLSI 82C146 | REMAP(32K), slot1Բ
 TP230Cs-FBZ | VLSI 82C146 | REMAP(32K), slot1Բ
 jetmini     | RF5C396L    | REMAP
 Power/V note| Vadem 468   | REMAP(48K)
 TP535       | CL-PD67??   | REMAP(綶ڤƳǧ)
 TP530Cs     | i82891A     | REMAP, slot1Բ
 DHU2 CTS5120| ?           | 
 Mebius (P90)| Vadem 468   | REMAP, slot1Բ

  LinuxǤư

 ThinkPad230CS
 ThinkPad230Cs(FBW)
 ThinkPad370
 ToshibaT610CT
 Mebius(P90)

 ˤʤǤưǧޤ,
 ohashi@mickey.ai.kyutech.ac.jp
 ޤǤϢ.

5. FAQ

 Q1 ץꥱưȥϥ󥰥åפƤޤޤ. 
 
 A1 /sys/i386/isa/scc.c  #define REMAP_MEM_WIN  #undef REMAP_MEM_WIN 
    ˤƤ. ˤ꡼ɥڤ괹ʤʤޤ.
    ˤư, /etc/pccard.confꤷ꡼
    ɥΥޤǤβɽǤʤʤޤ. 

 Q2 ®٤®뤳ȤϤǤޤ?
 
 A2 꼡ǤĴǤޤ. 

   1. /etc/pccard.conf  礭Υ꡼ɥ. 
      cardmem 0xd4000 0x0 0x8000
                          ^^^^^^
                          礭Ƥ. 
      , ˤꤷ礭Υ꡼ɥʤ
      礬ޤ. ξ, 礭βʬǤޤ. 
      ʬǤʤ٤礭ˤƤ. 

   2. ߤκݤγ߶ػߤˡѤ. 
      scc.c  #undef SOFT_INTR  #define SOFT_INTR ѤƤ. 
      (SOFT_INTRƤʤϥϡɤγ߶ػߤ򤷤ޤ
      ʤ®Ȼפޤ)

 Q3 FreeBSD-2.1.0-RELEASEϥݡȤƤʤΤǤ?

 A3 PC-Card򥵥ݡȤѥåǤPAOݡȤƤޤΤ
    Ūˤưޤ. PAOư褦ˤƥǤ,
    FreeBSD-2.1-RELEASEʹߤΥСʤư褦ˤʤޤ.
    ɬ, scc.c  FREEBSD210R ͭ(define)ˤƤ. ޤ, 
    FreeBSD-2.1-RELEASE  UIO ˤϥХޤޤƤ褦ǤΤ, 
    BUGGY_UIOꤷƤ. 

 Q4 slot0 Ǥưޤ, slot1Ǥϥϥ󥰥åפƤޤޤ. slot1
    ϥݡȤƤʤΤǤ?

 A4 ThinkPad230Cs530CsǤ, slot1Ǥưʤ𤵤Ƥޤ.
    230Csξ, PCIC2ĻȤä2åȤ¸ƤΤ򤭤
    бǤƤʤΤȿ¬Ƥޤ. 530CsǤθͽۤ
    Ƥޤ. slot0ưΤǤ, ȤäƤ. 

 Q4 IBM PCMCIA Ether Ʊ˻Ѥ褦Ȥȥץ֤˼ԤΤ
    ?

 A4 PAO° pccard.conf.sample Ǥ, 0xd400032KbytesΥ꡼
    ɥ褦ˤʤäƤޤ. ɤ餫Υ꡼򤺤餷Ƥ
    . ޤ, Etherޤ, SCCϸ夫ޤʤȥ꡼γ
    Ƥ˼Ԥ褦Ǥ. (ThinkPadξQ4⻲)

    probe/attach˥ߥꤳľΤľäƤȻפޤ.
    (̤ǧ) 7/28

 Q5 Ʊ2SCCȤƱ˻ȤȲ̤Ƥޤޤ. 

 A5 2SCC˳갸Ƥ꡼ΰ򾯤֤Ƥ. Ϣ³
    ȽŤʤ꤬ǤƲޤ. ޤ, ȴ scc0 
    ǧʤʤΤǺscc1Ȥˤ pccarddƵưƤ. 

6. ռ

SCC-Driver/Tester MLΤߤʤ, ä, פ,¼󤵤,깥
Ѥ󤢤꤬Ȥޤ. , PAOγȯ濴ŪιԤʤäƤ
ۤ蘆, ¾BSD-nomads MLγ˴פޤ.
