免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6763 | 回复: 5
打印 上一主题 下一主题

[OpenBSD] OpenBSD 4.x下PCMCIA 驱动的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-02 11:11 |只看该作者 |倒序浏览
在openbsd里,有类似与 freebsd /etc/defaults/pccard.conf 这样的配置文件吗?

用来设置pc卡 的资源?


想驱动一个 pcmcia接口的网卡

在LINUX中默认识别是ne2000兼容卡

论坛徽章:
0
2 [报告]
发表于 2008-06-02 14:55 |只看该作者
机器的dmesg

OpenBSD 4.2 (RAMDISK_CD) #468: Tue Aug 28 11:02:17 MDT 2007
    deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/RAMDISK_CD
cpu0: Intel Pentium III ("GenuineIntel" 686-class) 1 GHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE
real mem  = 266362880 (254MB)
avail mem = 251531264 (239MB)
mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 03/27/02, BIOS32 rev. 0 @ 0xfd9ed, SMBIOS rev. 2.3 @ 0xe4010 (40 entries)
bios0: vendor NEC version "P6.00/197A1000" date 03/27/2002
bios0: NEC PC
apm0 at bios0: Power Management spec V1.2
apm0: flags 30102 dobusy 0 doidle 1
pcibios0 at bios0: rev 2.1 @ 0xfd8a0/0x760
pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfdf60/128 (6 entries)
pcibios0: PCI Interrupt Router at 000:31:0 ("Intel 82371FB ISA" rev 0x00)
pcibios0: PCI bus #3 is the last bus
bios0: ROM list: 0xc0000/0xa000 0xca000/0x1800 0xe0000/0x4000! 0xe4000/0x1000! 0xe5000/0xb000!
cpu0 at mainbus0
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
pchb0 at pci0 dev 0 function 0 "Intel 82810E" rev 0x03: rng active, 8000000Kb/sec
vga1 at pci0 dev 1 function 0 "Intel 82810E Graphics" rev 0x03
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
ppb0 at pci0 dev 30 function 0 "Intel 82801BA AGP" rev 0x05
pci1 at ppb0 bus 1
cbb0 at pci1 dev 3 function 0 "TI PCI1420 CardBus" rev 0x00: irq 5
cbb1 at pci1 dev 3 function 1 "TI PCI1420 CardBus" rev 0x00: irq 5
fxp0 at pci1 dev 8 function 0 "Intel 82562" rev 0x03, i82562: irq 10, address 00:00:00:aa:bb:cc
inphy0 at fxp0 phy 1: i82562ET 10/100 PHY, rev. 0
cardslot0 at cbb0 slot 0 flags 0
cardbus0 at cardslot0: bus 2 device 0 cacheline 0x0, lattimer 0x20
pcmcia0 at cardslot0
cardslot1 at cbb1 slot 1 flags 0
cardbus1 at cardslot1: bus 3 device 0 cacheline 0x0, lattimer 0x20
pcmcia1 at cardslot1
ichpcib0 at pci0 dev 31 function 0 "Intel 82801BA LPC" rev 0x05: 24-bit timer at 3579545Hz
pciide0 at pci0 dev 31 function 1 "Intel 82801BA IDE" rev 0x05: DMA, channel 0 wired to compatibility, channel 1 wired to compatibility
wd0 at pciide0 channel 0 drive 0: <ST313620A>
wd0: 16-sector PIO, LBA, 13033MB, 26692776 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 4
atapiscsi0 at pciide0 channel 1 drive 0
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0: <NEC, CD-ROM DRIVE:291, 3.3c> SCSI0 5/cdrom removable
cd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2
uhci0 at pci0 dev 31 function 2 "Intel 82801BA USB" rev 0x05: irq 5
"Intel 82801BA SMBus" rev 0x05 at pci0 dev 31 function 3 not configured
uhci1 at pci0 dev 31 function 4 "Intel 82801BA USB" rev 0x05: irq 10
"Intel 82801BA AC97" rev 0x05 at pci0 dev 31 function 5 not configured
isa0 at ichpcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
usb0 at uhci0: USB revision 1.0
uhub0 at usb0: Intel UHCI root hub, rev 1.00/1.00, addr 1
usb1 at uhci1: USB revision 1.0
uhub1 at usb1: Intel UHCI root hub, rev 1.00/1.00, addr 1
biomask fffd netmask fffd ttymask ffff
rd0: fixed, 3800 blocks
"PCMCIA, 10+56 Combo Card, , " (manufacturer 0x8a1, product 0xc0ab) at pcmcia1 function 0 not configured
dkcsum: wd0 matches BIOS drive 0x80
root on rd0a swap on rd0b dump on rd0b

论坛徽章:
0
3 [报告]
发表于 2008-06-03 13:20 |只看该作者
openbsd 4.2 中
dmesg 中显示的此pcmcia卡的信息为
"PCMCIA, 10+56 Combo Card, , " (manufacturer 0x8a1, product 0xc0ab) at pcmcia1 function 0 not configured

相关资料只搜索到一份基于linux的 pcmcia 硬件列表

url from http://wiki.archlinux.org/index.php/Hwd_PCMCIA_Table

-----------------------------------------------------
This document maintains and updates the /usb/share/hwdata/pcmciatable in hwd. This table can also be used without hwd by running "cardctl ident" and then comparing the device id.

Example:
Socket 0:
  product info: "Toshiba America", "3CXM056-BNW", "3COM/NoteWorthy 56K Modem"
  manfid: 0x0101, 0x002f
  function: 2 (serial)
Socket 1:
  no product info available


PCMCIA TABLE (last update 28-Sept-2004)
venID   devID   moduleName    cardDescription                                  deviceType

0x89    0xaa    "iflash2_mtd" "Intel Series 100 Flash"                         "memory"
0x89    0xa0    "iflash2+_mtd" "Intel Series 2+ Flash"                         "memory"
0x89    0xa2    "iflash2_mtd"  "Intel Series 2 Flash"                          "memory"
0x0175  0x0000  "pcnet''cs/serial''cs" "NSC DP83903-based Ethernet/Modem"        "multicard"
0x01a6  0x0000  "ray_cs"      "RayLink PC Card WLAN Adapter"                   "wireless"
0x015f  0x000a  "airo_cs"     "350 Series Wireless LAN Adapter"                "wireless"
0x0104  0x000a  "pcnet''cs/serial''cs" "Socket ES-1000 Ethernet/RS-232"          "multicard"
0x0140  0x000a  "smc91c92''cs/serial''cs" "Ositech Jack of Hearts Ethernet/Modem" "multicard"
0x0104  0x000d  "pcnet_cs"    "Socket LP-E Ethernet"                           "ethernet"
0x0137  0x000e  "serial_cs"   "Quatech Dual RS-422"                            "modem"
0x0140  0x000f  "epic''cb/serial''cb" "Ositech Jack of Spades Fast Ethernet/Modem" "cardbus"
0x2080  0x0001  "ide-cs"      "ATronics PCMCIA-IDE-CDROM/HDD"                  "cd-rom/hdd"
0x0268  0x0001  "orinoco_cs"  "ARtem Onair Version 1.0"                        "wireless"
0x012f  0x0001  "unknown"     "Adaptec||SCSI"                                   "unknown"
0x0089  0x0001  "orinoco_cs"  "Intel PRO/Wireless 2011"                        "wireless"
0x14ea  0xb001  "orinoco_cs"  "PLANEX RoadLannerWave GW-NS11H"                 "wireless"
0x02aa  0x0002  "orinoco_cs"  "ASUS SpaceLink WL-100"                          "wireless"
0x028a  0x0002  "unknown"     "Compaq||iPAQ networking 11 Mbps wireless card"   "wireless"
0x0156  0x0002  "orinoco_cs"  "Intersil PRISM2 11 Mbps Wireless Adapter"       "wireless"
0x0138  0x0002  "orinoco_cs"  "Compaq WL100 11 Mbps Wireless Adapter"          "wireless"
0x028a  0x0002  "orinoco_cs"  "Compaq HNW-100 11 Mbps Wireless Adapter"        "wireless"
0xd601  0x0002  "orinoco_cs"  "ZCOMAX AirRunner/XI-300"                        "wireless"
0x02ac  0x0002  "orinoco_cs"  "SpeedStream SS1021 Wireless Adapter"            "wireless"
0xc00f  0x0002  "pcnet_cs"    "Allied Telesis LA-PCM Ethernet"                 "ethernet"
0x0137  0x0003  "parport_cs"  "Quatech SPP-100 Parallel Port Card"             "misc"
0x0004  0x0004  "fmvj18x_cs"  "Eagle NE200 Ethernet"                           "ethernet"
0x015f  0x0005  "airo_cs"     "Aironet PC4500 PCMCIA Wireless Card"            "wireless"
0xd601  0x0005  "orinoco_cs"  "D-Link DCF660 Wwireless Card"                   "wireless"
0x0104  0x0006  "serial_cs"   "Socket Communications Dual RS-232"              "modem"
0x015f  0x0007  "airo_cs"     "Aironet PC4800 PCMCIA Wireless Card"            "wireless"
0x0105  0x0007  "airo_cs"     "Xircom Wireless Network Adapter"                "wireless"
0x40    0x0009  "pcnet_cs"    "D-Link DE-650 Ethernet"                         "ethernet"
0x0143  0xc0ab  "pcnet''cs/serial''cs" "D-Link DMF560TX Ethernet/Modem"          "multicard"
0x08a1  0xc0ab  "pcnet''cs/serial''cs" "New Media LANSurfer 10+56 Ethernet/Modem" "multicard"
0x1033  0x00cd  "ohci1394_cb" "Western Digital 1394 Adapter"                   "firewire"
0x0137  0x001b  "serial_cs"   "Quatech Quad RS-232"                            "modem"
0x01bf  0x010a  "xirc2ps_cs"  "Accton Fast EtherCard-16"                       "ethernet"
0x0140  0x0011  "epic_cb"  "Ositech Seven of Spades Fast Ethernet"             "cardbus"
0x0140  0x0012  "epic''cb/serial''cb" "Ositech Jack of Spades Fast Ethernet/Modem" "cardbus"
0x1011  0x0019  "tulip_cb"  "NetGear FA510C Fast Ethernet"                     "cardbus"
0x00a4  0x002d  "ide-cs"      "IBM Max Portable CD-ROM"                        "cd-rom"
0x0101  0x002f  "unknown"     "Toshiba America||3CXM056-BNW 56K Modem"          "modem"
0x016c  0x0020  "smc91c92''cs/serial''cs" "Psion Gold Card Netglobal 56K+10Mb Ethernet" "multicard"
0x016c  0x0021  "epic''cb/serial''cb" "Psion Gold Card Netglobal 56K+10/100Mb CardBus" "cardbus"
0x0057  0x0021  "pcnet_cs"    "New Media LanSurfer"                            "ethernet"
0x016c  0x0023  "smc91c92_cs" "Psion Gold Card NetGlobal 10/100 Fast Ethernet" "ethernet"
0x0137  0x0025  "serial_cs"   "Omega Engineering QSP-100"                      "modem"
0x0101  0x003d  "3c589''cs/serial''cs" "3Com/Megahertz 3CXEM556 B-INT Ethernet/Modem"
0x0101  0x003f  "serial_cs"   "3Com Corporation||PCMCIA Modem"                  "modem"
0x026f  0x030a  "pcnet_cs"    "Buffalo LPC3-CLT Ethernet"                      "ethernet"
0x0101  0x0035  "3c589''cs/serial''cs" "3Com/Megahertz 3CXEM556 Ethernet/Modem"  "multicard"
0x0101  0x0039  "serial_cs"   "3Com 3CCM156 56K Global Modem"                  "modem"
0x0137  0x0045  "serial_cs"   "Quatech Quad RS-422"                            "modem"
0x10b   0x0d50  "serial_cs"   "National Instruments PCMCIA-232"                "modem"
0x10b   0x0d51  "serial_cs"   "National Instruments PCMCIA-232/2"              "modem"
0x10b   0x0d52  "serial_cs"   "National Instruments PCMCIA-485"                "modem"
0x10b   0x0d53  "serial_cs"   "National Instruments PCMCIA-485/2"              "modem"
0x0137  0x0052  "serial_cs"   "Quatech Dual RS-232"                            "modem"
0x1033  0x0063  "ohci1394_cb" "Margi 1394-to-Go OHCI Adapter"                  "firewire"
0x0104  0x0070  "serial_cs"   "Socket Communications Dual I/O Card"            "modem"
0x0104  0x0075  "pcnet_cs"    "Socket LP-E CF+ Ethernet"                       "ethernet"
0x01eb  0x080a  "orinoco_cs"  "Nortel Networks eMobility 802.11 Wireless Adapter" "wireless"
0x016c  0x0081  "axnet''cs/serial''cs" "Psion 10/100 LANGLOBAL Combine iT"       "multicard"
0x01da  0x0081  "tulip_cb"    "Silicom Fast Ethernet"                          "cardbus"
0xe815  0x0081  "tulip_cb"    "NDC NCB100 Fast Ethernet"                       "cardbus"
0x9513  0x0081  "tulip_cb"    "Ambicom AMB8100 Fast Ethernet"                  "cardbus"
0x01da  0x0090  "tulip_cb"    "Silicom FEM56 Fast Ethernet"                    "cardbus"
0x0149  0xc1ab  "pcnet_cs"    "Linksys NP10T/NE2000 Ethernet"                  "ethernet"
0x8a01  0xc1ab  "axnet_cs"    "Asix AX88190 Fast Ethernet"                     "ethernet"
0x0105  0x010a  "pcnet_cs"    "Xircom CompactCard Ethernet"                    "ethernet"
0x01bf  0x010a  "xirc2ps_cs"  "Accton||EN226"                                   "ethernet"
0x0186  0x0101  "tulip_cb"    "Kingston KNE-CB4TX Fast Ethernet"               "cardbus"
0x115d  0x0101  "serial_cb"   "Xircom RBM56G Modem"                            "cardbus"
0x021b  0x0101  "pcnet''cs/serial''cs" "Billionton LM5LT-10B Ethernet/Modem"     "multicard"
0x0089  0x0102  "tulip_cb"    "Intel EtherExpress PRO/100 CardBus"             "cardbus"
0x00a4  0x0103  "tulip''cb/serial''cb" "IBM 10/100 EtherJet 56K CardBus"         "cardbus"
0x0089  0x0103  "eepro100_cb"  "Intel EtherExpress PRO/100 CardBus II"         "cardbus"
0x0186  0x0110  "pcnet_cs"     "Kingston CIO10T Ethernet"                      "ethernet"
0x00a4  0x0113  "tulip_cb"     "IBM 10/100 EtherJet CardBus"                   "cardbus"
0x0089  0x0113  "tulip_cb"     "Intel EtherExpress PRO/100 CardBus"            "cardbus"
0x0104  0x0145  "pcnet_cs"    "Socket CF+ 10/100 Fast Ethernet"                "ethernet"
0x10b   0xd180  "serial_cs"   "National Instruments PCMCIA-232/4"              "modem"
0x89    0xa2    "iflash2_mtd" "Intel Series 2 Flash"                           "memory"
0x021b  0x0202  "pcnet_cs"    "Asix AX88190 Fast Ethernet"                     "ethernet"
0x0149  0x021b  "pcnet_cs"    "Realtek||RTL-8029AS - 10/100MB ethernet chipset" "ethernet"
0x0149  0x0230  "pcnet_cs"    "NE2000 compatible PCMCIA Card"                  "ethernet"
0x021b  0x0230  "pcnet_cs"    "NE2000 compatible PCMCIA Card"                  "ethernet"
0x0149  0x0231  "tulip_cb"    "Linksys EtherFast 10/100"                       "cardbus"
0x026f  0x0300  "pcnet_cs"    "Buffalo LPC2-CLT Ethernet"                      "ethernet"
0x026f  0x0301  "axnet_cs"    "Buffalo LPC3-CLX Fast Ethernet"                 "ethernet"
0x0089  0x0301  "serial_cs"   "Silicom 2S100 Dual Serial"                      "modem"
0x026f  0x0303  "axnet_cs"    "Buffalo LPC4-TX Fast Ethernet"                  "ethernet"
0x026f  0x0305  "orinoco_cs"  "Buffalo WLI-PCM-S11"                            "wireless"
0x026f  0x0307  "pcnet_cs"    "Buffalo LPC2-CLT Ethernet"                      "ethernet"
0x026f  0x0309  "axnet_cs"    "Buffalo LPC4-CLX Fast Ethernet"                 "ethernet"
0x0105  0x0500  "tulip_cb"    "TDK NetworkFlyer 10/100 Fast Ethernet"          "cardbus"
0x0109  0x0501  "smc91c92''cs/serial''cs" "Motorola Mariner Ethernet/Modem"      "multicard"
0x021b  0x0510  "tulip_cb"     "PrimeXPress 10/100 Fast Ethernet"              "cardbus"
0x0101  0x0556  "3c589''cs/serial''cs" "3Com/Megahertz 3CCFEM556 Ethernet/Modem" "multicard"
0x0101  0x0562  "3c589''cs/serial''cs" "3Com 3c562/3c563 Ethernet/Modem"         "multicard"
0x0101  0x0574  "3c574_cs"    "3Com 572/574 Fast Ethernet"                     "ethernet"
0x0101  0x0589  "3c589_cs"    "3Com Corporation||3c589 PCMCIA Card"             "ethernet"
0x028a  0x0673  "orinoco_cs"  "Linksys WCF12 Wireless CompactFlash Card"       "wireless"
0x0032  0x0704  "ide-cs"      "KME KXLC005 CD-ROM"                             "cd-rom"
0x01eb  0x080a  "orinoco_cs"  "Nortel Networks eMobility 802.11 Wireless Adapter" "wireless"
0x13d1  0xab02  "tulip_cb"    "TRENDnet TE100-PCBUSR"                          "cardbus"
0x13d1  0xab03  "tulip_cb"    "Linksys EtherFast PCMPC200 v2"                  "cardbus"
0x14ea  0xb001  "orinoco_cs"  "PLANEX RoadLannerWave GW-NS11H"                 "wireless"
0x012f  0xcb01  "apa1480_cb"  "Adaptec APA-1480 SCSI Host Adapter"             "cardbus"
0x50c7  0xcafe  "tulip_cb"    "D-Link DFE-660 Fast Ethernet"                   "cardbus"
0x0143  0xc0ab  "pcnet''cs/serial''cs" "D-Link DMF560TX Ethernet/Modem"          "multicard"
0x08a1  0xc0ab  "pcnet''cs/serial''cs" "New Media LANSurfer 10+56 Ethernet/Modem" "multicard"
0x0105  0xea15  "pcnet''cs/serial''cs" "TDK DFL5610WS Ethernet/Modem"            "multicard"
0x0149  0xc2ab  "tulip_cb"    "Linksys EtherFast 10/100"                       "cardbus"
0x0149  0x0231  "tulip_cb"    "Linksys EtherFast 10/100"                       "cardbus"
0x0004  0x1003  "unknown"     "Fujistu||MBH10304"                               "unknown"
0x0057  0x1004  "pcnet_cs"    "Connectware LANdingGear Ethernet"               "ethernet"
0x02ac  0x1012  "tulip_cb"    "Siemens SpeedStream SS1012 Fast Ethernet"       "cardbus"
0xffff  0x1090  "pcnet_cs"    "NE2000 Compatible Fast Ethernet"                "ethernet"
0x0089  0x110a  "xirc2ps''cs/serial''cs" "Intel EtherExpress PRO/100 LAN/Modem"  "multicard"
0x0138  0x110a  "xirc2ps''cs/serial''cs" "Compaq Microcom CPQ550 Ethernet/Modem" "multicard"
0x0274  0x1103  "pcnet_cs"    "WiseCom iPort 10/100 Fast Ethernet"             "ethernet"
0x0089  0x1103  "eepro100''cb/serial''cb" "Intel EtherExpress PRO/100 LAN+Modem 56K CardBus II" "cardbus"
0x0274  0x1106  "axnet_cs"    "Asix AX88190 Fast Ethernet"                     "ethernet"
0x0274  0x1121  "pcnet_cs"    "iPort 10Mbps Ethernet"                          "ethernet"
0x0274  0x1613  "orinoco_cs"  "Linksys WPC11 11Mbps 802.11b WLAN Card"         "wireless"
0x1317  0x1985  "tulip_cb"    "NetGear FA511 Fast Ethernet"                    "cardbus"
0x0004  0x2000  "unknown"     "Fujistu||LA501"                                  "unknown"
0x022d  0x2103  "tulip_cb"    "AmbiCom CB100-EZ EzPort Fast Ethernet"          "cardbus"
0x01bf  0x2216  "pcnet_cs"    "Melco LPC2-T Ethernet"                          "ethernet"
0x01bf  0x2220  "tulip_cb"    "SMC EZ 10/100 Fast Ethernet"                    "cardbus"
0x01bf  0x2225  "tulip_cb"    "SMC EZ 10/100 Fast Ethernet"                    "cardbus"
0x01bf  0x2227  "tulip_cb"    "Accton EN2227 Fast Ethernet"                    "cardbus"
0x01bf  0x2328  "pcnet_cs"    "Belkin F5D5020 Fast Ethernet"                   "ethernet"
0x0213  0x2452  "pcnet_cs"    "Reliable Combo-L/M-56K"                         "multicard"
0x1106  0x3044  "ohci1394_cb" "Good Man VT6306 FireWire Adapter"               "firewire"
0x0143  0x3341  "pcnet''cs"    "serial''cs" "TDK 3000/3400/5670 Fast Ethernet/Modem" "multicard"
0x0105  0x410a  "serial_cs"   "TDK Global Pro ISDN V.90 Modem"                 "modem"
0x0149  0x4530  "pcnet_cs"    "D-Link DFE-670-TXD Fast Ethernet"               "ethernet"
0x0101  0x5057  "3c575_cb"    "3Com 3c575-TX Fast EtherLink XL"                "cardbus"
0x0101  0x5157  "3c575_cb"    "3Com 3CCFE575B/3CXFE575B Fast EtherLink XL"     "cardbus"
0x0101  0x5257  "3c575_cb"    "3Com 3CCFE575CT/3CXFE575CT Fast EtherLink XL"   "cardbus"
0x1234  0x5678  "axnet_cs"    "Corega FEther PCC-TXD"                          "ethernet"
0x0102  0x6560  "3c575_cb"    "3Com 3CCFEM656B w/Winmodem"                     "cardbus"
0x0102  0x6562  "3c575_cb"    "3Com 3CCFEM656B w/Winmodem"                     "cardbus"
0x0102  0x6564  "3c575_cb"    "3Com 3CXFEM656C w/Winmodem"                     "cardbus"
0x104c  0x8000  "pcilynx_cb"  "Newer Technology FireWire 2 Go"                 "firewire"
0x12ee  0x8010  "ohci1394_cb" "Orange Micro OrangeLink Firewire Adapter"       "firewire"
0x104c  0x8019  "ohci1394_cb" "Cherri IEEE-1394"                               "firewire"
0x01bf  0x8036  "tulip_cb"    "SMC 8036TX EZ 10/100 Fast Ethernet"             "cardbus"
0x01bf  0x8041  "pcnet_cs"    "SMC 8041TX 10/100 Fast Ethernet"                "ethernet"

论坛徽章:
0
4 [报告]
发表于 2008-06-03 13:27 |只看该作者
OpenBSD 4.2
/usr/src/sys/dev/pcmcia/if_ne_pcmcia.c

//因论坛字数限制,源程序分2部分贴//

/*        $OpenBSD: if_ne_pcmcia.c,v 1.90 2007/05/08 18:50:06 deraadt Exp $        */
/*        $NetBSD: if_ne_pcmcia.c,v 1.17 1998/08/15 19:00:04 thorpej Exp $        */

/*
* Copyright (c) 1997 Marc Horowitz.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
*    notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
*    notice, this list of conditions and the following disclaimer in the
*    documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
*    must display the following acknowledgement:
*        This product includes software developed by Marc Horowitz.
* 4. The name of the author may not be used to endorse or promote products
*    derived from this software without specific prior written permission.
*
*/

#include <sys/param.h>
#include <sys/systm.h>
#include <sys/selinfo.h>
#include <sys/device.h>
#include <sys/socket.h>

#include <net/if_types.h>
#include <net/if.h>
#include <net/if_media.h>
#include <netinet/in.h>
#include <netinet/if_ether.h>

#include <machine/bus.h>

#include <dev/pcmcia/pcmciareg.h>
#include <dev/pcmcia/pcmciavar.h>
#include <dev/pcmcia/pcmciadevs.h>

#include <dev/mii/miivar.h>
#include <dev/mii/mii_bitbang.h>

#include <dev/ic/dp8390reg.h>
#include <dev/ic/dp8390var.h>

#include <dev/ic/ne2000reg.h>
#include <dev/ic/ne2000var.h>

#include <dev/ic/dl10019reg.h>
#include <dev/ic/dl10019var.h>

#include <dev/ic/rtl80x9reg.h>
#include <dev/ic/rtl80x9var.h>

#include <dev/ic/ax88190reg.h>
#include <dev/ic/ax88190var.h>

int        ne_pcmcia_match(struct device *, void *, void *);
void        ne_pcmcia_attach(struct device *, struct device *, void *);
int        ne_pcmcia_detach(struct device *, int);
int        ne_pcmcia_activate(struct device *, enum devact);

int        ne_pcmcia_enable(struct dp8390_softc *);
void        ne_pcmcia_disable(struct dp8390_softc *);

struct ne_pcmcia_softc {
        struct ne2000_softc sc_ne2000;                /* real "ne2000" softc */

        /* PCMCIA-specific goo */
        struct pcmcia_io_handle sc_pcioh;        /* PCMCIA i/o information */
        int sc_asic_io_window;                        /* i/o window for ASIC */
        int sc_nic_io_window;                        /* i/o window for NIC */
        struct pcmcia_function *sc_pf;                /* our PCMCIA function */
        void *sc_ih;                                /* interrupt handle */
};

u_int8_t *
        ne_pcmcia_get_enaddr(struct ne_pcmcia_softc *, int,
            u_int8_t[ETHER_ADDR_LEN]);
u_int8_t *
        ne_pcmcia_dl10019_get_enaddr(struct ne_pcmcia_softc *,
            u_int8_t[ETHER_ADDR_LEN]);
int        ne_pcmcia_ax88190_set_iobase(struct ne_pcmcia_softc *);

struct cfattach ne_pcmcia_ca = {
        sizeof(struct ne_pcmcia_softc), ne_pcmcia_match, ne_pcmcia_attach,
        ne_pcmcia_detach, ne_pcmcia_activate
};

const struct ne2000dev {
    u_int16_t manufacturer;
    u_int16_t product;
    char *cis_info[4];
    int function;
    int enet_maddr;
    unsigned char enet_vendor[3];
    int flags;
#define NE2000DVF_AX88190        0x0002        /* chip is ASIX AX88190 */
} ne2000devs[] = {
    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_AMBICOM_AMB8002T,
      0, -1, { 0x00, 0x10, 0x7a } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_PREMAX_PE200,
      0, 0x07f0, { 0x00, 0x20, 0xe0 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_DIGITAL_DEPCMXX,
      0, 0x0ff0, { 0x00, 0x00, 0xe8 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_PLANET_SMARTCOM2000,
      0, 0x0ff0, { 0x00, 0x00, 0xe8 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_DLINK_DE660,
      0, -1, { 0x00, 0x80, 0xc8 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_DLINK_DE660PLUS,
      0, -1, { 0x00, 0x80, 0xc8 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_RPTI_EP400,
      0, -1, { 0x00, 0x40, 0x95 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_RPTI_EP401,
      0, -1, { 0x00, 0x40, 0x95 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_ACCTON_EN2212,
      0, 0x0ff0, { 0x00, 0x00, 0xe8 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_ADDTRON_W89C926,
      0, -1, { 0x00, 0x40, 0x33 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_SVEC_COMBOCARD,
      0, -1, { 0x00, 0xe0, 0x98 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_SVEC_LANCARD,
      0, 0x07f0, { 0x00, 0xc0, 0x6c } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_EPSON_EEN10B,
      PCMCIA_CIS_EPSON_EEN10B,
      0, 0x0ff0, { 0x00, 0x00, 0x48 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_EDIMAX_NE2000,
      0, -1, { 0x00, 0x00, 0xb4 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_CNET_NE2000,
      0, -1, { 0x00, 0x80, 0xad } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_CNET_CNF301,
      PCMCIA_CIS_CNET_CNF301,
      0, -1, { 0x00, 0x10, 0x60 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_BILLIONTON_LNT10TN,
      0, -1, { 0x00, 0x00, 0x00 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_NDC_ND5100_E,
      0, -1, { 0x00, 0x80, 0xc6 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_SYNERGY21_S21810,
      0, -1, { 0x00, 0x48, 0x54 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_TAMARACK_NE2000,
      0, -1, { 0x00, 0x47, 0x43 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_GVC_NIC2000P,
      0, 0x0ff0, { 0x00, 0x00, 0xe8 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_WISECOM_T210CT,
      0, -1, { 0x00, 0x20, 0x18 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_WISECOM_IPORT,
      0, -1, { 0x00, 0x02, 0xdd } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_AROWANA_FE,
      0, -1, { 0x00, 0x48, 0x54 }, NE2000DVF_AX88190 },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_GVC_NP0335,
      0, -1, { 0x00, 0x40, 0x05 } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_RELIA_RE2408T,
      0, -1, { 0x00, 0xc0, 0x0c } },

    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_BILLIONTON_CFLT2,
      0, -1, { 0x00, 0x10, 0x60 } },

    /*
     * You have to add new entries which contains
     * PCMCIA_VENDOR_INVALID and/or PCMCIA_PRODUCT_INVALID
     * in front of this comment.
     *
     * There are cards which use a generic vendor and product id but needs
     * a different handling depending on the cis_info, so ne2000_match
     * needs a table where the exceptions comes first and then the normal
     * product and vendor entries.
     */

    { PCMCIA_VENDOR_GREYCELL, PCMCIA_PRODUCT_GREYCELL_GCS2000,
      PCMCIA_CIS_GREYCELL_GCS2000,
      0, -1, { 0x00, 0x47, 0x43 } },

    { PCMCIA_VENDOR_IBM, PCMCIA_PRODUCT_IBM_INFOMOVER,
      PCMCIA_CIS_IBM_INFOMOVER,
      0, 0x0ff0, { 0x08, 0x00, 0x5a } },

    { PCMCIA_VENDOR_IBM, PCMCIA_PRODUCT_IBM_INFOMOVER,
      PCMCIA_CIS_IBM_INFOMOVER,
      0, 0x0ff0, { 0x00, 0x04, 0xac } },

    { PCMCIA_VENDOR_IBM, PCMCIA_PRODUCT_IBM_INFOMOVER,
      PCMCIA_CIS_IBM_INFOMOVER,
      0, 0x0ff0, { 0x00, 0x06, 0x29 } },

    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ECARD_1,
      PCMCIA_CIS_LINKSYS_ECARD_1,
      0, -1, { 0x00, 0x80, 0xc8 } },

    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_PCM100,
      PCMCIA_CIS_LINKSYS_PCM100,
      0, -1, { 0x00, 0x04, 0x5a } },

    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
      PCMCIA_CIS_LINKSYS_COMBO_ECARD,
      0, -1, { 0x00, 0x04, 0x5a }, NE2000DVF_AX88190 },

    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
      PCMCIA_CIS_LINKSYS_COMBO_ECARD,
      0, -1, { 0x00, 0x80, 0xc8 } },

    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
      PCMCIA_CIS_PLANEX_FNW3600T,
      0, -1, { 0x00, 0x90, 0xcc } },

    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
      PCMCIA_CIS_SVEC_PN650TX,
      0, -1, { 0x00, 0xe0, 0x98 } },

    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
      PCMCIA_CIS_TRENDNET_TECF100,
      0, -1, { 0x00, 0x12, 0x0e } },

    /*
     * This entry should be here so that above two cards doesn't
     * match with this.  FNW-3700T won't match above entries due to
     * MAC address check.
     */
    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
      PCMCIA_CIS_PLANEX_FNW3700T,
      0, -1, { 0x00, 0x90, 0xcc }, NE2000DVF_AX88190 },

    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ETHERFAST,
      PCMCIA_CIS_LINKSYS_ETHERFAST,
      0, -1, { 0x00, 0x80, 0xc8 } },

    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ETHERFAST,
      PCMCIA_CIS_LINKSYS_ETHERFAST,
      0, -1, { 0x00, 0x50, 0xba } },

    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ETHERFAST,
      PCMCIA_CIS_DLINK_DE650,
      0, -1, { 0x00, 0xe0, 0x98 } },

    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_NETGEAR_FA410TXC,
      PCMCIA_CIS_DLINK_DFE670TXD,
      0, -1, { 0x00, 0x05, 0x5d } },

    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_NETGEAR_FA410TXC,
      PCMCIA_CIS_DLINK_DFE670TXD,
      0, -1, { 0x00, 0x50, 0xba } },

    { PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_TRUST_COMBO_ECARD,
      PCMCIA_CIS_LINKSYS_TRUST_COMBO_ECARD,
      0, 0x0120, { 0x20, 0x04, 0x49 } },

    /* Although the comments above say to put VENDOR/PRODUCT INVALID IDs
       above this list, we need to keep this one below the ECARD_1, or else
       both will match the same more-generic entry rather than the more
       specific one above with proper vendor and product IDs. */
    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_LINKSYS_ECARD_2,
      0, -1, { 0x00, 0x80, 0xc8 } },

    /*
     * D-Link DE-650 has many minor versions:
     *
     *   CIS information          Manufacturer Product  Note
     * 1 "D-Link, DE-650"             INVALID  INVALID  white card
     * 2 "D-Link, DE-650, Ver 01.00"  INVALID  INVALID  became bare metal
     * 3 "D-Link, DE-650, Ver 01.00"   0x149    0x265   minor change in look
     * 4 "D-Link, DE-650, Ver 01.00"   0x149    0x265   collision LED added
     *
     * While the 1st and the 2nd types should use the "D-Link DE-650" entry,
     * the 3rd and the 4th types should use the "Linksys EtherCard" entry.
     * Therefore, this entry must be below the LINKSYS_ECARD_1.  --itohy
     */
    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_DLINK_DE650,
      0, 0x0040, { 0x00, 0x80, 0xc8 } },

    /*
     * IO-DATA PCLA/TE and later version of PCLA/T has valid
     * vendor/product ID and it is possible to read MAC address
     * using standard I/O ports.  It also read from CIS offset 0x01c0.
     * On the other hand, earlier version of PCLA/T doesn't have valid
     * vendor/product ID and MAC address must be read from CIS offset
     * 0x0ff0 (i.e., usual ne2000 way to read it doesn't work).
     * And CIS information of earlier and later version of PCLA/T are
     * same except fourth element.  So, for now, we place the entry for
     * PCLA/TE (and later version of PCLA/T) followed by entry
     * for the earlier version of PCLA/T (or, modify to match all CIS
     * information and have three or more individual entries).
     */
    { PCMCIA_VENDOR_IODATA, PCMCIA_PRODUCT_IODATA_PCLATE,
      PCMCIA_CIS_IODATA_PCLATE,
      0, -1, { 0x00, 0xa0, 0xb0 } },

    /*
     * This entry should be placed after above PCLA-TE entry.
     * See above comments for detail.
     */
    { PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
      PCMCIA_CIS_IODATA_PCLAT,
      0, 0x0ff0, { 0x00, 0xa0, 0xb0 } },

    { PCMCIA_VENDOR_DAYNA, PCMCIA_PRODUCT_DAYNA_COMMUNICARD_E_1,
      PCMCIA_CIS_DAYNA_COMMUNICARD_E_1,
      0, 0x0110, { 0x00, 0x80, 0x19 } },

    { PCMCIA_VENDOR_DAYNA, PCMCIA_PRODUCT_DAYNA_COMMUNICARD_E_2,
      PCMCIA_CIS_DAYNA_COMMUNICARD_E_2,
      0, -1, { 0x00, 0x80, 0x19 } },

    { PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_PCC_T,
      PCMCIA_CIS_COREGA_ETHER_PCC_T,
      0, -1, { 0x00, 0x00, 0xf4 } },

    { PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_PCC_TD,
      PCMCIA_CIS_COREGA_ETHER_PCC_TD,
      0, -1, { 0x00, 0x00, 0xf4 } },

    { PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_II_PCC_T,
      PCMCIA_CIS_COREGA_ETHER_II_PCC_T,
      0, -1, { 0x00, 0x00, 0xf4 } },

    { PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_II_PCC_TD,
      PCMCIA_CIS_COREGA_ETHER_II_PCC_TD,
      0, -1, { 0x00, 0x00, 0xf4 } },

    { PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_FAST_ETHER_PCC_TX,
      PCMCIA_CIS_COREGA_FAST_ETHER_PCC_TX,
      0, -1, { 0x00, 0x00, 0xf4 } },

    { PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_FETHER_PCC_TXF,
      PCMCIA_CIS_COREGA_FETHER_PCC_TXF,
      0, -1, { 0x00, 0x90, 0x99 } },

    { PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_FETHER_PCC_TXD,
      PCMCIA_CIS_COREGA_FETHER_PCC_TXD,
      0, -1, { 0x00, 0x90, 0x99 } },

    { PCMCIA_VENDOR_COMPEX, PCMCIA_PRODUCT_COMPEX_LINKPORT_ENET_B,
      PCMCIA_CIS_COMPEX_LINKPORT_ENET_B,
      0, 0x01c0, { 0x00, 0xa0, 0x0c } },

    { PCMCIA_VENDOR_SMC, PCMCIA_PRODUCT_SMC_EZCARD,
      PCMCIA_CIS_SMC_EZCARD,
      0, 0x01c0, { 0x00, 0xe0, 0x29 } },

    { PCMCIA_VENDOR_IODATA, PCMCIA_PRODUCT_IODATA_8041TX,
      PCMCIA_CIS_IODATA_8041TX,
      0, -1, { 0x00, 0x04, 0xe2 } },

    { PCMCIA_VENDOR_SMC, PCMCIA_PRODUCT_SMC_8041,
      PCMCIA_CIS_SMC_8041,
      0, -1, { 0x00, 0x04, 0xe2 } },

    { PCMCIA_VENDOR_SOCKET, PCMCIA_PRODUCT_SOCKET_LP_ETHER_CF,
      PCMCIA_CIS_SOCKET_LP_ETHER_CF,
      0, -1, { 0x00, 0xc0, 0x1b} },

    { PCMCIA_VENDOR_SOCKET, PCMCIA_PRODUCT_SOCKET_LP_ETHER,
      PCMCIA_CIS_SOCKET_LP_ETHER,
      0, -1, { 0x00, 0xc0, 0x1b } },

    { PCMCIA_VENDOR_SOCKET, PCMCIA_PRODUCT_SOCKET_ETHER_CF_10_100,
      PCMCIA_CIS_SOCKET_ETHER_CF_10_100,
      0, -1, { 0x00, 0x12, 0x0e } },

    { PCMCIA_VENDOR_SOCKET, PCMCIA_PRODUCT_SOCKET_ETHER_CF_10_100,
      PCMCIA_CIS_SOCKET_ETHER_CF_10_100,
      0, -1, { 0x00, 0xe0, 0x98 } },

    { PCMCIA_VENDOR_XIRCOM, PCMCIA_PRODUCT_XIRCOM_CFE_10,
      PCMCIA_CIS_XIRCOM_CFE_10,
      0, -1, { 0x00, 0x10, 0xa4 } },

    { PCMCIA_VENDOR_MELCO, PCMCIA_PRODUCT_MELCO_LPC3_TX,
      PCMCIA_CIS_MELCO_LPC3_TX,
      0, -1, { 0x00, 0x40, 0x26 }, NE2000DVF_AX88190 },

    { PCMCIA_VENDOR_BUFFALO, PCMCIA_PRODUCT_BUFFALO_LPC_CF_CLT,
      PCMCIA_CIS_INVALID,
      0, -1, { 0x00, 0x07, 0x40 } },

    { PCMCIA_VENDOR_BUFFALO, PCMCIA_PRODUCT_BUFFALO_LPC3_CLT,
      PCMCIA_CIS_INVALID,
      0, -1, { 0x00, 0x07, 0x40 } },

    { PCMCIA_VENDOR_BUFFALO, PCMCIA_PRODUCT_BUFFALO_LPC4_CLX,
      PCMCIA_CIS_INVALID,
      0, -1, { 0x00, 0x40, 0xfa }, NE2000DVF_AX88190 },

    { PCMCIA_VENDOR_DUAL, PCMCIA_PRODUCT_DUAL_NE2000,
      PCMCIA_CIS_DUAL_NE2000,
      0, 0x0ff0, { 0x00, 0xa0, 0x0c } },

    { PCMCIA_VENDOR_ALLIEDTELESIS, PCMCIA_PRODUCT_ALLIEDTELESIS_LA_PCM,
      PCMCIA_CIS_ALLIEDTELESIS_LA_PCM,
      0, 0x0ff0, { 0x00, 0x00, 0xf4 } },

    { PCMCIA_VENDOR_KINGSTON, PCMCIA_PRODUCT_KINGSTON_KNE_PCM,
      PCMCIA_CIS_KINGSTON_KNE_PCM,
      0, 0x0ff0, { 0xe2, 0x0c, 0x0f } },

    { PCMCIA_VENDOR_KINGSTON, PCMCIA_PRODUCT_KINGSTON_KNE_PC2,
      PCMCIA_CIS_KINGSTON_KNE_PC2,
      0, 0x0180, { 0x00, 0xc0, 0xf0 } },

    { PCMCIA_VENDOR_TELECOMDEVICE, PCMCIA_PRODUCT_TELECOMDEVICE_TCD_HPC100,
      PCMCIA_CIS_TELECOMDEVICE_TCD_HPC100,
      0, -1, { 0x00, 0x40, 0x26 }, NE2000DVF_AX88190 },

    { PCMCIA_VENDOR_MACNICA, PCMCIA_PRODUCT_MACNICA_ME1_JEIDA,
      PCMCIA_CIS_MACNICA_ME1_JEIDA,
      0, 0x00b8, { 0x08, 0x00, 0x42 } },

    { PCMCIA_VENDOR_NETGEAR, PCMCIA_PRODUCT_NETGEAR_FA410TXC,
      PCMCIA_CIS_NETGEAR_FA410TXC,
      0, -1, { 0x00, 0x40, 0xf4 } },

    { PCMCIA_VENDOR_NETGEAR, PCMCIA_PRODUCT_NETGEAR_FA410TXC,
      PCMCIA_CIS_NETGEAR_FA410TXC,
      0, -1, { 0x00, 0x48, 0x54 } },

    { PCMCIA_VENDOR_NETGEAR, PCMCIA_PRODUCT_NETGEAR_FA410TXC,
      PCMCIA_CIS_DLINK_DFE670TXD,
      0, -1, { 0x00, 0x40, 0x05 } },

    { PCMCIA_VENDOR_NETGEAR, PCMCIA_PRODUCT_NETGEAR_FA410TXC,
      PCMCIA_CIS_DLINK_DFE670TXD,
      0, -1, { 0x00, 0x11, 0x95 } },

     { PCMCIA_VENDOR_NETGEAR, PCMCIA_PRODUCT_NETGEAR_FA410TXC,
       PCMCIA_CIS_DLINK_DFE670TXD,
       0, -1, { 0x00, 0x0d, 0x88 } },

    { PCMCIA_VENDOR_NETGEAR, PCMCIA_PRODUCT_NETGEAR_FA411,
      PCMCIA_CIS_NETGEAR_FA411,
      0, -1, { 0x00, 0x40, 0xf4 } },

    { PCMCIA_VENDOR_BELKIN, PCMCIA_PRODUCT_BELKIN_F5D5020,
      PCMCIA_CIS_BELKIN_F5D5020,
      0, -1, { 0x00, 0x30, 0xbd } },

#if 0
    /* the rest of these are stolen from the linux pcnet pcmcia device
       driver.  Since I don't know the manfid or cis info strings for
       any of them, they're not compiled in until I do. */
    { "APEX MultiCard",
      0x0000, 0x0000, NULL, NULL, 0,
      0x03f4, { 0x00, 0x20, 0xe5 } },
    { "ASANTE FriendlyNet",
      0x0000, 0x0000, NULL, NULL, 0,
      0x4910, { 0x00, 0x00, 0x94 } },
    { "Danpex EN-6200P2",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0110, { 0x00, 0x40, 0xc7 } },
    { "DataTrek NetCard",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0ff0, { 0x00, 0x20, 0xe8 } },
    { "EP-210 Ethernet",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0110, { 0x00, 0x40, 0x33 } },
    { "ELECOM Laneed LD-CDWA",
      0x0000, 0x0000, NULL, NULL, 0,
      0x00b8, { 0x08, 0x00, 0x42 } },
    { "Grey Cell GCS2220",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0000, { 0x00, 0x47, 0x43 } },
    { "Hypertec Ethernet",
      0x0000, 0x0000, NULL, NULL, 0,
      0x01c0, { 0x00, 0x40, 0x4c } },
    { "IBM FME",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0374, { 0x00, 0x04, 0xac } },
    { "IBM FME",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0374, { 0x08, 0x00, 0x5a } },
    { "Katron PE-520",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0110, { 0x00, 0x40, 0xf6 } },
    { "Kingston KNE-PCM/x",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0ff0, { 0x00, 0xc0, 0xf0 } },
    { "Longshine LCS-8534",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0000, { 0x08, 0x00, 0x00 } },
    { "Maxtech PCN2000",
      0x0000, 0x0000, NULL, NULL, 0,
      0x5000, { 0x00, 0x00, 0xe8 } },
    { "NDC Instant-Link",
      0x0000, 0x0000, NULL, NULL, 0,
      0x003a, { 0x00, 0x80, 0xc6 } },
    { "Network General Sniffer",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0ff0, { 0x00, 0x00, 0x65 } },
    { "Panasonic VEL211",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0ff0, { 0x00, 0x80, 0x45 } },
    { "SCM Ethernet",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0ff0, { 0x00, 0x20, 0xcb } },
    { "Socket EA",
      0x0000, 0x0000, NULL, NULL, 0,
      0x4000, { 0x00, 0xc0, 0x1b } },
    { "Volktek NPL-402CT",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0060, { 0x00, 0x40, 0x05 } },
#endif
};

论坛徽章:
0
5 [报告]
发表于 2008-06-03 13:28 |只看该作者
  /* the rest of these are stolen from the linux pcnet pcmcia device
       driver.  Since I don't know the manfid or cis info strings for
       any of them, they're not compiled in until I do. */
    { "APEX MultiCard",
      0x0000, 0x0000, NULL, NULL, 0,
      0x03f4, { 0x00, 0x20, 0xe5 } },
    { "ASANTE FriendlyNet",
      0x0000, 0x0000, NULL, NULL, 0,
      0x4910, { 0x00, 0x00, 0x94 } },
    { "Danpex EN-6200P2",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0110, { 0x00, 0x40, 0xc7 } },
    { "DataTrek NetCard",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0ff0, { 0x00, 0x20, 0xe8 } },
    { "EP-210 Ethernet",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0110, { 0x00, 0x40, 0x33 } },
    { "ELECOM Laneed LD-CDWA",
      0x0000, 0x0000, NULL, NULL, 0,
      0x00b8, { 0x08, 0x00, 0x42 } },
    { "Grey Cell GCS2220",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0000, { 0x00, 0x47, 0x43 } },
    { "Hypertec Ethernet",
      0x0000, 0x0000, NULL, NULL, 0,
      0x01c0, { 0x00, 0x40, 0x4c } },
    { "IBM FME",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0374, { 0x00, 0x04, 0xac } },
    { "IBM FME",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0374, { 0x08, 0x00, 0x5a } },
    { "Katron PE-520",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0110, { 0x00, 0x40, 0xf6 } },
    { "Kingston KNE-PCM/x",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0ff0, { 0x00, 0xc0, 0xf0 } },
    { "Longshine LCS-8534",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0000, { 0x08, 0x00, 0x00 } },
    { "Maxtech PCN2000",
      0x0000, 0x0000, NULL, NULL, 0,
      0x5000, { 0x00, 0x00, 0xe8 } },
    { "NDC Instant-Link",
      0x0000, 0x0000, NULL, NULL, 0,
      0x003a, { 0x00, 0x80, 0xc6 } },
    { "Network General Sniffer",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0ff0, { 0x00, 0x00, 0x65 } },
    { "anasonic VEL211",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0ff0, { 0x00, 0x80, 0x45 } },
    { "SCM Ethernet",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0ff0, { 0x00, 0x20, 0xcb } },
    { "Socket EA",
      0x0000, 0x0000, NULL, NULL, 0,
      0x4000, { 0x00, 0xc0, 0x1b } },
    { "Volktek NPL-402CT",
      0x0000, 0x0000, NULL, NULL, 0,
      0x0060, { 0x00, 0x40, 0x05 } },
#endif
};

#define        NE2000_NDEVS        (sizeof(ne2000devs) / sizeof(ne2000devs[0]))

#define ne2000_match(card, fct, n) \
((((((card)->manufacturer != PCMCIA_VENDOR_INVALID) && \
    ((card)->manufacturer == ne2000devs[(n)].manufacturer) && \
    ((card)->product != PCMCIA_PRODUCT_INVALID) && \
    ((card)->product == ne2000devs[(n)].product)) || \
   ((ne2000devs[(n)].cis_info[0]) && (ne2000devs[(n)].cis_info[1]) && \
    ((card)->cis1_info[0]) && ((card)->cis1_info[1]) && \
    (strcmp((card)->cis1_info[0], ne2000devs[(n)].cis_info[0]) == 0) && \
    (strcmp((card)->cis1_info[1], ne2000devs[(n)].cis_info[1]) == 0))) && \
  ((fct) == ne2000devs[(n)].function))? \
&ne2000devs[(n)]:NULL)

int
ne_pcmcia_match(parent, match, aux)
        struct device *parent;
        void *match, *aux;
{
        struct pcmcia_attach_args *pa = aux;
        int i;

        for (i = 0; i < NE2000_NDEVS; i++) {
                if (ne2000_match(pa->card, pa->pf->number, i))
                        return (1);
        }

        return (0);
}

void
ne_pcmcia_attach(parent, self, aux)
        struct device *parent, *self;
        void *aux;
{
        struct ne_pcmcia_softc *psc = (void *) self;
        struct ne2000_softc *nsc = &psc->sc_ne2000;
        struct dp8390_softc *dsc = &nsc->sc_dp8390;
        struct pcmcia_attach_args *pa = aux;
        struct pcmcia_config_entry *cfe;
        const struct ne2000dev *ne_dev;
        const char *intrstr;
        int i;
        u_int8_t myea[6], *enaddr;

        psc->sc_pf = pa->pf;

        for (cfe = SIMPLEQ_FIRST(&pa->pf->cfe_head); cfe != NULL;
            cfe = SIMPLEQ_NEXT(cfe, cfe_list)) {
#if 0
                /*
                 * Some ne2000 driver's claim to have memory; others don't.
                 * Since I don't care, I don't check.
                 */

                if (cfe->num_memspace != 1) {
                        printf(": unexpected number of memory spaces, "
                            " %d should be 1\n", cfe->num_memspace);
                        return;
                }
#endif

                if (cfe->num_iospace == 1) {
                        if (cfe->iospace[0].length != NE2000_NPORTS) {
                                printf(": unexpected I/O space "
                                    "configuration\n";
                                continue;
                        }
                } else if (cfe->num_iospace == 2) {
                        /*
                         * Some cards report a separate space for NIC and ASIC.
                         * This make some sense, but we must allocate a single
                         * NE2000_NPORTS-sized chunk, due to brain damaged
                         * address decoders on some of these cards.
                         */
                        if (cfe->iospace[0].length + cfe->iospace[1].length !=
                            NE2000_NPORTS) {
#ifdef DIAGNOSTIC
                                printf(": unexpected I/O space "
                                    "configuration\n";
#endif
                                continue;
                        }
                } else {
#ifdef DIAGNOSTIC
                        printf(": unexpected number of i/o spaces %d"
                            " should be 1 or 2\n", cfe->num_iospace);
#endif
                        continue;
                }

                if (pcmcia_io_alloc(pa->pf, cfe->iospace[0].start,
                    NE2000_NPORTS, NE2000_NPORTS, &psc->sc_pcioh)) {
#ifdef DIAGNOSTIC
                        printf(": can't allocate I/O space\n";
#endif
                        continue;
                }

                break;
        }

        if (cfe == NULL) {
                printf(": no suitable config entry\n";
                goto fail_1;
        }

        dsc->sc_regt = psc->sc_pcioh.iot;
        dsc->sc_regh = psc->sc_pcioh.ioh;

        nsc->sc_asict = psc->sc_pcioh.iot;
        if (bus_space_subregion(dsc->sc_regt, dsc->sc_regh,
            NE2000_ASIC_OFFSET, NE2000_ASIC_NPORTS, &nsc->sc_asich)) {
                printf(": can't get subregion for asic\n";
                goto fail_2;
        }

#ifdef notyet
        /* Set up power management hooks. */
        dsc->sc_enable = ne_pcmcia_enable;
        dsc->sc_disable = ne_pcmcia_disable;
#endif

        /* Enable the card. */
        pcmcia_function_init(pa->pf, cfe);
        if (pcmcia_function_enable(pa->pf)) {
                printf(": function enable failed\n";
                goto fail_2;
        }

        dsc->sc_enabled = 1;

        /* some cards claim to be io16, but they're lying. */
        if (pcmcia_io_map(pa->pf, PCMCIA_WIDTH_IO8, NE2000_NIC_OFFSET,
            NE2000_NIC_NPORTS, &psc->sc_pcioh, &psc->sc_nic_io_window)) {
                printf(": can't map NIC I/O space\n";
                goto fail_3;
        }

        if (pcmcia_io_map(pa->pf, PCMCIA_WIDTH_IO16, NE2000_ASIC_OFFSET,
            NE2000_ASIC_NPORTS, &psc->sc_pcioh, &psc->sc_asic_io_window)) {
                printf(": can't map ASIC I/O space\n";
                goto fail_4;
        }

        printf(" port 0x%lx/%d", psc->sc_pcioh.addr, NE2000_NPORTS);

        /*
         * Read the station address from the board.
         */
        i = 0;
again:
        enaddr = NULL;                        /* Ask ASIC by default */
        for (; i < NE2000_NDEVS; i++) {
                ne_dev = ne2000_match(pa->card, pa->pf->number, i);
                if (ne_dev != NULL) {
                        if (ne_dev->enet_maddr >= 0) {
                                enaddr = ne_pcmcia_get_enaddr(psc,
                                    ne_dev->enet_maddr, myea);
                                if (enaddr == NULL)
                                        continue;
                        } else {
                                enaddr = ne_pcmcia_dl10019_get_enaddr(psc,
                                    myea);
                        }
                        break;
                }
        }
        if (i == NE2000_NDEVS) {
                printf(": can't match ethernet vendor code\n";
                goto fail_5;
        }

        if (enaddr != NULL) {
                /*
                 * Make sure this is what we expect.
                 */
                if (enaddr[0] != ne_dev->enet_vendor[0] ||
                    enaddr[1] != ne_dev->enet_vendor[1] ||
                    enaddr[2] != ne_dev->enet_vendor[2]) {
                        ++i;
                        goto again;
                }
        }

        if ((ne_dev->flags & NE2000DVF_AX88190) != 0) {
                if (ne_pcmcia_ax88190_set_iobase(psc))
                        goto fail_5;

                dsc->sc_mediachange = ax88190_mediachange;
                dsc->sc_mediastatus = ax88190_mediastatus;
                dsc->init_card = ax88190_init_card;
                dsc->stop_card = ax88190_stop_card;
                dsc->sc_media_init = ax88190_media_init;
                dsc->sc_media_fini = ax88190_media_fini;

                nsc->sc_type = NE2000_TYPE_AX88190;
        }

        /*
         * Check for a RealTek 8019.
         */
        bus_space_write_1(dsc->sc_regt, dsc->sc_regh, ED_P0_CR,
            ED_CR_PAGE_0 | ED_CR_STP);
        if (bus_space_read_1(dsc->sc_regt, dsc->sc_regh, NERTL_RTL0_8019ID0)
                == RTL0_8019ID0 &&
            bus_space_read_1(dsc->sc_regt, dsc->sc_regh, NERTL_RTL0_8019ID1)
                == RTL0_8019ID1) {
                dsc->sc_mediachange = rtl80x9_mediachange;
                dsc->sc_mediastatus = rtl80x9_mediastatus;
                dsc->init_card = rtl80x9_init_card;
                dsc->sc_media_init = rtl80x9_media_init;
        }

        if (nsc->sc_type == NE2000_TYPE_DL10019 ||
            nsc->sc_type == NE2000_TYPE_DL10022) {
                dsc->sc_mediachange = dl10019_mediachange;
                dsc->sc_mediastatus = dl10019_mediastatus;
                dsc->init_card = dl10019_init_card;
                dsc->stop_card = dl10019_stop_card;
                dsc->sc_media_init = dl10019_media_init;
                dsc->sc_media_fini = dl10019_media_fini;
        }

        /* set up the interrupt */
        psc->sc_ih = pcmcia_intr_establish(psc->sc_pf, IPL_NET, dp8390_intr,
            dsc, dsc->sc_dev.dv_xname);
        intrstr = pcmcia_intr_string(psc->sc_pf, psc->sc_ih);
        if (*intrstr)
                printf(", %s", intrstr);

        if (ne2000_attach(nsc, enaddr))
                goto fail_5;

#if notyet
        pcmcia_function_disable(pa->pf);
#endif
        return;

fail_5:
        /* Unmap ASIC I/O windows. */
        pcmcia_io_unmap(psc->sc_pf, psc->sc_asic_io_window);

fail_4:
        /* Unmap NIC I/O windows. */
        pcmcia_io_unmap(psc->sc_pf, psc->sc_nic_io_window);

fail_3:
        pcmcia_function_disable(pa->pf);

fail_2:
        /* Free our I/O space. */
        pcmcia_io_free(psc->sc_pf, &psc->sc_pcioh);

fail_1:
        psc->sc_nic_io_window = -1;
}

int
ne_pcmcia_detach(dev, flags)
        struct device *dev;
        int flags;
{
        struct ne_pcmcia_softc *psc = (struct ne_pcmcia_softc *)dev;
        int error;

        if (psc->sc_nic_io_window == -1)
                /* Nothing to detach. */
                return (0);

        error = ne2000_detach(&psc->sc_ne2000, flags);
        if (error != 0)
                return (error);

        /* Unmap our i/o windows. */
        pcmcia_io_unmap(psc->sc_pf, psc->sc_asic_io_window);
        pcmcia_io_unmap(psc->sc_pf, psc->sc_nic_io_window);

        /* Free our i/o space. */
        pcmcia_io_free(psc->sc_pf, &psc->sc_pcioh);

        return (0);
}

int
ne_pcmcia_activate(dev, act)
        struct device *dev;
        enum devact act;
{
        struct ne_pcmcia_softc *sc = (struct ne_pcmcia_softc *)dev;
        struct dp8390_softc *esc = &sc->sc_ne2000.sc_dp8390;
        struct ifnet *ifp = &esc->sc_arpcom.ac_if;
        int s;

        s = splnet();
        switch (act) {
        case DVACT_ACTIVATE:
                pcmcia_function_enable(sc->sc_pf);
                sc->sc_ih = pcmcia_intr_establish(sc->sc_pf, IPL_NET,
                    dp8390_intr, sc, esc->sc_dev.dv_xname);
                dp8390_init(esc);
                break;

        case DVACT_DEACTIVATE:
                ifp->if_timer = 0;
                if (ifp->if_flags & IFF_RUNNING)
                        dp8390_stop(esc);
                if (sc->sc_ih != NULL) {
                        pcmcia_intr_disestablish(sc->sc_pf, sc->sc_ih);
                        sc->sc_ih = NULL;
                }
                pcmcia_function_disable(sc->sc_pf);
                break;
        }
        splx(s);
        return (0);
}

#ifdef notyet
int
ne_pcmcia_enable(dsc)
        struct dp8390_softc *dsc;
{
        struct ne_pcmcia_softc *psc = (struct ne_pcmcia_softc *)dsc;

        /* set up the interrupt */
        psc->sc_ih = pcmcia_intr_establish(psc->sc_pf, IPL_NET, dp8390_intr,
            dsc, dsc->sc_dev.dv_xname);
        if (psc->sc_ih == NULL) {
                printf("%s: couldn't establish interrupt\n",
                    dsc->sc_dev.dv_xname);
                return (1);
        }

        return (pcmcia_function_enable(psc->sc_pf));
}

void
ne_pcmcia_disable(dsc)
        struct dp8390_softc *dsc;
{
        struct ne_pcmcia_softc *psc = (struct ne_pcmcia_softc *)dsc;

        pcmcia_intr_disestablish(psc->sc_pf, psc->sc_ih);
        pcmcia_function_disable(psc->sc_pf);
}
#endif

u_int8_t *
ne_pcmcia_get_enaddr(psc, maddr, myea)
        struct ne_pcmcia_softc *psc;
        int maddr;
        u_int8_t myea[ETHER_ADDR_LEN];
{
        struct ne2000_softc *nsc = &psc->sc_ne2000;
        struct dp8390_softc *dsc = &nsc->sc_dp8390;
        struct pcmcia_mem_handle pcmh;
        bus_size_t offset;
        u_int8_t *enaddr = NULL;
        int j, mwindow;

        if (maddr < 0)
                return (NULL);

        if (pcmcia_mem_alloc(psc->sc_pf, ETHER_ADDR_LEN * 2, &pcmh)) {
                printf("%s: can't alloc mem for enet addr\n",
                    dsc->sc_dev.dv_xname);
                goto fail_1;
        }
        if (pcmcia_mem_map(psc->sc_pf, PCMCIA_MEM_ATTR, maddr,
            ETHER_ADDR_LEN * 2, &pcmh, &offset, &mwindow)) {
                printf("%s: can't map mem for enet addr\n",
                    dsc->sc_dev.dv_xname);
                goto fail_2;
        }
        for (j = 0; j < ETHER_ADDR_LEN; j++)
                myea[j] = bus_space_read_1(pcmh.memt, pcmh.memh,
                    offset + (j * 2));
        enaddr = myea;

        pcmcia_mem_unmap(psc->sc_pf, mwindow);
fail_2:
        pcmcia_mem_free(psc->sc_pf, &pcmh);
fail_1:
        return (enaddr);
}

u_int8_t *
ne_pcmcia_dl10019_get_enaddr(psc, myea)
        struct ne_pcmcia_softc *psc;
        u_int8_t myea[ETHER_ADDR_LEN];
{
        struct ne2000_softc *nsc = &psc->sc_ne2000;
        u_int8_t sum;
        int j, type;

        for (j = 0, sum = 0; j < 8; j++) {
                sum += bus_space_read_1(nsc->sc_asict, nsc->sc_asich,
                    0x04 + j);
        }
        if (sum != 0xff)
                return (NULL);

        for (j = 0; j < ETHER_ADDR_LEN; j++) {
                myea[j] = bus_space_read_1(nsc->sc_asict,
                    nsc->sc_asich, 0x04 + j);
        }

        /* XXX - magic values from Linux */
        type = bus_space_read_1(nsc->sc_asict, nsc->sc_asich, 0x0f);
        if (type == 0x91 || type == 0x99)
                nsc->sc_type = NE2000_TYPE_DL10022;
        else
                nsc->sc_type = NE2000_TYPE_DL10019;

        return (myea);
}

int
ne_pcmcia_ax88190_set_iobase(psc)
        struct ne_pcmcia_softc *psc;
{
        struct ne2000_softc *nsc = &psc->sc_ne2000;
        struct dp8390_softc *dsc = &nsc->sc_dp8390;
        struct pcmcia_mem_handle pcmh;
        bus_size_t offset;
        int rv = 1, mwindow;

        if (pcmcia_mem_alloc(psc->sc_pf, AX88190_LAN_IOSIZE, &pcmh)) {
                printf("%s: can't alloc mem for LAN iobase\n",
                    dsc->sc_dev.dv_xname);
                goto fail_1;
        }
        if (pcmcia_mem_map(psc->sc_pf, PCMCIA_MEM_ATTR,
            AX88190_LAN_IOBASE, AX88190_LAN_IOSIZE, &pcmh, &offset,
            &mwindow)) {
                printf("%s: can't map mem for LAN iobase\n",
                    dsc->sc_dev.dv_xname);
                goto fail_2;
        }

#ifdef NE_DEBUG
        printf(": LAN iobase 0x%x (0x%x) ->",
            bus_space_read_1(pcmh.memt, pcmh.memh, offset + 0) |
            bus_space_read_1(pcmh.memt, pcmh.memh, offset + 2) << 8,
            (u_int)psc->sc_pcioh.addr);
#endif
        bus_space_write_1(pcmh.memt, pcmh.memh, offset,
            psc->sc_pcioh.addr & 0xff);
        bus_space_write_1(pcmh.memt, pcmh.memh, offset + 2,
            psc->sc_pcioh.addr >> ;
#ifdef NE_DEBUG
        printf(" 0x%x", bus_space_read_1(pcmh.memt, pcmh.memh, offset + 0) |
            bus_space_read_1(pcmh.memt, pcmh.memh, offset + 2) << ;
#endif
        rv = 0;

        pcmcia_mem_unmap(psc->sc_pf, mwindow);
fail_2:
        pcmcia_mem_free(psc->sc_pf, &pcmh);
fail_1:
        return (rv);
}

论坛徽章:
0
6 [报告]
发表于 2008-06-08 14:40 |只看该作者
找了个linux发行版的live cd 测试
默认就能驱动 网卡跟modem
dmesg 关键的几句
Serial: 8250/16550 driver $Revision: 1.90 $ 48 ports, IRQ sharing enabled
[4294748.659000] cs: IO port probe 0x100-0x3af:<6>eth1: NE2000 Compatible: io 0x2300, irq 3, hw_addr 00:11:22:33:44:55
[4294748.849000] 1.1: ttyS4 at I/O 0x22f8 (irq = 3) is a 16550A

[4294667.296000] Linux version 2.6.15-23-386 (buildd@rothera) (gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)) #1 PREEMPT Tue May 23 13:49:40 UTC 2006
[4294667.296000] BIOS-provided physical RAM map:
[4294667.296000]  BIOS-e820: 0000000000000000 - 000000000009e400 (usable)
[4294667.296000]  BIOS-e820: 000000000009e400 - 00000000000a0000 (reserved)
[4294667.296000]  BIOS-e820: 00000000000c0000 - 00000000000d0000 (reserved)
[4294667.296000]  BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
[4294667.296000]  BIOS-e820: 0000000000100000 - 000000000fe70000 (usable)
[4294667.296000]  BIOS-e820: 000000000fe70000 - 000000000fe7f000 (ACPI data)
[4294667.296000]  BIOS-e820: 000000000fe7f000 - 000000000fe80000 (ACPI NVS)
[4294667.296000]  BIOS-e820: 000000000fe80000 - 0000000010000000 (reserved)
[4294667.296000]  BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
[4294667.296000]  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[4294667.296000]  BIOS-e820: 00000000ffb80000 - 00000000ffc00000 (reserved)
[4294667.296000]  BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
[4294667.296000] 0MB HIGHMEM available.
[4294667.296000] 254MB LOWMEM available.
[4294667.296000] found SMP MP-table at 000f7250
[4294667.296000] On node 0 totalpages: 65136
[4294667.296000]   DMA zone: 4096 pages, LIFO batch:0
[4294667.296000]   DMA32 zone: 0 pages, LIFO batch:0
[4294667.296000]   Normal zone: 61040 pages, LIFO batch:15
[4294667.296000]   HighMem zone: 0 pages, LIFO batch:0
[4294667.296000] DMI 2.3 present.
[4294667.296000] ACPI: RSDP (v000 PTLTD                                 ) @ 0x000f7280
[4294667.296000] ACPI: RSDT (v001 NEC    DModel21 0x00000001 PTL  0x00000000) @ 0x0fe7ba48
[4294667.296000] ACPI: FADT (v001 NEC    DModel21 0x00000001 PTL  0x000f4240) @ 0x0fe7eef4
[4294667.296000] ACPI: MADT (v001 PTLTD           APIC   0x00000000  LTP 0x00000000) @ 0x0fe7ef68
[4294667.296000] ACPI: DBGP (v001 NEC    DModelxx 0x00000001 PTL  0x00000001) @ 0x0fe7efcc
[4294667.296000] ACPI: DSDT (v001    NEC D210G000 0x00000003 MSFT 0x0100000b) @ 0x00000000
[4294667.296000] ACPI: PM-Timer IO Port: 0x1008
[4294667.296000] ACPI: Local APIC address 0xfee00000
[4294667.296000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[4294667.296000] Processor #0 6:8 APIC version 17
[4294667.296000] ACPI: LAPIC_NMI (acpi_id[0x00] high level lint[0x1])
[4294667.296000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
[4294667.296000] IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 0-23
[4294667.296000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
[4294667.296000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[4294667.296000] ACPI: INT_SRC_OVR (bus 0 bus_irq 2 global_irq 0 high edge)
[4294667.296000] ACPI: IRQ0 used by override.
[4294667.296000] ACPI: IRQ2 used by override.
[4294667.296000] ACPI: IRQ9 used by override.
[4294667.296000] Enabling APIC mode:  Flat.  Using 1 I/O APICs
[4294667.296000] Using ACPI (MADT) for SMP configuration information
[4294667.296000] Allocating PCI resources starting at 20000000 (gap: 10000000:eec00000)
[4294667.296000] Built 1 zonelists
[4294667.296000] Kernel command line: preseed/file=/cdrom/preseed/xubuntu.seed boot=casper initrd=/casper/initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash -- BOOT_IMAGE=/casper/vmlinuz
[4294667.296000] mapped APIC to ffffd000 (fee00000)
[4294667.296000] mapped IOAPIC to ffffc000 (fec00000)
[4294667.296000] Initializing CPU#0
[4294667.296000] PID hash table entries: 1024 (order: 10, 16384 bytes)
[4294667.296000] Detected 997.519 MHz processor.
[4294667.296000] Using pmtmr for high-res timesource
[4294667.296000] Console: colour VGA+ 80x25
[4294670.789000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[4294670.789000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[4294670.818000] Memory: 247600k/260544k available (1976k kernel code, 12364k reserved, 606k data, 288k init, 0k highmem)
[4294670.818000] Checking if this processor honours the WP bit even in supervisor mode... Ok.
[4294670.878000] Calibrating delay using timer specific routine.. 1995.39 BogoMIPS (lpj=997695)
[4294670.878000] Security Framework v1.0.0 initialized
[4294670.878000] SELinux:  Disabled at boot.
[4294670.878000] Mount-cache hash table entries: 512
[4294670.878000] CPU: After generic identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
[4294670.878000] CPU: After vendor identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
[4294670.878000] CPU: L1 I cache: 16K, L1 D cache: 16K
[4294670.878000] CPU: L2 cache: 256K
[4294670.878000] CPU: After all inits, caps: 0383fbff 00000000 00000000 00000040 00000000 00000000 00000000
[4294670.878000] mtrr: v2.0 (20020519)
[4294670.878000] CPU: Intel Pentium III (Coppermine) stepping 0a
[4294670.878000] Enabling fast FPU save and restore... done.
[4294670.878000] Enabling unmasked SIMD FPU exception support... done.
[4294670.878000] Checking 'hlt' instruction... OK.
[4294670.882000] checking if image is initramfs... it is
[4294672.515000] Freeing initrd memory: 6835k freed
[4294672.557000] ACPI: Looking for DSDT ... not found!
[4294672.597000] ENABLING IO-APIC IRQs
[4294672.598000] ..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
[4294672.709000] NET: Registered protocol family 16
[4294672.709000] EISA bus registered
[4294672.709000] ACPI: bus type pci registered
[4294672.710000] PCI: PCI BIOS revision 2.10 entry at 0xfdcfc, last bus=1
[4294672.710000] PCI: Using configuration type 1
[4294672.711000] ACPI: Subsystem revision 20051216
[4294672.715000] ACPI: Interpreter enabled
[4294672.715000] ACPI: Using IOAPIC for interrupt routing
[4294672.715000] ACPI: PCI Root Bridge [PCI0] (0000:00)
[4294672.715000] PCI: Probing PCI hardware (bus 00)
[4294672.715000] ACPI: Assume root bridge [\_SB_.PCI0] bus is 0
[4294672.717000] Boot video device is 0000:00:01.0
[4294672.717000] PCI quirk: region 1000-107f claimed by ICH4 ACPI/GPIO/TCO
[4294672.717000] PCI quirk: region 1180-11bf claimed by ICH4 GPIO
[4294672.718000] PCI: Transparent bridge - 0000:00:1e.0
[4294672.718000] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[4294672.720000] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
[4294672.721000] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)
[4294672.721000] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
[4294672.722000] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, disabled.
[4294672.722000] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
[4294672.722000] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)
[4294672.723000] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, disabled.
[4294672.723000] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, disabled.
[4294672.724000] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)
[4294672.726000] Linux Plug and Play Support v0.97 (c) Adam Belay
[4294672.727000] pnp: PnP ACPI init
[4294672.730000] pnp: PnP ACPI: found 11 devices
[4294672.730000] PnPBIOS: Disabled by ACPI PNP
[4294672.730000] PCI: Using ACPI for IRQ routing
[4294672.730000] PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
[4294672.734000] PCI: Ignore bogus resource 6 [0:0] of 0000:00:01.0
[4294672.734000] PCI: Bus 2, cardbus bridge: 0000:01:03.0
[4294672.734000]   IO window: 00002400-000024ff
[4294672.734000]   IO window: 00002800-000028ff
[4294672.734000]   PREFETCH window: 20000000-21ffffff
[4294672.734000]   MEM window: e6000000-e7ffffff
[4294672.734000] PCI: Bus 6, cardbus bridge: 0000:01:03.1
[4294672.734000]   IO window: 00002c00-00002cff
[4294672.734000]   IO window: 00003000-000030ff
[4294672.734000]   PREFETCH window: 22000000-23ffffff
[4294672.734000]   MEM window: e8000000-e9ffffff
[4294672.735000] PCI: Bridge: 0000:00:1e.0
[4294672.735000]   IO window: 2000-4fff
[4294672.735000]   MEM window: e4100000-f41fffff
[4294672.735000]   PREFETCH window: 20000000-23ffffff
[4294672.735000] PCI: Setting latency timer of device 0000:00:1e.0 to 64
[4294672.735000] ACPI: PCI Interrupt 0000:01:03.0[A] -> GSI 18 (level, low) -> IRQ 177
[4294672.735000] ACPI: PCI Interrupt 0000:01:03.1[B] -> GSI 19 (level, low) -> IRQ 185
[4294672.736000] audit: initializing netlink socket (disabled)
[4294672.736000] audit(1212932127.735:1): initialized
[4294672.736000] VFS: Disk quotas dquot_6.5.1
[4294672.736000] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[4294672.736000] Initializing Cryptographic API
[4294672.736000] io scheduler noop registered
[4294672.736000] io scheduler anticipatory registered
[4294672.736000] io scheduler deadline registered
[4294672.736000] io scheduler cfq registered
[4294672.736000] isapnp: Scanning for PnP cards...
[4294673.094000] isapnp: No Plug & Play device found
[4294673.127000] PNP: PS/2 Controller [PNP0303:KBC0,PNP0f13:MSE0] at 0x60,0x64 irq 1,12
[4294673.133000] serio: i8042 AUX port at 0x60,0x64 irq 12
[4294673.134000] serio: i8042 KBD port at 0x60,0x64 irq 1
[4294673.134000] Serial: 8250/16550 driver $Revision: 1.90 $ 48 ports, IRQ sharing enabled
[4294673.141000] RAMDISK driver initialized: 16 RAM disks of 1048576K size 1024 blocksize
[4294673.141000] Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
[4294673.141000] ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
[4294673.141000] mice: PS/2 mouse device common for all mice
[4294673.142000] EISA: Probing bus 0 at eisa.0
[4294673.142000] Cannot allocate resource for EISA slot 1
[4294673.142000] Cannot allocate resource for EISA slot 2
[4294673.142000] Cannot allocate resource for EISA slot 3
[4294673.142000] Cannot allocate resource for EISA slot 4
[4294673.142000] EISA: Detected 0 cards.
[4294673.142000] NET: Registered protocol family 2
[4294673.151000] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[4294673.151000] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[4294673.151000] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[4294673.151000] TCP: Hash tables configured (established 8192 bind 8192)
[4294673.151000] TCP reno registered
[4294673.152000] TCP bic registered
[4294673.152000] NET: Registered protocol family 1
[4294673.152000] NET: Registered protocol family 8
[4294673.152000] NET: Registered protocol family 20
[4294673.152000] Using IPI Shortcut mode
[4294673.152000] ACPI wakeup devices:
[4294673.152000] PCI1 CRD0 CRD1 KBC0 MSE0 USB1 USB2
[4294673.152000] ACPI: (supports S0 S1 S3 S4 S5)
[4294673.152000] Freeing unused kernel memory: 288k freed
[4294673.170000] input: AT Translated Set 2 keyboard as /class/input/input0
[4294673.274000] vga16fb: initializing
[4294673.274000] vga16fb: mapped to 0xc00a0000
[4294673.383000] Console: switching to colour frame buffer device 80x25
[4294673.383000] fb0: VGA16 VGA frame buffer device
[4294674.486000] Capability LSM initialized
[4294675.648000] ICH2: IDE controller at PCI slot 0000:00:1f.1
[4294675.648000] ICH2: chipset revision 5
[4294675.648000] ICH2: not 100% native mode: will probe irqs later
[4294675.648000]     ide0: BM-DMA at 0x1880-0x1887, BIOS settings: hdaMA, hdb:pio
[4294675.648000]     ide1: BM-DMA at 0x1888-0x188f, BIOS settings: hdcMA, hdd:pio
[4294675.648000] Probing IDE interface ide0...
[4294675.912000] hda: ST313620A, ATA DISK drive
[4294676.524000] ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
[4294676.526000] Probing IDE interface ide1...
[4294677.199000] hdc: NEC CD-ROM DRIVE:291, ATAPI CD/DVD-ROM drive
[4294677.811000] ide1 at 0x170-0x177,0x376 on irq 15
[4294677.829000] hda: max request size: 128KiB
[4294677.829000] hda: 26692776 sectors (13666 MB) w/512KiB Cache, CHS=26480/16/63, UDMA(66)
[4294677.829000] hda: cache flushes not supported
[4294677.830000]  hda: hda1 hda2 < hda5 > hda3
[4294677.876000]  hda3: <bsd: hda6 hda7 hda8 hda9 hda10 >
[4294677.879000] hdc: ATAPI 24X CD-ROM drive, 128kB Cache, UDMA(33)
[4294677.879000] Uniform CD-ROM driver Revision: 3.20
[4294678.576000] usbcore: registered new driver usbfs
[4294678.577000] usbcore: registered new driver hub
[4294678.581000] USB Universal Host Controller Interface driver v2.3
[4294678.582000] ACPI: PCI Interrupt 0000:00:1f.2[D] -> GSI 19 (level, low) -> IRQ 185
[4294678.582000] PCI: Setting latency timer of device 0000:00:1f.2 to 64
[4294678.582000] uhci_hcd 0000:00:1f.2: UHCI Host Controller
[4294678.583000] uhci_hcd 0000:00:1f.2: new USB bus registered, assigned bus number 1
[4294678.583000] uhci_hcd 0000:00:1f.2: irq 185, io base 0x00001840
[4294678.584000] hub 1-0:1.0: USB hub found
[4294678.584000] hub 1-0:1.0: 2 ports detected
[4294678.685000] ACPI: PCI Interrupt 0000:00:1f.4[C] -> GSI 23 (level, low) -> IRQ 193
[4294678.685000] PCI: Setting latency timer of device 0000:00:1f.4 to 64
[4294678.685000] uhci_hcd 0000:00:1f.4: UHCI Host Controller
[4294678.685000] uhci_hcd 0000:00:1f.4: new USB bus registered, assigned bus number 2
[4294678.685000] uhci_hcd 0000:00:1f.4: irq 193, io base 0x00001860
[4294678.686000] hub 2-0:1.0: USB hub found
[4294678.686000] hub 2-0:1.0: 2 ports detected
[4294681.004000] ISO 9660 Extensions: Microsoft Joliet Level 3
[4294681.055000] ISO 9660 Extensions: RRIP_1991A
[4294681.111000] loop: loaded (max 8 devices)
[4294681.137000] Registering unionfs 1.1.2
[4294681.243000] squashfs: version 3.0prerelease (2006/1/24) Phillip Lougher
[4294731.688000] e100: Intel(R) PRO/100 Network Driver, 3.4.14-k4-NAPI
[4294731.688000] e100: Copyright(c) 1999-2005 Intel Corporation
[4294731.689000] ACPI: PCI Interrupt 0000:01:08.0[A] -> GSI 20 (level, low) -> IRQ 201
[4294731.712000] e100: eth0: e100_probe: addr 0xe4100000, irq 201, MAC addr 00:30:11:22:33:44
[4294743.339000] e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex
[4294744.054000] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[4294744.187000] Linux agpgart interface v0.101 (c) Dave Jones
[4294744.933000] input: PC Speaker as /class/input/input1
[4294744.944000] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[4294745.103000] NET: Registered protocol family 17
[4294745.112000] agpgart: Detected an Intel i810 E Chipset.
[4294745.152000] agpgart: AGP aperture is 64M @ 0xf8000000
[4294745.509000] Real Time Clock Driver v1.12
[4294745.594000] hw_random hardware driver 1.0.0 loaded
[4294745.679000] Floppy drive(s): fd0 is 1.44M
[4294745.848000] input: ImPS/2 Generic Wheel Mouse as /class/input/input2
[4294745.975000] FDC 0 is a post-1991 82077
[4294746.062000] i810_smbus 0000:00:01.0: i810/i815 i2c device found.
[4294746.484000] ACPI: PCI Interrupt 0000:01:03.0[A] -> GSI 18 (level, low) -> IRQ 177
[4294746.484000] Yenta: CardBus bridge found at 0000:01:03.0 [1033:813e]
[4294746.484000] Yenta: Enabling burst memory read transactions
[4294746.484000] Yenta: Using CSCINT to route CSC interrupts to PCI
[4294746.484000] Yenta: Routing CardBus interrupts to PCI
[4294746.484000] Yenta TI: socket 0000:01:03.0, mfunc 0x00001c22, devctl 0x64
[4294746.707000] Yenta: ISA IRQ mask 0x0cb8, PCI irq 177
[4294746.707000] Socket status: 30000006
[4294746.707000] Yenta: Raising subordinate bus# of parent bus (#01) from #01 to #05
[4294746.707000] pcmcia: parent PCI bridge I/O window: 0x2000 - 0x4fff
[4294746.707000] cs: IO port probe 0x2000-0x4fff: clean.
[4294746.709000] pcmcia: parent PCI bridge Memory window: 0xe4100000 - 0xf41fffff
[4294746.709000] pcmcia: parent PCI bridge Memory window: 0x20000000 - 0x23ffffff
[4294746.709000] ACPI: PCI Interrupt 0000:01:03.1[B] -> GSI 19 (level, low) -> IRQ 185
[4294746.709000] Yenta: CardBus bridge found at 0000:01:03.1 [1033:813e]
[4294746.709000] Yenta: Using CSCINT to route CSC interrupts to PCI
[4294746.709000] Yenta: Routing CardBus interrupts to PCI
[4294746.709000] Yenta TI: socket 0000:01:03.1, mfunc 0x00001c22, devctl 0x64
[4294746.865000] ACPI: PCI Interrupt 0000:00:1f.5[B] -> GSI 17 (level, low) -> IRQ 209
[4294746.865000] PCI: Setting latency timer of device 0000:00:1f.5 to 64
[4294746.876000] ts: Compaq touchscreen protocol output
[4294746.946000] Yenta: ISA IRQ mask 0x0cb8, PCI irq 185
[4294746.946000] Socket status: 30000010
[4294746.946000] Yenta: Raising subordinate bus# of parent bus (#01) from #05 to #09
[4294746.946000] pcmcia: parent PCI bridge I/O window: 0x2000 - 0x4fff
[4294746.946000] cs: IO port probe 0x2000-0x4fff: clean.
[4294746.948000] pcmcia: parent PCI bridge Memory window: 0xe4100000 - 0xf41fffff
[4294746.948000] pcmcia: parent PCI bridge Memory window: 0x20000000 - 0x23ffffff
[4294747.178000] intel8x0_measure_ac97_clock: measured 50922 usecs
[4294747.178000] intel8x0: clocking to 48000
[4294747.858000] pccard: PCMCIA card inserted into slot 1
[4294747.859000] cs: memory probe 0xe4100000-0xf41fffff: excluding 0xe4100000-0xe50fffff 0xe5900000-0xea0fffff 0xea900000-0xeb0fffff 0xeb900000-0xec0fffff 0xec900000-0xed0fffff 0xed900000-0xee0fffff 0xee900000-0xef0fffff 0xef900000-0xf00fffff 0xf0900000-0xf10fffff 0xf1900000-0xf20fffff 0xf2900000-0xf30fffff 0xf3900000-0xf48fffff
[4294747.868000] pcmcia: registering new device pcmcia1.0
[4294748.604000] pcmcia: registering new device pcmcia1.1
[4294748.659000] cs: IO port probe 0x100-0x3af:<6>eth1: NE2000 Compatible: io 0x2300, irq 3, hw_addr 00:11:22:33:44:55
[4294748.667000]  clean.
[4294748.667000] cs: IO port probe 0x3e0-0x4ff: clean.
[4294748.668000] cs: IO port probe 0x820-0x8ff: clean.
[4294748.668000] cs: IO port probe 0xc00-0xcf7: clean.
[4294748.669000] cs: IO port probe 0xa00-0xaff: clean.
[4294748.671000] cs: IO port probe 0x100-0x3af: clean.
[4294748.673000] cs: IO port probe 0x3e0-0x4ff: clean.
[4294748.674000] cs: IO port probe 0x820-0x8ff: clean.
[4294748.674000] cs: IO port probe 0xc00-0xcf7: clean.
[4294748.675000] cs: IO port probe 0xa00-0xaff: clean.
[4294748.849000] 1.1: ttyS4 at I/O 0x22f8 (irq = 3) is a 16550A
[4294749.177000] fuse init (API version 7.3)
[4294749.948000] md: md driver 0.90.3 MAX_MD_DEVS=256, MD_SB_DISKS=27
[4294749.948000] md: bitmap version 4.39
[4294750.812000] device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.com
[4294751.986000] NET: Registered protocol family 10
[4294751.986000] lo: Disabled Privacy Extensions
[4294751.987000] IPv6 over IPv4 tunneling driver
[4294762.272000] eth0: no IPv6 routers present
[4294762.568000] eth1: no IPv6 routers present
[4294780.167000] ACPI: Power Button (FF) [PWRF]
[4294780.322000] ibm_acpi: ec object not found
[4294780.356000] pcc_acpi: loading...
[4294786.857000] lp: driver loaded but no devices found
[4294786.884000] ppdev: user-space parallel port driver
[4294790.289000] apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16ac)
[4294790.289000] apm: overridden by ACPI.
[4295635.318000] CSLIP: code copyright 1989 Regents of the University of California
[4295635.427000] PPP generic driver version 2.4.2
[4295635.458000] NET: Registered protocol family 24
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP