summaryrefslogtreecommitdiff
path: root/distrib/notes/i386/hardware
blob: 5fa2fcb6b5088d5e3e2074a065037bb9c7311fdb (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
OpenBSD/MACHINE OSREV runs on ISA (AT-Bus), EISA, PCI, and VL-bus systems
with 386-family processors, with or without math coprocessors.  It
does NOT support MCA systems, such as some IBM PS/2 systems.  The
minimal configuration to install the system is 6M or 8M of RAM and
perhaps 50M of disk space.  A custom kernel might be able to run
with only 4MB, though we do not know of anyone running with a system
quite this minimal today.  To install the entire system requires
much more disk space, and to run X or compile the system, more RAM
is recommended.  (8M of RAM will actually allow you to run X and/or
compile but it won't be speedy.  Note that until you have around 16M
of RAM, getting more RAM is more important than getting a faster CPU.)
 
Supported devices {:-include-:}:
	Floppy controllers.
	MFM, ESDI, IDE, and RLL hard disk controllers.
	SCSI host adapters:
		Adaptec AHA-154xA, -B, -C, and -CF 
		Adaptec AHA-174x
		Adaptec AIC-6260 and AIC-6360 based boards, including
			the Adaptec AHA-152x and the SoundBlaster SCSI
			host adapter.  (Note that you cannot boot from
			these boards if they do not have a boot ROM;
			only the AHA-152x and motherboards using this chip
			are likely to be bootable, consequently.)
		Adaptec AHA-294x[W] cards and some onboard PCI designs using
			the AIC7870 chip.  The 2940AU is known not to perform
			very well with this driver.
		Adaptec AHA-394x[W] cards; two AIC7870 chips with an on-board
			PCI to PCI bridge.
		Adaptec AIC-7770-based SCSI host adapters (including the
			Adaptec AHA-274x, AHA-284x families).
		AdvanSys PCI SCSI host adapters (including ABP-940, ASB-3940
			and ASB-3950 families)
		WD-7000 SCSI host adapters.
		Buslogic 54x (Adaptec AHA-154x clones; driver on kcadp floppy)
		BusLogic 445, 74x, 9xx  (But not the new "FlashPoint" series
			of BusLogic SCSI adapters)
		Symbios Logic (NCR) 53C8xx-based PCI SCSI host adapters
		Ultrastor 14f, 34f, and (possibly) 24f
		Seagate/Future Domain ISA SCSI adapter cards, including
			ST01/02
			Future Domain TMC-885
			Future Domain TMC-950
	RAID controllers:
		DPT SmartCache III/IV PCI/EISA adapters 
		ICP-Vortex GDT 6XXXRP series
		3ware Escalade 3W-5x00, 3W-6x00
	MDA, CGA, VGA, SVGA, and HGC Display Adapters.  (Note that not
		all of the display adapters OpenBSD/i386 can work with
		are supported by X.  See the XFree86 FAQ for more
		information.)
	Serial ports:
		8250/16450-based ports
		16550-based ports
		ST16660-base ports
		XR16850-based ports (only in the pccom driver)
		AST-style 4-port serial boards [*]
		BOCA 8-port serial cards [*] 
		Cyclades Cyclom-{4, 8, 16}Y serial boards [*]
		IBM PC-RT 4-port serial boards [*]
	Parallel ports.
	Ethernet adapters:
		Alteon Tigon I/II PCI Gigabit Ethernet boards [*] [+]:
			3Com 3c985
			Alteon ACEnic
			Netgear GA620
			SGI Tigon
		AMD LANCE and PCnet-based ISA Ethernet adapters [*], including:
			Novell NE1500T
			Novell NE2100
			Kingston 21xx
		AMD PCnet-based PCI Ethernet adapters, including:
			BOCALANcard/PCI
		        AT&T StarLAN 10, EN100, and StarLAN Fiber
		ASIX 88140A/88141 PCI Ethernet adapters, including:
			CNet Pro110
			Alfa Inc. GFC2204
		3COM 3c501
		3COM 3c503
		3COM 3c505 [*]
		3COM 3c507
		3COM 3c509, 3c579, 3c589, 3c59x
		3COM 3c515 [*] [+]
		3COM 3c900, 3c900b, 3c905, and 3c905b, 3c905c
		Digital DC21x4x-based PCI Ethernet adapters, including:
			SMC EtherPower 10, 10/100 (PCI only!)
			Znyx ZX34X
			Cogent EM100
			Digital DE450
			Digital DE500
		BICC Isolan [* and not recently tested]
		Intel EtherExpress 16
		SMC/WD 8003, 8013, and the SMC "Elite16" ISA boards
		SMC/WD 8216 (the SMC "Elite16 Ultra" ISA boards)  [X SEE BELOW]
		SMC EtherPower II (EPIC 10/100)
		Novell NE1000, NE2000
		Digital DEFPA PCI FDDI adapters
		Intel EtherExpress 100 Fast Ethernet adapters
		Intel Pro/1000 Gigabit Ethernet adapters
		Texas Instruments ThunderLAN PCI Ethernet adapters, including:
			Compaq Netelligent PCI Adapters
			Compaq NetFlex 3/P
			Compaq Deskpro integrated adapter
			Compaq Prosignia integrated adapter
			Olicom OC2135, OC2183, OC2325, OC2326
			Racore 8165 and 8148
			TI ThunderLAN adapters
		RealTek 8129, RealTek 8139 Ethernet adapters, including:
			Accton MPX 5030/5038
			Allied Telesyn AT2550
			Encore ENL832-TX 10/100 M PCI
			Genius GF100TXR
			KTX-9130TX 10/100 Fast Ethernet
			Longshine LCS-8038TX-R
			NDC NE100TX-E
			Netronix EA-1210 Net Ether 10/100
			OvisLink LEF-8129TX, LEF-8139TX
			SMC EZ Card 10/100 PCI 1211-TX
		Macronix 98713/98715/98725 Ethernet adapters, including:
			NDC Communications SOHOware SFA110
			SVEC PN102-TX fast ethernet card
		Lite-On PNIC/PNIC-II Ethernet adapters, including:
			Bay Networks Netgear FA310TX rev D1
			LinkSys LNE100TX
			Matrox Networks FastNIC 10/100
		Winbond W89C840F Ethernet adapters, including:
			Trendware TE100-PCIE
			Compex RL100-ATX 10/100baseTX
		Xircom 16-bit PCMCIA adapters, including:
			Xircom CE3
			Xircom Realport
		Lucent technologies WaveLAN IEEE 802.11 [*] [+]
		SysKonnect SK-9841/9842/9843/9844 Gigabit Ethernet
			adapters [*] [+]
	Tape drives:
		Most SCSI tape drives
		QIC-02 and QIC-36 format (Archive- and Wangtek-
			compatible) tape drives [*] [+]
	CD-ROM drives:
		Mitsumi CD-ROM drives [*] [+]
			[Note: The Mitsumi driver device probe is known 
			to cause trouble with several devices!]
		Most SCSI CD-ROM drives
		Most ATAPI CD-ROM drives
			[Note: With single ATAPI device IDE busses, the
			ATAPI device should be set to SLAVE.]
	Mice:
		"Logitech"-style bus mice [*] [+]
		"Microsoft"-style bus mice [*] [+]
		"PS/2"-style mice [*] [+]
		Serial mice (uses serial port driver)
	Sound Cards:
		SoundBlaster [*] [+]
		Gravis Ultrasound and Ultrasound Max [*] [+]
			[The following drivers are not extensively tested]
		Personal Sound System [*] [+]
		Windows Sound System [*] [+]
		ProAudio Spectrum [*] [+]
		ESS PnP audio cards [*] [+]
		ESS Solo-1 PCI-based audio cards [*] [+]
	Cryptography Accelerators
		Hi/Fn 7751 based boards, including:
			GTGI PowerCrypt Encryption Accelerator
	Miscellaneous:
		OPTi(82C929) chipset for multi-interface CD-ROM, and
			sound ISA cards.
		PCI-PCI bridges and cards which {:-include-:} them, such as
			the AHA-394x SCSI host adapter and some
			DC21x4x-based multi-Ethernet cards.
		Brooktree 8[47][89] based frame grabber and TV tuner cards, 
			such as: [*] [+]
			Hauppage Wincast TV
			STB TV PCI Television Tuner
			Miro PC TV
			Intel Smart Video Recorder III
		APM v1.1 power management,
		PCI BIOS v2.x interrupt and address configuration.

Drivers for hardware marked with "[*]" are NOT included on the
distribution floppies.  Except as noted above, all other drivers are
present on install floppy.  Also, at the present time, the
distributed kernels support only one SCSI host adapter per machine.
OpenBSD normally allows more, though, so if you have more than one, you
can use all of them by compiling a custom kernel once OpenBSD is
installed.

Support for devices marked with "[+]" IS included in the "generic" kernels,
although it is not in the kernel on the installation floppy.


Hardware the we do NOT currently support, but get many questions
about:
	NCR 5380-based SCSI host adapters.
	QIC-40 and QIC-80 tape drives.  (Those are the tape drives
		that connect to the floppy disk controller.)
	Multiprocessor Pentium and Pentium Pro systems.  (Though they should
		run fine using one processor only.)

We are planning future support for many of these devices.

To be detected by the distributed kernels, the devices must
be configured as follows:

Device		Name	Port	IRQ	DRQ	Misc
------		----	----	---	---	----
Serial ports	pccom0	0x3f8	4		[8250/16450/16550/clones]
		pccom1	0x2f8	3		[8250/16450/16550/clones]
		pccom2	0x3e8	5		[8250/16450/16550/clones]
		pccom3	0x2e8	3		[PCMCIA modem cards]
		ast0	0x1a0	5		[AST 4-port serial card]

Parallel ports	lpt0	0x378	7		[interrupt-driven or polling]
		lpt1	0x278			[polling only]
		lpt2	0x3bc			[polling only]

MFM/ESDI/IDE/RLL hard disk controllers
		wdc0	0x1f0	14		[supports two disks or atapi]
		wdc1	0x170	15		[supports two disks or atapi]

Floppy controller
		fdc0	0x3f0	6	2	[supports two disks]

AHA-154x, AHA-174x (in compatibility mode), or BT-54x SCSI host adapters
		aha0	0x330	any	any
		aha1	0x334	any	any

AHA-174x SCSI host adapters (in enhanced mode)
		ahb0	any	any	any

AHA-284x,274x,2940, aic7770 SCSI host adapters
		ahc0	any	any

BT445, BT74x, or BT9xx SCSI host adapters
		bt0	0x330	any	any
		bt1	0x334	any	any

Ultrastor 14f, 24f (if it works), or 34f SCSI host adapters
		uha0	0x330	any	any
		uha1	0x334	any	any

AHA-152x, AIC-6260- or AIC-6360-based SCSI host adapters
		aic0	0x340	11	6

Seagate ST0[12], Future Domain TMC-8xx based SCSI controllers 
		sea0		5		iomem 0xc8000

Symbios Logic/NCR 53C8xx based PCI SCSI host adapters
		ncr0	any	any	any

WD7000 and TMC-7000 SCSI host adapters
		wds0	0x350	15	6
		wds1	0x358	11	5

SCSI disks	sd0	first SCSI disk (by SCSI id)
		sd1	second SCSI disk (by SCSI id)
		sd2	third SCSI disk (by SCSI id)
		sd3	fourth SCSI disk (by SCSI id)

SCSI tapes	st0	first SCSI tape (by SCSI id)
		st1	second SCSI tape (by SCSI id)

SCSI CD-ROMs	cd0	first SCSI CD-ROM (by SCSI id)
		cd1	second SCSI CD-ROM (by SCSI id)

DPT SmartCache III/IV PCI/EISA adapters 
		dpt0	any	any	any

ICP-Vortex GDT 6XXXRP series
		gdt0	any	any	any

3ware Escalade 3W-5x00, 3W-6x00
		twe0	any	any	any

SMC/WD 8003, 8013, Elite16, and Elite16 Ultra Ethernet boards
		we0	0x280	9
		we1	0x300	10

Novell NE1000, or NE2000 Ethernet boards
		ne0	0x240	9		iomem 0xd8000
		ne1	0x300	10

3COM 3c501 Ethernet boards
		el0	0x300	9

3COM 3c503 Ethernet boards
		ec0	0x250	9		iomem 0xd8000

3COM 3c505/Etherlink+ Ethernet boards
		eg0	0x310	5

3COM 3c509, 3c579, 3c595 Ethernet boards
		ep0	any	any

3COM 3c515
		ef0	any	any

3COM 3c900, 3c900b, 3c905, 3c905b Ethernet boards
		xl0	any	any	[you must assign an interrupt in your
					 PCI BIOS, or let it do so for you]

AT&T StarLAN 10, EN100, or StarLAN Fiber, or 3COM 3c507 Ethernet boards
		ie0	0x360	7		iomem 0xd0000

EtherExpress boards
		ie1	0x300	10

PCNet-PCI based Ethernet boards; see above for partial list
		le0	any	any	[you must assign an interrupt in your
					 PCI BIOS, or let it do so for you]

DC21x4x based Ethernet boards; see above for partial list
		de0	any	any 	[you must assign an interrupt in your
					 PCI BIOS, or let it do so for you]

Intel EtherExpress 100 Ethernet boards
		fxp0	any	any 	[you must assign an interrupt in your
					 PCI BIOS, or let it do so for you]

SMC EtherPower II (EPIC) 10/100 Ethernet boards
		tx0	any	any 	[you must assign an interrupt in your
					 PCI BIOS, or let it do so for you]

DEC Tulip clones (Macronix, Lite-On, Davicom)
		dc0	any	any	[you must assign an interrupt in your
					 PCI BIOS, or let it do so for you]

Alteon Tigon I/II PCI Gigabit Ethernet boards
		ti0	any	any	[you must assign an interrupt in your
					 PCI BIOS, or let it do so for you]

SysKonnect 984x Gigabit Ethernet boards
		sk0	any	any	[you must assign an interrupt in your
					 PCI BIOS, or let it do so for you]

SPECIAL CARE FOR SMC ULTRA ELITE
--------------------------------


Note for SMC Elite Ultra ethernet card users:  The Elite Ultra is very
sensitive to how its I/O port is treated.  Mistreating it can cause
a number of effects -- everything from the card not responding when the
kernel probes, or the soft configuration being corrupted or wiped completely.

By default, the kernel ships with device we1 configured for the 'default'
Elite Ultra locations, comprising of port 0x300, irq 10, and memory location
0xcc000.  This matches a hard coded jumper on the board as well a common
soft config setting.

Unfortunately, the kernel's autconfiguration process (specifically, some
of the devices it probes for) cause conflicts with the SMC Elite Ultra, and
very often cause it to lose its configuration and fail its own probe.
If this happens, you must boot the computer into DOS, and run the EzSetup
program from SMC (if you do not have a copy on the floppy
accompanying your board, the complete URL to download the program is 
ftp://ftp.smc.com/pub/nics/ethernet/elite_ultra/gez122.exe).  This program
will allow you to reconfigure and recover a card that has lost its
configuration with a minimum of hassle.

In order to avoid blowing away the card, one *must* use the run-time kernel
configuration system when booting the Install kernel.  This is done by
giving the -c flag to the initial boot request.  Following the loading of
the kernel, the user is presented with a

UKC>

prompt.  At this prompt, a variety of commands may be issued, but the
relevant one to getting the SMC Elite Ultra running is 'disable'.  The
wt0, el0, and ie1 devices all need to be disabled.  This is done by typing
'disable' followed by the name of the device, i.e., 'disable wt0', and
pressing return.

If, for some reason, your Elite Ultra is not configured at the 'default'
location the kernel is expecting it, you may also use the 'change' command
in the UKC system to modify where the kernel will look for it.  Typing
'change we1' will allow you to modify those settings.  Note that running the
card at an i/o port of anything other then 0x300 at this point is not
recommended, and is beyond the scope of this document-- by doing so you
risk other device probes wreaking the havoc we are trying to avoid.

When all three extra devices are disabled and any changes made, the
'quit' command will exit the UKC.  The kernel should then boot, and find
your Elite Ultra on device we1.

<<<<<<< hardware
=======
SPECIAL CARE FOR NEWER NOTEBOOK COMPUTERS AND PCMCIA

There is a problem on some newer notebooks with OpenBSD's autoconfiguration
not YET finding the PCI<-->PCMCIA bridge, and therefore not finding any of the
PCMCIA cards, which can be a nuisance if you're trying to install over
an Ethernet LAN.

The symptoms:
1) No probe messages indicating any PCMCIA response or any probe response
   for any PCMCIA cards, and
2) A probe message like this:
	Cirrus Logic CL-GD6729 (class bridge, subclass PCMCIA, revision 0xfe)
	at pci0 dev 4 function 0 not configured
   The details will vary; the important parts are 
	class bridge, subclass PCMCIA, ... at pci* ... not configured

Finding the Bridge Address

Bear in mind that both ISA and PCI are just different ways of electrically
connecting an adaptor into the PC's memory space. PCI merely provides
convenient iterators for finding everything on it, which is easier than
it is on ISA. This is why you get the "not configured" message above.
But once a device is connected in there, the driver only needs to know its 
memory mapped address. Now we don't know its address on YOUR brand of PC,
but we can help you find it out. Someday our software will do this for you,
of course, but it doesn't as of today.

Your first try should be 0x3000, which seems to be used on several notebooks.
If this fails, you need to do some nosing around.

The easiest way is to boot up Windows '95, if you have it on a hard disk.
Right-click on the "My Computer" Icon, select Properties, select the
Device Manager tab, and double click on PCMCIA Socket, then on the Bridge
that is listed under this heading. Select Properties at the bottom of
the window, and click on Resources. Finally you will see an address range,
in Hex. On my Dell Latitude LM, for example, the range was FCFC-FCFF.

If you don't have Windows '95 on a hard disk, there are several possibilities:
1) But you do have Windows'95 setup floppies? Then look through them for
the ".INF" files, and rummage around in them until you find it.
2) You have a friend, or the dealer, who has a similar Notebook PC with
Windows '95 installed? Proceed as above.
3) Call Customer Support at the manufacturer, tell them you're having
a setup problem, and need to know the memory address to set for the
PCI to PCMCIA bridge. Oh, take a few cans of Jolt and a good book to read
while waiting on the line.

Fixing it - temporarily

OK, now you have the address and size of the memory window for the PCMCIA
bridge. Or so you think. To try it out, use the UKC, as described earlier
(under SMC Elite, above). Basically you use "boot -c" to get into UKC.
Give the command "change pcicmaster0", and to set the address and iosize
to the values you found above. Then type "quit", and the boot should
continue, and you should find your PCMCIA cards.

Note that if the card is an "ep0" (3c589 on PCMCIA) AND you are using
UTP, you must give the arguments "link0 link1" on the ifconfig command.
The autoconfig message
	ep0 at pcmcia0 port 0x300-0x30f irq 10: ep0: address nn:nn:nn:nn:nn:nn,
		utp/aui/bnc (default utp)
implies that the default is UTP and you can omit the link* arguments, but
in fact you cannot!

Fixing it - configuring a new kernel

Follow the normal steps for building a new kernel documented elsewhere.
For my system I changed the original pcicmaster0 line as follows:

#pcicmaster0	at isa? port 0x3E0 size 2
#hack for CL PCIC on Dell Lattitude LM; really on PCI, but...
pcicmaster0	at isa? port 0xFCFC size 4

IRQ's: You probably do NOT have to worry about the IRQ's appearing
different than what Windows'95 claims. Trust me, and try it.

Fixing it for good

OK, this is the tough part. Somebody has to wade in and rewrite the
OpenBSD PCMCIA subsystem to support multiple adapters on multiple busses.
Nobody's done this yet. You have the source, so you truly can
"Use The Source, Luke."  

SPECIAL CARE FOR PCI BIOS
 
As all BIOS implementations and subsystems this one has bugs too.
Sometimes specifications are unclear about interfaces and/or
data validation.
These all cause our driver for PCI BIOS to misbehave in more or
less fatal ways, such as panics on pcibios0 configuration or
pci device attachments, or unconfigured pci devices due to
irq and/or I/O address misconfiguration.

Fast workaround

Boot by giving the -c flag to the initial boot request.
Following the loading of the kernel, the user is presented with a

UKC>

Then type the following commands:

UKC> change bios0
165 bios0 at mainbus0 bus -1 flags 0x0
change [n] y
bus [-1] ? <enter>
flags [0] ? 3
165 bios0 changed
165 bios0 at mainbus0 bus -1 flags 0x3
UKC> quit

This will disable the pcibios0 attachment.
Sometimes, especially when hangs occur on particular pci device
attachments, moving pci cards into a different slot helps.

Fixing for good

Try to gather dmesg output from the failing configuration, for
example by using serial console (see boot(8)) and send it to
mickey@openbsd.org along with descriptions of your hardware setup.
Dig in the code and fix problems.