1# SPDX-License-Identifier: GPL-2.0-only
2#
3# IDE ATA ATAPI Block device driver configuration
4#
5
6# Select HAVE_IDE if IDE is supported
7config HAVE_IDE
8	bool
9
10menuconfig IDE
11	tristate "ATA/ATAPI/MFM/RLL support (DEPRECATED)"
12	depends on HAVE_IDE
13	depends on BLOCK
14	select BLK_SCSI_REQUEST
15	---help---
16	  If you say Y here, your kernel will be able to manage ATA/(E)IDE and
17	  ATAPI units. The most common cases are IDE hard drives and ATAPI
18	  CD-ROM drives.
19
20	  This subsystem is currently in maintenance mode with only bug fix
21	  changes applied. Users of ATA hardware are encouraged to migrate to
22	  the newer ATA subsystem ("Serial ATA (prod) and Parallel ATA
23	  (experimental) drivers") which is more actively maintained.
24
25	  To compile this driver as a module, choose M here: the
26	  module will be called ide-core.
27
28	  For further information, please read <file:Documentation/ide/ide.rst>.
29
30	  If unsure, say N.
31
32if IDE
33
34comment "Please see Documentation/ide/ide.rst for help/info on IDE drives"
35
36config IDE_XFER_MODE
37	bool
38
39config IDE_TIMINGS
40	bool
41	select IDE_XFER_MODE
42
43config IDE_ATAPI
44	bool
45
46config IDE_LEGACY
47	bool
48
49config BLK_DEV_IDE_SATA
50	bool "Support for SATA (deprecated; conflicts with libata SATA driver)"
51	default n
52	---help---
53	  There are two drivers for Serial ATA controllers.
54
55	  The main driver, "libata", uses the SCSI subsystem
56	  and supports most modern SATA controllers. In order to use it
57	  you may take a look at "Serial ATA (prod) and Parallel ATA
58	  (experimental) drivers".
59
60	  The IDE driver (which you are currently configuring) supports
61	  a few first-generation SATA controllers.
62
63	  In order to eliminate conflicts between the two subsystems,
64	  this config option enables the IDE driver's SATA support.
65	  Normally this is disabled, as it is preferred that libata
66	  supports SATA controllers, and this (IDE) driver supports
67	  PATA controllers.
68
69	  If unsure, say N.
70
71config IDE_GD
72	tristate "generic ATA/ATAPI disk support"
73	default y
74	help
75	  Support for ATA/ATAPI disks (including ATAPI floppy drives).
76
77	  To compile this driver as a module, choose M here.
78	  The module will be called ide-gd_mod.
79
80	  If unsure, say Y.
81
82config IDE_GD_ATA
83	bool "ATA disk support"
84	depends on IDE_GD
85	default y
86	help
87	  This will include support for ATA hard disks.
88
89	  If unsure, say Y.
90
91config IDE_GD_ATAPI
92	bool "ATAPI floppy support"
93	depends on IDE_GD
94	select IDE_ATAPI
95	help
96	  This will include support for ATAPI floppy drives
97	  (i.e. Iomega ZIP or MKE LS-120).
98
99	  For information about jumper settings and the question
100	  of when a ZIP drive uses a partition table, see
101	  <http://www.win.tue.nl/~aeb/linux/zip/zip-1.html>.
102
103	  If unsure, say N.
104
105config BLK_DEV_IDECS
106	tristate "PCMCIA IDE support"
107	depends on PCMCIA
108	help
109	  Support for Compact Flash cards, outboard IDE disks, tape drives,
110	  and CD-ROM drives connected through a PCMCIA card.
111
112config BLK_DEV_DELKIN
113	tristate "Cardbus IDE support (Delkin/ASKA/Workbit)"
114	depends on CARDBUS && PCI
115	help
116	  Support for Delkin, ASKA, and Workbit Cardbus CompactFlash
117	  Adapters.  This may also work for similar SD and XD adapters.
118
119config BLK_DEV_IDECD
120	tristate "Include IDE/ATAPI CDROM support"
121	depends on BLK_DEV
122	select IDE_ATAPI
123	select CDROM
124	---help---
125	  If you have a CD-ROM drive using the ATAPI protocol, say Y. ATAPI is
126	  a newer protocol used by IDE CD-ROM and TAPE drives, similar to the
127	  SCSI protocol. Most new CD-ROM drives use ATAPI, including the
128	  NEC-260, Mitsumi FX400, Sony 55E, and just about all non-SCSI
129	  double(2X) or better speed drives.
130
131	  If you say Y here, the CD-ROM drive will be identified at boot time
132	  along with other IDE devices, as "hdb" or "hdc", or something
133	  similar (check the boot messages with dmesg). If this is your only
134	  CD-ROM drive, you can say N to all other CD-ROM options, but be sure
135	  to say Y or M to "ISO 9660 CD-ROM file system support".
136
137	  To compile this driver as a module, choose M here: the
138	  module will be called ide-cd.
139
140config BLK_DEV_IDECD_VERBOSE_ERRORS
141	bool "Verbose error logging for IDE/ATAPI CDROM driver" if EXPERT
142	depends on BLK_DEV_IDECD
143	default y
144	help
145	  Turn this on to have the driver print out the meanings of the
146	  ATAPI error codes.  This will use up additional 8kB of kernel-space
147	  memory, though.
148
149config BLK_DEV_IDETAPE
150	tristate "Include IDE/ATAPI TAPE support"
151	select IDE_ATAPI
152	help
153	  If you have an IDE tape drive using the ATAPI protocol, say Y.
154	  ATAPI is a newer protocol used by IDE tape and CD-ROM drives,
155	  similar to the SCSI protocol.  If you have an SCSI tape drive
156	  however, you can say N here.
157
158	  You should also say Y if you have an OnStream DI-30 tape drive; this
159	  will not work with the SCSI protocol, until there is support for the
160	  SC-30 and SC-50 versions.
161
162	  If you say Y here, the tape drive will be identified at boot time
163	  along with other IDE devices, as "hdb" or "hdc", or something
164	  similar, and will be mapped to a character device such as "ht0"
165	  (check the boot messages with dmesg).  Be sure to consult the
166	  <file:drivers/ide/ide-tape.c> and <file:Documentation/ide/ide.rst>
167	  files for usage information.
168
169	  To compile this driver as a module, choose M here: the
170	  module will be called ide-tape.
171
172config BLK_DEV_IDEACPI
173	bool "IDE ACPI support"
174	depends on ACPI
175	---help---
176	  Implement ACPI support for generic IDE devices. On modern
177	  machines ACPI support is required to properly handle ACPI S3 states.
178
179config IDE_TASK_IOCTL
180	bool "IDE Taskfile Access"
181	help
182	  This is a direct raw access to the media.  It is a complex but
183	  elegant solution to test and validate the domain of the hardware and
184	  perform below the driver data recovery if needed.  This is the most
185	  basic form of media-forensics.
186
187	  If you are unsure, say N here.
188
189config IDE_PROC_FS
190	bool "legacy /proc/ide/ support"
191	depends on IDE && PROC_FS
192	default y
193	help
194	  This option enables support for the various files in
195	  /proc/ide.  In Linux 2.6 this has been superseded by
196	  files in sysfs but many legacy applications rely on this.
197
198	  If unsure say Y.
199
200comment "IDE chipset support/bugfixes"
201
202config IDE_GENERIC
203	tristate "generic/default IDE chipset support"
204	depends on ALPHA || X86 || IA64 || MIPS || ARCH_RPC
205	default ARM && ARCH_RPC
206	help
207	  This is the generic IDE driver.  This driver attaches to the
208	  fixed legacy ports (e.g. on PCs 0x1f0/0x170, 0x1e8/0x168 and
209	  so on).  Please note that if this driver is built into the
210	  kernel or loaded before other ATA (IDE or libata) drivers
211	  and the controller is located at legacy ports, this driver
212	  may grab those ports and thus can prevent the controller
213	  specific driver from attaching.
214
215	  Also, currently, IDE generic doesn't allow IRQ sharing
216	  meaning that the IRQs it grabs won't be available to other
217	  controllers sharing those IRQs which usually makes drivers
218	  for those controllers fail.  Generally, it's not a good idea
219	  to load IDE generic driver on modern systems.
220
221	  If unsure, say N.
222
223config BLK_DEV_PLATFORM
224	tristate "Platform driver for IDE interfaces"
225	help
226	  This is the platform IDE driver, used mostly for Memory Mapped
227	  IDE devices, like Compact Flashes running in True IDE mode.
228
229	  If unsure, say N.
230
231config BLK_DEV_CMD640
232	tristate "CMD640 chipset bugfix/support"
233	depends on X86
234	select IDE_TIMINGS
235	---help---
236	  The CMD-Technologies CMD640 IDE chip is used on many common 486 and
237	  Pentium motherboards, usually in combination with a "Neptune" or
238	  "SiS" chipset. Unfortunately, it has a number of rather nasty
239	  design flaws that can cause severe data corruption under many common
240	  conditions. Say Y here to include code which tries to automatically
241	  detect and correct the problems under Linux. This option also
242	  enables access to the secondary IDE ports in some CMD640 based
243	  systems.
244
245	  This driver will work automatically in PCI based systems (most new
246	  systems have PCI slots). But if your system uses VESA local bus
247	  (VLB) instead of PCI, you must also supply a kernel boot parameter
248	  to enable the CMD640 bugfix/support: "cmd640.probe_vlb". (Try "man
249	  bootparam" or see the documentation of your boot loader about how to
250	  pass options to the kernel.)
251
252	  The CMD640 chip is also used on add-in cards by Acculogic, and on
253	  the "CSA-6400E PCI to IDE controller" that some people have. For
254	  details, read <file:Documentation/ide/ide.rst>.
255
256config BLK_DEV_CMD640_ENHANCED
257	bool "CMD640 enhanced support"
258	depends on BLK_DEV_CMD640
259	help
260	  This option includes support for setting/autotuning PIO modes and
261	  prefetch on CMD640 IDE interfaces.  For details, read
262	  <file:Documentation/ide/ide.rst>. If you have a CMD640 IDE interface
263	  and your BIOS does not already do this for you, then say Y here.
264	  Otherwise say N.
265
266config BLK_DEV_IDEPNP
267	tristate "PNP EIDE support"
268	depends on PNP
269	help
270	  If you have a PnP (Plug and Play) compatible EIDE card and
271	  would like the kernel to automatically detect and activate
272	  it, say Y here.
273
274config BLK_DEV_IDEDMA_SFF
275	bool
276
277if PCI
278
279comment "PCI IDE chipsets support"
280
281config BLK_DEV_IDEPCI
282	bool
283
284config IDEPCI_PCIBUS_ORDER
285	bool "Probe IDE PCI devices in the PCI bus order (DEPRECATED)"
286	depends on IDE=y && BLK_DEV_IDEPCI
287	default y
288	help
289	  Probe IDE PCI devices in the order in which they appear on the
290	  PCI bus (i.e. 00:1f.1 PCI device before 02:01.0 PCI device)
291	  instead of the order in which IDE PCI host drivers are loaded.
292
293	  Please note that this method of assuring stable naming of
294	  IDE devices is unreliable and use other means for achieving
295	  it (i.e. udev).
296
297	  If in doubt, say N.
298
299# TODO: split it on per host driver config options (or module parameters)
300config BLK_DEV_OFFBOARD
301	bool "Boot off-board chipsets first support (DEPRECATED)"
302	depends on BLK_DEV_IDEPCI && (BLK_DEV_AEC62XX || BLK_DEV_GENERIC || BLK_DEV_HPT366 || BLK_DEV_PDC202XX_NEW || BLK_DEV_PDC202XX_OLD || BLK_DEV_TC86C001)
303	help
304	  Normally, IDE controllers built into the motherboard (on-board
305	  controllers) are assigned to ide0 and ide1 while those on add-in PCI
306	  cards (off-board controllers) are relegated to ide2 and ide3.
307	  Answering Y here will allow you to reverse the situation, with
308	  off-board controllers on ide0/1 and on-board controllers on ide2/3.
309	  This can improve the usability of some boot managers such as lilo
310	  when booting from a drive on an off-board controller.
311
312	  Note that, if you do this, the order of the hd* devices will be
313	  rearranged which may require modification of fstab and other files.
314
315	  Please also note that this method of assuring stable naming of
316	  IDE devices is unreliable and use other means for achieving it
317	  (i.e. udev).
318
319	  If in doubt, say N.
320
321config BLK_DEV_GENERIC
322	tristate "Generic PCI IDE Chipset Support"
323	select BLK_DEV_IDEPCI
324	help
325	  This option provides generic support for various PCI IDE Chipsets
326	  which otherwise might not be supported.
327
328config BLK_DEV_OPTI621
329	tristate "OPTi 82C621 chipset enhanced support"
330	select BLK_DEV_IDEPCI
331	help
332	  This is a driver for the OPTi 82C621 EIDE controller.
333	  Please read the comments at the top of <file:drivers/ide/opti621.c>.
334
335config BLK_DEV_RZ1000
336	tristate "RZ1000 chipset bugfix/support"
337	depends on X86
338	select BLK_DEV_IDEPCI
339	help
340	  The PC-Technologies RZ1000 IDE chip is used on many common 486 and
341	  Pentium motherboards, usually along with the "Neptune" chipset.
342	  Unfortunately, it has a rather nasty design flaw that can cause
343	  severe data corruption under many conditions. Say Y here to include
344	  code which automatically detects and corrects the problem under
345	  Linux. This may slow disk throughput by a few percent, but at least
346	  things will operate 100% reliably.
347
348config BLK_DEV_IDEDMA_PCI
349	bool
350	select BLK_DEV_IDEPCI
351	select BLK_DEV_IDEDMA_SFF
352
353config BLK_DEV_AEC62XX
354	tristate "AEC62XX chipset support"
355	select BLK_DEV_IDEDMA_PCI
356	help
357	  This driver adds explicit support for Acard AEC62xx (Artop ATP8xx)
358	  IDE controllers. This allows the kernel to change PIO, DMA and UDMA
359	  speeds and to configure the chip to optimum performance.
360
361config BLK_DEV_ALI15X3
362	tristate "ALI M15x3 chipset support"
363	select IDE_TIMINGS
364	select BLK_DEV_IDEDMA_PCI
365	help
366	  This driver ensures (U)DMA support for ALI 1533, 1543 and 1543C
367	  onboard chipsets.  It also tests for Simplex mode and enables
368	  normal dual channel support.
369
370	  Please read the comments at the top of
371	  <file:drivers/ide/alim15x3.c>.
372
373	  If unsure, say N.
374
375config BLK_DEV_AMD74XX
376	tristate "AMD and nVidia IDE support"
377	depends on !ARM
378	select IDE_TIMINGS
379	select BLK_DEV_IDEDMA_PCI
380	help
381	  This driver adds explicit support for AMD-7xx and AMD-8111 chips
382	  and also for the nVidia nForce chip.  This allows the kernel to
383	  change PIO, DMA and UDMA speeds and to configure the chip to
384	  optimum performance.
385
386config BLK_DEV_ATIIXP
387	tristate "ATI IXP chipset IDE support"
388	depends on X86
389	select BLK_DEV_IDEDMA_PCI
390	help
391	  This driver adds explicit support for ATI IXP chipset.
392	  This allows the kernel to change PIO, DMA and UDMA speeds
393	  and to configure the chip to optimum performance.
394
395	  Say Y here if you have an ATI IXP chipset IDE controller.
396
397config BLK_DEV_CMD64X
398	tristate "CMD64{3|6|8|9} chipset support"
399	select IDE_TIMINGS
400	select BLK_DEV_IDEDMA_PCI
401	help
402	  Say Y here if you have an IDE controller which uses any of these
403	  chipsets: CMD643, CMD646, or CMD648.
404
405config BLK_DEV_TRIFLEX
406	tristate "Compaq Triflex IDE support"
407	select BLK_DEV_IDEDMA_PCI
408	help
409	  Say Y here if you have a Compaq Triflex IDE controller, such
410	  as those commonly found on Compaq Pentium-Pro systems
411
412config BLK_DEV_CY82C693
413	tristate "CY82C693 chipset support"
414	depends on ALPHA
415	select IDE_TIMINGS
416	select BLK_DEV_IDEDMA_PCI
417	help
418	  This driver adds detection and support for the CY82C693 chipset
419	  used on Digital's PC-Alpha 164SX boards.
420
421config BLK_DEV_CS5520
422	tristate "Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTAL)"
423	depends on X86_32 || COMPILE_TEST
424	select BLK_DEV_IDEDMA_PCI
425	help
426	  Include support for PIO tuning and virtual DMA on the Cyrix MediaGX
427	  5510/5520 chipset. This will automatically be detected and
428	  configured if found.
429
430	  It is safe to say Y to this question.
431
432config BLK_DEV_CS5530
433	tristate "Cyrix/National Semiconductor CS5530 MediaGX chipset support"
434	depends on X86_32 || COMPILE_TEST
435	select BLK_DEV_IDEDMA_PCI
436	help
437	  Include support for UDMA on the Cyrix MediaGX 5530 chipset. This
438	  will automatically be detected and configured if found.
439
440	  It is safe to say Y to this question.
441
442config BLK_DEV_CS5535
443	tristate "AMD CS5535 chipset support"
444	depends on X86_32
445	select BLK_DEV_IDEDMA_PCI
446	help
447	  Include support for UDMA on the NSC/AMD CS5535 companion chipset.
448	  This will automatically be detected and configured if found.
449
450	  It is safe to say Y to this question.
451
452config BLK_DEV_CS5536
453	tristate "CS5536 chipset support"
454	depends on X86_32
455	select BLK_DEV_IDEDMA_PCI
456	help
457	  This option enables support for the AMD CS5536
458	  companion chip used with the Geode LX processor family.
459
460	  If unsure, say N.
461
462config BLK_DEV_HPT366
463	tristate "HPT36X/37X chipset support"
464	select BLK_DEV_IDEDMA_PCI
465	help
466	  HPT366 is an Ultra DMA chipset for ATA-66.
467	  HPT368 is an Ultra DMA chipset for ATA-66 RAID Based.
468	  HPT370 is an Ultra DMA chipset for ATA-100.
469	  HPT372 is an Ultra DMA chipset for ATA-100.
470	  HPT374 is an Ultra DMA chipset for ATA-100.
471
472	  This driver adds up to 4 more EIDE devices sharing a single
473	  interrupt.
474
475	  The HPT366 chipset in its current form is bootable. One solution
476	  for this problem are special LILO commands for redirecting the
477	  reference to device 0x80. The other solution is to say Y to "Boot
478	  off-board chipsets first support" (CONFIG_BLK_DEV_OFFBOARD) unless
479	  your mother board has the chipset natively mounted. Regardless one
480	  should use the fore mentioned option and call at LILO.
481
482	  This driver requires dynamic tuning of the chipset during the
483	  ide-probe at boot. It is reported to support DVD II drives, by the
484	  manufacturer.
485
486config BLK_DEV_JMICRON
487	tristate "JMicron JMB36x support"
488	select BLK_DEV_IDEDMA_PCI
489	help
490	  Basic support for the JMicron ATA controllers. For full support
491	  use the libata drivers.
492
493config BLK_DEV_SC1200
494	tristate "National SCx200 chipset support"
495	depends on X86_32 || COMPILE_TEST
496	select BLK_DEV_IDEDMA_PCI
497	help
498	  This driver adds support for the on-board IDE controller on the
499	  National SCx200 series of embedded x86 "Geode" systems.
500
501config BLK_DEV_PIIX
502	tristate "Intel PIIX/ICH chipsets support"
503	select BLK_DEV_IDEDMA_PCI
504	help
505	  This driver adds explicit support for Intel PIIX and ICH chips.
506	  This allows the kernel to change PIO, DMA and UDMA speeds and to
507	  configure the chip to optimum performance.
508
509config BLK_DEV_IT8172
510	tristate "IT8172 IDE support"
511	select BLK_DEV_IDEDMA_PCI
512	help
513	  This driver adds support for the IDE controller on the
514	  IT8172 System Controller.
515
516config BLK_DEV_IT8213
517	tristate "IT8213 IDE support"
518	select BLK_DEV_IDEDMA_PCI
519	help
520	  This driver adds support for the ITE 8213 IDE controller.
521
522config BLK_DEV_IT821X
523	tristate "IT821X IDE support"
524	select BLK_DEV_IDEDMA_PCI
525	help
526	  This driver adds support for the ITE 8211 IDE controller and the
527	  IT 8212 IDE RAID controller in both RAID and pass-through mode.
528
529config BLK_DEV_NS87415
530	tristate "NS87415 chipset support"
531	select BLK_DEV_IDEDMA_PCI
532	help
533	  This driver adds detection and support for the NS87415 chip
534	  (used mainly on SPARC64 and PA-RISC machines).
535
536	  Please read the comments at the top of <file:drivers/ide/ns87415.c>.
537
538config BLK_DEV_PDC202XX_OLD
539	tristate "PROMISE PDC202{46|62|65|67} support"
540	select BLK_DEV_IDEDMA_PCI
541	help
542	  Promise Ultra33 or PDC20246
543	  Promise Ultra66 or PDC20262
544	  Promise Ultra100 or PDC20265/PDC20267/PDC20268
545
546	  This driver adds up to 4 more EIDE devices sharing a single
547	  interrupt. This add-on card is a bootable PCI UDMA controller. Since
548	  multiple cards can be installed and there are BIOS ROM problems that
549	  happen if the BIOS revisions of all installed cards (three-max) do
550	  not match, the driver attempts to do dynamic tuning of the chipset
551	  at boot-time for max-speed.  Ultra33 BIOS 1.25 or newer is required
552	  for more than one card.
553
554	  Please read the comments at the top of
555	  <file:drivers/ide/pdc202xx_old.c>.
556
557	  If unsure, say N.
558
559config BLK_DEV_PDC202XX_NEW
560	tristate "PROMISE PDC202{68|69|70|71|75|76|77} support"
561	select BLK_DEV_IDEDMA_PCI
562
563config BLK_DEV_SVWKS
564	tristate "ServerWorks OSB4/CSB5/CSB6 chipsets support"
565	select BLK_DEV_IDEDMA_PCI
566	help
567	  This driver adds PIO/(U)DMA support for the ServerWorks OSB4/CSB5
568	  chipsets.
569
570config BLK_DEV_SIIMAGE
571	tristate "Silicon Image chipset support"
572	select BLK_DEV_IDEDMA_PCI
573	help
574	  This driver adds PIO/(U)DMA support for the SI CMD680 and SII
575	  3112 (Serial ATA) chips.
576
577config BLK_DEV_SIS5513
578	tristate "SiS5513 chipset support"
579	depends on X86
580	select BLK_DEV_IDEDMA_PCI
581	help
582	  This driver ensures (U)DMA support for SIS5513 chipset family based
583	  mainboards.
584
585	  The following chipsets are supported:
586	  ATA16:  SiS5511, SiS5513
587	  ATA33:  SiS5591, SiS5597, SiS5598, SiS5600
588	  ATA66:  SiS530, SiS540, SiS620, SiS630, SiS640
589	  ATA100: SiS635, SiS645, SiS650, SiS730, SiS735, SiS740,
590	  SiS745, SiS750
591
592	  Please read the comments at the top of <file:drivers/ide/sis5513.c>.
593
594config BLK_DEV_SL82C105
595	tristate "Winbond SL82c105 support"
596	depends on (PPC || ARM)
597	select IDE_TIMINGS
598	select BLK_DEV_IDEDMA_PCI
599	help
600	  If you have a Winbond SL82c105 IDE controller, say Y here to enable
601	  special configuration for this chip. This is common on various CHRP
602	  motherboards, but could be used elsewhere. If in doubt, say Y.
603
604config BLK_DEV_SLC90E66
605	tristate "SLC90E66 chipset support"
606	select BLK_DEV_IDEDMA_PCI
607	help
608	  This driver ensures (U)DMA support for Victory66 SouthBridges for
609	  SMsC with Intel NorthBridges.  This is an Ultra66 based chipset.
610	  The nice thing about it is that you can mix Ultra/DMA/PIO devices
611	  and it will handle timing cycles.  Since this is an improved
612	  look-a-like to the PIIX4 it should be a nice addition.
613
614	  Please read the comments at the top of
615	  <file:drivers/ide/slc90e66.c>.
616
617config BLK_DEV_TRM290
618	tristate "Tekram TRM290 chipset support"
619	select BLK_DEV_IDEDMA_PCI
620	help
621	  This driver adds support for bus master DMA transfers
622	  using the Tekram TRM290 PCI IDE chip. Volunteers are
623	  needed for further tweaking and development.
624	  Please read the comments at the top of <file:drivers/ide/trm290.c>.
625
626config BLK_DEV_VIA82CXXX
627	tristate "VIA82CXXX chipset support"
628	select IDE_TIMINGS
629	select BLK_DEV_IDEDMA_PCI
630	help
631	  This driver adds explicit support for VIA BusMastering IDE chips.
632	  This allows the kernel to change PIO, DMA and UDMA speeds and to
633	  configure the chip to optimum performance.
634
635config BLK_DEV_TC86C001
636	tristate "Toshiba TC86C001 support"
637	select BLK_DEV_IDEDMA_PCI
638	help
639	This driver adds support for Toshiba TC86C001 GOKU-S chip.
640
641endif
642
643# TODO: BLK_DEV_IDEDMA_PCI -> BLK_DEV_IDEDMA_SFF
644config BLK_DEV_IDE_PMAC
645	tristate "PowerMac on-board IDE support"
646	depends on PPC_PMAC
647	select IDE_TIMINGS
648	select BLK_DEV_IDEDMA_PCI
649	help
650	  This driver provides support for the on-board IDE controller on
651	  most of the recent Apple Power Macintoshes and PowerBooks.
652	  If unsure, say Y.
653
654config BLK_DEV_IDE_PMAC_ATA100FIRST
655	bool "Probe on-board ATA/100 (Kauai) first"
656	depends on BLK_DEV_IDE_PMAC
657	help
658	  This option will cause the ATA/100 controller found in UniNorth2
659	  based machines (Windtunnel PowerMac, Aluminium PowerBooks, ...)
660	  to be probed before the ATA/66 and ATA/33 controllers. Without
661	  these, those machine used to have the hard disk on hdc and the
662	  CD-ROM on hda. This option changes this to more natural hda for
663	  hard disk and hdc for CD-ROM.
664
665config BLK_DEV_IDE_AU1XXX
666	bool "IDE for AMD Alchemy Au1200"
667	depends on MIPS_ALCHEMY
668	select IDE_XFER_MODE
669choice
670	prompt "IDE Mode for AMD Alchemy Au1200"
671	default BLK_DEV_IDE_AU1XXX_PIO_DBDMA
672	depends on BLK_DEV_IDE_AU1XXX
673
674config BLK_DEV_IDE_AU1XXX_PIO_DBDMA
675	bool "PIO+DbDMA IDE for AMD Alchemy Au1200"
676
677config BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
678	bool "MDMA2+DbDMA IDE for AMD Alchemy Au1200"
679	depends on BLK_DEV_IDE_AU1XXX
680endchoice
681
682config BLK_DEV_IDE_TX4938
683	tristate "TX4938 internal IDE support"
684	depends on SOC_TX4938
685	select IDE_TIMINGS
686
687config BLK_DEV_IDE_TX4939
688	tristate "TX4939 internal IDE support"
689	depends on SOC_TX4939
690	select BLK_DEV_IDEDMA_SFF
691
692config BLK_DEV_IDE_ICSIDE
693	tristate "ICS IDE interface support"
694	depends on ARM && ARCH_ACORN
695	help
696	  On Acorn systems, say Y here if you wish to use the ICS IDE
697	  interface card.  This is not required for ICS partition support.
698	  If you are unsure, say N to this.
699
700config BLK_DEV_IDEDMA_ICS
701	bool "ICS DMA support"
702	depends on BLK_DEV_IDE_ICSIDE
703	help
704	  Say Y here if you want to add DMA (Direct Memory Access) support to
705	  the ICS IDE driver.
706
707config BLK_DEV_IDE_RAPIDE
708	tristate "RapIDE interface support"
709	depends on ARM && ARCH_ACORN
710	help
711	  Say Y here if you want to support the Yellowstone RapIDE controller
712	  manufactured for use with Acorn computers.
713
714config BLK_DEV_GAYLE
715	tristate "Amiga Gayle IDE interface support"
716	depends on AMIGA
717	help
718	  This is the IDE driver for the Amiga Gayle IDE interface. It supports
719	  both the `A1200 style' and `A4000 style' of the Gayle IDE interface,
720	  This includes on-board IDE interfaces on some Amiga models (A600,
721	  A1200, A4000, and A4000T), and IDE interfaces on the Zorro expansion
722	  bus (M-Tech E-Matrix 530 expansion card).
723
724	  It also provides support for the so-called `IDE doublers' (made
725	  by various manufacturers, e.g. Eyetech) that can be connected to
726	  the on-board IDE interface of some Amiga models. Using such an IDE
727	  doubler, you can connect up to four instead of two IDE devices to
728	  the Amiga's on-board IDE interface. The feature is enabled at kernel
729	  runtime using the "gayle.doubler" kernel boot parameter.
730
731	  Say Y if you have an Amiga with a Gayle IDE interface and want to use
732	  IDE devices (hard disks, CD-ROM drives, etc.) that are connected to
733	  it.
734
735	  Note that you also have to enable Zorro bus support if you want to
736	  use Gayle IDE interfaces on the Zorro expansion bus.
737
738config BLK_DEV_BUDDHA
739	tristate "Buddha/Catweasel/X-Surf IDE interface support"
740	depends on ZORRO
741	help
742	  This is the IDE driver for the IDE interfaces on the Buddha, Catweasel
743	  and X-Surf expansion boards.  It supports up to two interfaces on the
744	  Buddha, three on the Catweasel and two on the X-Surf.
745
746	  Say Y if you have a Buddha or Catweasel expansion board and want to
747	  use IDE devices (hard disks, CD-ROM drives, etc.) that are connected
748	  to one of its IDE interfaces.
749
750config BLK_DEV_FALCON_IDE
751	tristate "Falcon IDE interface support"
752	depends on ATARI
753	help
754	  This is the IDE driver for the on-board IDE interface on the Atari
755	  Falcon. Say Y if you have a Falcon and want to use IDE devices (hard
756	  disks, CD-ROM drives, etc.) that are connected to the on-board IDE
757	  interface.
758
759config BLK_DEV_MAC_IDE
760	tristate "Macintosh Quadra/Powerbook IDE interface support"
761	depends on MAC
762	help
763	  This is the IDE driver for the on-board IDE interface on some m68k
764	  Macintosh models. It supports both the `Quadra style' (used in
765	  Quadra/ Centris 630 and Performa 588 models) and `Powerbook style'
766	  (used in the Powerbook 150 and 190 models) IDE interface.
767
768	  Say Y if you have such an Macintosh model and want to use IDE
769	  devices (hard disks, CD-ROM drives, etc.) that are connected to the
770	  on-board IDE interface.
771
772config BLK_DEV_Q40IDE
773	tristate "Q40/Q60 IDE interface support"
774	depends on Q40
775	help
776	  Enable the on-board IDE controller in the Q40/Q60.  This should
777	  normally be on; disable it only if you are running a custom hard
778	  drive subsystem through an expansion card.
779
780config BLK_DEV_PALMCHIP_BK3710
781	tristate "Palmchip bk3710 IDE controller support"
782	depends on ARCH_DAVINCI
783	select IDE_TIMINGS
784	select BLK_DEV_IDEDMA_SFF
785	help
786	  Say Y here if you want to support the onchip IDE controller on the
787	  TI DaVinci SoC
788
789# no isa -> no vlb
790if ISA && (ALPHA || X86 || MIPS)
791
792comment "Other IDE chipsets support"
793comment "Note: most of these also require special kernel boot parameters"
794
795config BLK_DEV_4DRIVES
796	tristate "Generic 4 drives/port support"
797	help
798	  Certain older chipsets, including the Tekram 690CD, use a single set
799	  of I/O ports at 0x1f0 to control up to four drives, instead of the
800	  customary two drives per port. Support for this can be enabled at
801	  runtime using the "ide-4drives.probe" kernel boot parameter if you
802	  say Y here.
803
804config BLK_DEV_ALI14XX
805	tristate "ALI M14xx support"
806	select IDE_TIMINGS
807	select IDE_LEGACY
808	help
809	  This driver is enabled at runtime using the "ali14xx.probe" kernel
810	  boot parameter.  It enables support for the secondary IDE interface
811	  of the ALI M1439/1443/1445/1487/1489 chipsets, and permits faster
812	  I/O speeds to be set as well.
813	  See the files <file:Documentation/ide/ide.rst> and
814	  <file:drivers/ide/ali14xx.c> for more info.
815
816config BLK_DEV_DTC2278
817	tristate "DTC-2278 support"
818	select IDE_XFER_MODE
819	select IDE_LEGACY
820	help
821	  This driver is enabled at runtime using the "dtc2278.probe" kernel
822	  boot parameter. It enables support for the secondary IDE interface
823	  of the DTC-2278 card, and permits faster I/O speeds to be set as
824	  well. See the <file:Documentation/ide/ide.rst> and
825	  <file:drivers/ide/dtc2278.c> files for more info.
826
827config BLK_DEV_HT6560B
828	tristate "Holtek HT6560B support"
829	select IDE_TIMINGS
830	select IDE_LEGACY
831	help
832	  This driver is enabled at runtime using the "ht6560b.probe" kernel
833	  boot parameter. It enables support for the secondary IDE interface
834	  of the Holtek card, and permits faster I/O speeds to be set as well.
835	  See the <file:Documentation/ide/ide.rst> and
836	  <file:drivers/ide/ht6560b.c> files for more info.
837
838config BLK_DEV_QD65XX
839	tristate "QDI QD65xx support"
840	select IDE_TIMINGS
841	select IDE_LEGACY
842	help
843	  This driver is enabled at runtime using the "qd65xx.probe" kernel
844	  boot parameter.  It permits faster I/O speeds to be set.  See the
845	  <file:Documentation/ide/ide.rst> and <file:drivers/ide/qd65xx.c>
846	  for more info.
847
848config BLK_DEV_UMC8672
849	tristate "UMC-8672 support"
850	select IDE_XFER_MODE
851	select IDE_LEGACY
852	help
853	  This driver is enabled at runtime using the "umc8672.probe" kernel
854	  boot parameter. It enables support for the secondary IDE interface
855	  of the UMC-8672, and permits faster I/O speeds to be set as well.
856	  See the files <file:Documentation/ide/ide.rst> and
857	  <file:drivers/ide/umc8672.c> for more info.
858
859endif
860
861config BLK_DEV_IDEDMA
862	def_bool BLK_DEV_IDEDMA_SFF || \
863		 BLK_DEV_IDEDMA_ICS || BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
864	select IDE_XFER_MODE
865
866endif # IDE
867