summaryrefslogtreecommitdiffstats
path: root/release/texts/HARDWARE.TXT
blob: 02b1038aa6c15d5acc7ab733e03f00c8f0b22118 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
Table of Contents
-----------------
0.  Document Conventions
1.  Default Configuration (GENERIC kernel)
2.  Using UserConfig to change FreeBSD kernel settings
3.  LINT - other possible configurations
4.  Supported Hardware

See TROUBLE.TXT for Q&A on known hardware problems.

=========================================================================

0.      Document Conventions
--      --------------------

We have `underlined' text which represents user input with `-' symbols
throughout this document to differentiate it from the machine output.

1.      Default (GENERIC) Configuration
--      -------------------------------

The following table contains a list of all of the devices that are
present in the GENERIC kernel. This is the essential part of the 
operating system that is placed in your root partition during the 
installation process.  A compressed version of the GENERIC kernel is
also used on the installation floppy diskette and DOS boot image.

The table describes the various parameters used by the driver to
communicate with the hardware in your system.  There are four
parameters in the table, though not all are used by each and every
device:

   Port   The starting I/O port used by the device, shown in hexadecimal.

   IOMem  The lowest (or starting) memory address used by the device,
          also shown in hexadecimal.

   IRQ    The interrupt the device uses to alert the driver to an event,
          given in decimal.

   DRQ    The DMA (direct memory access) channel the device uses to move
          data to and from main memory, also given in decimal.

If an entry in the table has `n/a' for a value then it means that the
parameter in question does not apply to that device.  A value of `dyn'
means that the correct value should be determined automatically by the
kernel when the system boots and that you don't need to worry about
it.

If an entry is marked with an *, it means that support is currently
not available for it but should be back as soon as someone converts
the driver to work within the new 3.0 framework.

FreeBSD GENERIC kernel:

        Port    IRQ     DRQ     IOMem   Description
        ----    ---     ---     -----   ---------------------------------
fdc0    3f0     6       2       n/a     Floppy disk controller
wdc0    1f0     14      n/a     n/a     IDE/MFM/RLL disk controller
wdc1    170     15      n/a     n/a     IDE/MFM/RLL disk controller

adv0    n/a     n/a     n/a     n/a     AdvanSys ADP-9xx SCSI controller
ncr0    n/a     n/a     n/a     n/a     NCR PCI SCSI controller
bt0     330     dyn     dyn     dyn     Buslogic SCSI controller
uha0    330     dyn     6       dyn     Ultrastore 14f
aha0    330     dyn     5       dyn     Adaptec 154x/1535 SCSI controller
ahb0    dyn     dyn     dyn     dyn     Adaptec 174x SCSI controller
ahc0    dyn     dyn     dyn     dyn     Adaptec 274x/284x/294x SCSI controller
aic0*   340     11      dyn     dyn     Adaptec 152x/AIC-6360 SCSI
                                        controller
dpt     n/a     n/a     n/a     n/a     DPT RAID SCSI controllers.

wt0     300     5       1       dyn     Wangtek and Archive QIC-02/QIC-36

psm0    60      12      n/a     n/a     PS/2 Mouse

mcd0    300     10      n/a     n/a     Mitsumi CD-ROM
matcd0  230     n/a     n/a     n/a     Matsushita/Panasonic CD-ROM
scd0    230     n/a     n/a     n/a     Sony CD-ROM

sio0    3f8     4       n/a     n/a     Serial Port 0 (COM1)
sio1    2f8     3       n/a     n/a     Serial Port 1 (COM2)

lpt0    dyn     7       n/a     n/a     Printer Port 0
lpt1    dyn     dyn     n/a     n/a     Printer Port 1

de0     n/a     n/a     n/a     n/a     DEC DC21x40 PCI based cards
                                        (including 21140 100bT cards)
ed0     280     10      dyn     d8000   WD & SMC 80xx; Novell NE1000 &
                                        NE2000; 3Com 3C503; HP PC Lan+
eg0     310     5       dyn     dyn     3Com 3C505
ep0     300     10      dyn     dyn     3Com 3C509
ex0     dyn     dyn     dyn     n/a     Intel EtherExpress Pro/10 cards
fe0     300     dyn     n/a     n/a     Allied-Telesis AT1700, RE2000 and
                                        Fujitsu FMV-180 series cards.
fxp0    dyn     dyn     n/a     dyn     Intel EtherExpress Pro/100B
rl0     dyn     dyn     n/a     dyn     RealTek 8129/8139 fast ethernet
tl0     dyn     dyn     n/a     dyn     TI TNET100 'ThunderLAN' cards.
ie0     300     10      dyn     d0000   AT&T StarLAN 10 and EN100;
                                        3Com 3C507; NI5210
ix0     300     10      dyn     d0000   Intel EtherExpress cards
ex0     dyn     dyn     dyn     dyn     Intel EtherExpress Pro/10 cards
le0     300     5       dyn     d0000   Digital Equipment EtherWorks
                                        2 and EtherWorks 3
lnc0    280     10      n/a     dyn     Lance/PCnet cards
                                        (Isolan, Novell NE2100, NE32-VL,
					 some PCnet-PCI cards)
vx0     dyn     dyn     n/a     dyn     3Com 3c59x ((Fast) Etherlink III)
xl0     dyn     dyn     n/a     dyn     3Com 3c900, 3c905 and 3c905B
                                        ((Fast) Etherlink XL)
cs0     0x300   dyn     n/a     n/a     Crystal Semiconductor CS89x0-based
                                        cards.
ze0     300     5       n/a     d8000   IBM/National Semiconductor
                                        PCMCIA Ethernet Controller
zp0     300     10      n/a     d8000   3Com 3c589 Etherlink III
                                        PCMCIA Ethernet Controller
--- End of table ---


If the hardware in your computer is not set to the same settings as
those shown in the table and the item in conflict is not marked 'dyn',
you will have to either reconfigure your hardware or use UserConfig
to reconfigure the kernel to match the way your hardware is currently set
(see the next section).

If the settings do not match, the kernel may be unable to locate
or reliably access the devices in your system.


2.      Using UserConfig to change FreeBSD kernel settings
--      --------------------------------------------------

The FreeBSD kernel on the install floppy contains drivers for every
piece of hardware that could conceivably be used to install the rest
of the system with.  Unfortunately, PC hardware being what it is, some
of these devices can be difficult to detect accurately, and for some,
the process of detecting another can cause irreversible confusion.

To make this process easier, FreeBSD provides UserConfig.  With this
UserConfig, the user can configure and disable device drivers before
the kernel is loaded, avoiding potential conflicts, and eliminating
the need to reconfigure hardware to suit the default driver settings.

Once FreeBSD is installed, it will remember the changes made using
UserConfig, so that they only need be made once.

It is important to disable drivers that are not relevant to a system
in order to minimize the possibility of interference, which can cause
problems that are difficult to track down.

UserConfig features a command line interface for users with serial
consoles or a need to type commands, and a full screen 'visual'
interface, which provides point-and-shoot configuration functionality.

Here is a sample UserConfig screen shot in 'visual' mode:

---Active Drivers---------------------------10 Conflicts------Dev---IRQ--Port--
 Storage :  (Collapsed)
 Network :
  NE1000,NE2000,3C503,WD/SMC80xx Ethernet adapters    CONF  ed0       5  0x280
  NE1000,NE2000,3C503,WD/SMC80xx Ethernet adapters    CONF  ed1       5  0x300 
 Communications : (Collapsed)
 Input : (Collapsed)
 Multimedia :
---Inactive Drivers-------------------------------------------Dev--------------
 Storage :
 Network : (Collapsed)
 Communications :
 Input :
 Multimedia :
 PCI :

---Parameters-for-device-ed0---------------------------------------------------
 Port address : 0x280      Memory address : 0xd8000
 IRQ number   : 5          Memory size    : 0x2000
 Flags        : 0x0000
-------------------------------------------------------------------------------
  IO Port address (Hexadecimal, 0x1-0x2000)
  [TAB]   Change fields           [Q]   Save device parameters


  The screen is divided into four sections :

 - Active Drivers.  Listed here are the device drivers that are currently
   enabled, and their basic parameters.
 - Inactive Drivers.  These drivers are present, but are disabled.
 - Parameter edit field.  This area is used for editing driver parameters.
 - Help area.  Keystroke help is displayed here.

One of the Active and Inactive lists is always in use, and the current
entry in the list will be shown with a highlight bar.  If there are
more entries in a list than can be shown, it will scroll.  The bar can
be moved up and down using the cursor keys, and moved between lists
with the TAB key.

Drivers in the Active list may be marked "CONF".  This indicates that
one or more of their parameters conflicts with another device, and
indicates a potential for problems.  The total number of conflicts is
displayed at the top of the screen.

As a general rule, conflicts should be avoided, either by disabling
conflicting devices that are not present in the system, or by altering
their configuration so that they match the installed hardware.

In the list areas, drivers are grouped by their basic function.
Groups can be 'Collapsed' to simplify the display (this is the default
state for all groups).  If a group is collapsed, it will be shown with
'(Collapsed)' in the list, as above.  To Expand a Collapsed group,
position the highlight bar over the group heading and press Enter.  To
Collapse it again, repeat the process.

When a device driver in the Active list is highlighted, its full
parameters are displayed in the Parameter edit area.  Note that not
all drivers use all possible parameters, and some hardware supported
by drivers may not use all the parameters the driver supports.

To disable a driver, go to the Active list, Expand the group it is in,
highlight the driver and press Del.  The driver will move to its group
in the Inactive list.  (If the group is collapsed or off the screen,
you may not see the driver in its new location.)

To enable a driver, go to the Inactive list, Expand the group it is
in, highlight the driver and press Enter.  The highlight will move to
the Active list, and the driver you have just enabled will be
highlighted, ready to be configured.

To configure a driver, go to the Active list, Expand the group it is
in, highlight the driver and press Enter.  The cursor will move to the
Parameter edit area, and the device's parameters may be edited.

While editing parameters, the TAB and cursor keys can be used to move
between fields.  Most numeric values (except IRQ) are entered in
hexadecimal, as indicated by the '0x' at the beginning of the field.
The allowable values for a given field are show in the Key Help area
when the field is active.

To finish configuring a driver, press 'Q'.

Note that PCI and EISA devices can be probed reliably, therefore they
are not shown in the table above nor can their settings be changed
using UserConfig.  PCI drivers may be seen in the "PCI Devices" section
in the Active Devices list, if you wish to check for their presence.


3.      LINT - other possible configurations
--      ------------------------------------

The following drivers are not in the GENERIC kernel but remain
available to those who do not mind compiling a custom kernel (see
section 6 of FreeBSD.FAQ).  The LINT configuration file
(/sys/i386/conf/LINT) also contains prototype entries for just about
every device supported by FreeBSD and is a good general reference.

The device names and a short description of each are listed below. The port
numbers, etc, are not meaningful here since you will need to compile a
custom kernel to gain access to these devices anyway and can thus
adjust the addresses to match the hardware in your computer in the process.
The LINT file contains prototype entries for all of the below which you
can easily cut-and-paste into your own file (or simply copy LINT and edit
it to taste):

ctx:    Cortex-I frame grabber
cx:     Cronyx/Sigma multiport sync/async
cy:     Cyclades high-speed serial driver
el:     3Com 3C501
fea:    DEV DEFEA EISA FDDI adapter
fpa:    DEC DEFPA PCI FDDI adapter
gp:     National Instruments AT-GPIB and AT-GPIB/TNT board
gsc:    Genius GS-4500 hand scanner
gus:    Gravis Ultrasound - Ultrasound, Ultrasound 16, Ultrasound MAX
gusxvi: Gravis Ultrasound 16-bit PCM
hea:    Efficient ENI-155p ATM PCI adapter
hfa:    FORE PCA-200E ATM PCI adapter
joy:    Joystick
labpc:  National Instrument's Lab-PC and Lab-PC+
meteor: Matrox Meteor frame-grabber card
bktr:   Brooktree Bt848 based frame-grabber cards.
mpu:    Roland MPU-401 stand-alone card
mse:    Microsoft, Logitech, ATI bus mouse ports
mss:    Microsoft Sound System
nic:    Dr Neuhaus NICCY 3008, 3009 & 5000 ISDN cards
opl:    Yamaha OPL-2 and OPL-3 FM - SB, SB Pro, SB 16, ProAudioSpectrum
pas:    ProAudioSpectrum PCM and MIDI
pca:    PCM audio ("/dev/audio") through your PC speaker
pcm:    PCM audio on most modern ISA audio codecs
psm:    PS/2 mouse port
rc:     RISCom/8 multiport card
sb:     SoundBlaster PCM - SoundBlaster, SB Pro, SB16, ProAudioSpectrum
sbmidi: SoundBlaster 16 MIDI interface
sbxvi:  SoundBlaster 16
si:     Specialix SI/XIO/SX (old and enhanced ISA, PCI, EISA) serial
spigot: Creative Labs Video Spigot video-acquisition board
uart:   Stand-alone 6850 UART for MIDI
wds:    Western Digital WD7000 IDE

--- end of list ---


4.      Supported Hardware
--      ------------------

FreeBSD currently runs on a wide variety of ISA, VLB, EISA and PCI bus
based PC's, ranging from 386sx to Pentium class machines (though the
386sx is not recommended).  Support for generic IDE or ESDI drive
configurations, various SCSI controller, network and serial cards is
also provided.

What follows is a list of all peripherals currently known to work with
FreeBSD.  Other configurations may also work, we have simply not as yet
received confirmation of this.


4.1.    Disk Controllers
----    ----------------

WD1003 (any generic MFM/RLL)
WD1007 (any generic IDE/ESDI)
IDE
ATA

Adaptec 1535 ISA SCSI controllers
Adaptec 154x series ISA SCSI controllers
Adaptec 174x series EISA SCSI controller in standard and enhanced mode.
Adaptec 274X/284X/2940/3940 (Narrow/Wide/Twin) series ISA/EISA/PCI SCSI
controllers.
Adaptec AIC7850/AIC7895 on-board SCSI controllers.

Support for the following controllers is rather weak:
Adaptec 1510 series ISA SCSI controllers (not for bootable devices)
Adaptec 152x series ISA SCSI controllers
Adaptec AIC-6260 and AIC-6360 based boards, which includes the AHA-152x
and SoundBlaster SCSI cards.

** Note: You cannot boot from the SoundBlaster cards as they have no
   on-board BIOS, such being necessary for mapping the boot device into the
   system BIOS I/O vectors.  They're perfectly usable for external tapes,
   CDROMs, etc, however.  The same goes for any other AIC-6x60 based card
   without a boot ROM.  Some systems DO have a boot ROM, which is generally
   indicated by some sort of message when the system is first powered up
   or reset, and in such cases you *will* also be able to boot from them.
   Check your system/board documentation for more details.


AdvanSys (Advanced Systems) ABP510/542/5150 ISA and ABP5140/5142 ISA PnP
cards, ABP842/852 VLB cards, and ABP920/930/930U/930UA/950/960/960U/970/970U
PCI cards.

** Note:  The ADP510/5140/5150 boards were shipped by HP with the 4020i
   CD-R drive but with NO BIOS, so these models cannot control boot devices
   though they can be used for any secondary SCSI device.  Also note that the
   ABP5140/5142 boards were rebadged by SIIG as the "SpeedMaster i540/i542"


Buslogic 545S & 545c
Buslogic 445S/445c VLB SCSI controller
Buslogic 742A, 747S, 747c EISA SCSI controller.
Buslogic 946c PCI SCSI controller
Buslogic 956c PCI SCSI controller

SymBios (formerly NCR) 53C810, 53C825, 53c860 and 53c875 PCI SCSI
controllers:
        ASUS SC-200
        Data Technology DTC3130 (all variants)
        NCR cards (all)
        Symbios cards (all)
        Tekram DC390W, 390U and 390F
        Tyan S1365

Tekram DC390 and DC390T controllers (maybe other cards based on the
AMD 53c974 as well).

NCR5380/NCR53400 ("ProAudio Spectrum") SCSI controller. 

DTC 3290 EISA SCSI controller in 1542 emulation mode.

UltraStor 14F, 24F and 34F SCSI controllers.

Seagate ST01/02 SCSI controllers.

Future Domain 8xx/950 series SCSI controllers.

WD7000 SCSI controller.

With all supported SCSI controllers, full support is provided for
SCSI-I & SCSI-II peripherals, including Disks, tape drives (including
DAT and 8mm Exabyte) and CD ROM drives.

The following CD-ROM type systems are supported at this time:
(cd)    SCSI interface (also includes ProAudio Spectrum and
        SoundBlaster SCSI)
(mcd)   Mitsumi proprietary interface (all models, driver is rather stale)
(matcd) Matsushita/Panasonic (Creative SoundBlaster) proprietary
        interface (562/563 models)
(scd)   Sony proprietary interface (all models)
(wcd)   ATAPI IDE interface.


4.2.    Network cards
----    -------------

Allied-Telesis AT1700 and RE2000 cards

AMD PCnet/PCI (79c970 & 53c974 or 79c974)

SMC Elite 16 WD8013 ethernet interface, and most other WD8003E,
WD8003EBT, WD8003W, WD8013W, WD8003S, WD8003SBT and WD8013EBT
based clones.  SMC Elite Ultra is also supported.

Texas Instruments ThunderLAN PCI NICs, including the following:
  Compaq Netelligent 10, 10/100, 10/100 Proliant, 10/100 Dual-Port
  Compaq Netelligent 10/100 TX Embedded UTP, 10 T PCI UTP/Coax, 10/100 TX UTP
  Compaq NetFlex 3P, 3P Integrated, 3P w/ BNC
  Olicom OC-2135/2138, OC-2325, OC-2326 10/100 TX UTP

DEC EtherWORKS III NICs (DE203, DE204, and DE205)
DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422)
DEC DC21040, DC21041, or DC21140 based NICs (SMC Etherpower 8432T, DE245, etc)
DEC FDDI (DEFPA/DEFEA) NICs

Efficient ENI-155p ATM PCI

FORE PCA-200E ATM PCI

Fujitsu MB86960A/MB86965A

HP PC Lan+ cards (model numbers: 27247B and 27252A).

Intel EtherExpress (not recommended due to driver instability)
Intel EtherExpress Pro/10
Intel EtherExpress Pro/100B PCI Fast Ethernet

Isolan AT 4141-0 (16 bit)
Isolink 4110     (8 bit)

Novell NE1000, NE2000, and NE2100 ethernet interface.

3Com 3C501 cards

3Com 3C503 Etherlink II

3Com 3c505 Etherlink/+

3Com 3C507 Etherlink 16/TP

3Com 3C509, 3C579, 3C589 (PCMCIA), 3C590/592/595/900/905/905B PCI and EISA
(Fast) Etherlink III / (Fast) Etherlink XL

Toshiba ethernet cards

PCMCIA ethernet cards from IBM and National Semiconductor are also
supported.

Note that NO token ring cards are supported at this time as we're
still waiting for someone to donate a driver for one of them.  Any
takers?


4.3.    Misc
----    ----

AST 4 port serial card using shared IRQ.

ARNET 8 port serial card using shared IRQ.
ARNET (now Digiboard) Sync 570/i high-speed serial.

Boca BB1004 4-Port serial card (Modems NOT supported)
Boca IOAT66 6-Port serial card (Modems supported)
Boca BB1008 8-Port serial card (Modems NOT supported)
Boca BB2016 16-Port serial card (Modems supported)

Cyclades Cyclom-y Serial Board.

STB 4 port card using shared IRQ.

SDL Communications Riscom/8 Serial Board.
SDL Communications RISCom/N2 and N2pci high-speed sync serial boards.

Specialix SI/XIO/SX multiport serial cards, with both the older
SIHOST2.x and the new "enhanced" (transputer based, aka JET) host cards.
ISA, EISA and PCI are supported.

Stallion multiport serial boards: EasyIO, EasyConnection 8/32 & 8/64,
ONboard 4/16 and Brumby.

Adlib, SoundBlaster, SoundBlaster Pro, ProAudioSpectrum, Gravis UltraSound
and Roland MPU-401 sound cards.

Connectix QuickCam
Matrox Meteor Video frame grabber
Creative Labs Video Spigot frame grabber
Cortex1 frame grabber
Various Frame grabbers based on Brooktree Bt848 chip.

HP4020, HP6020, Philips CDD2000/CDD2660 and Plasmon CD-R drives.

Bus mice

PS/2 mice

Standard PC Joystick

X-10 power controllers

GPIB and Transputer drivers.

Genius and Mustek hand scanners.

Floppy tape drives (some rather old models only, driver rather stale)


FreeBSD currently does NOT support IBM's microchannel (MCA) bus.
OpenPOWER on IntegriCloud