Commit Graph

117 Commits

Author SHA1 Message Date
matt
2573405952 Add latent vendor entries for ServerWorks and Winbond IDE controllers.
No code to use them as yet.
2001-05-14 20:41:27 +00:00
fvdl
8311862915 Add amd766 support. Rename some variables to 7x6 now that it supports
both 756 and 766.
2001-05-06 20:06:35 +00:00
fvdl
9bf58a757b Add missing break statement. 2001-05-06 14:32:35 +00:00
bouyer
bef8b534cc Now that we can do it, print "HPT366" or "HPT370" depending on PCI revision. 2001-05-04 18:38:36 +00:00
bouyer
7e9f9eaaa1 Better support for VIA chipsets: look at the product/rev ID of the ISA bridge
to guess the pciide capabilities, rather than trying to guess it by ourselve.
Add preliminary support for the 686b (Ultra/100) guessed from FreeBSD/linux
driver (datasheet not publically available,  I contacted via).
Let chip-specific map routine do the autoconf printf if ide_name is NULL
(they may have more details about the controller than we have in pciide_attach)
2001-05-04 15:25:05 +00:00
tsutsui
e53804bd4b Preliminary support for Acard ATP850/860 UDMA PCI IDE controllers.
XXX Currently disabled by default because it has some problems on macppc.
XXX Maybe some more initialization is needed, but there is few information
XXX about the chips.
2001-04-21 16:36:37 +00:00
tsutsui
8dfe3efca7 space -> tab 2001-04-21 16:10:54 +00:00
bouyer
66f705d045 Don't set up PDC2xx_SCR the same way for promise Ultra/66 & Ultra/100,
this special setup seems to break some adapters.
Reported by Kazushi Marukawa.
2001-03-20 17:56:46 +00:00
bouyer
df43ec1064 Add BUS_DMA_STREAMING for the data bus_dmamap_load(). 2001-03-20 17:54:39 +00:00
bouyer
01ca4cb938 Support the Promise Ultra/100 at full speed, and fixes the "bogus intr"
problem some peoples reported for Promise Ultra/100.
Thanks to Chuck Silvers for giving me a Promise Ultra/100 so I could do some
tests.
2001-03-12 09:53:28 +00:00
bouyer
d32a56145d ALi controller: can only do UltraDMA for revs >= 0x20.
From OpenBSD.
2001-02-18 18:07:53 +00:00
bouyer
265f72bab6 Add support for INTEL 82801BAM IDE controller, from OpenBSD. 2001-02-18 17:58:59 +00:00
bouyer
bc9dd935cf Fix bug which affects pciide controllers in native mode (found by
Paul Kranenburg, many thanks !): the control register I/O is 4 byte long
although only one is used, but the control register is at offset 2, and not
0 as expected by IC code. Use bus_space_subregion() to get a handle which
points to the control register, and is one byte long.
2001-01-12 16:03:59 +00:00
bouyer
69153b6b36 Run at Ultra/66 on VIA controllers that can do it. PCI vendor/device/revision
is the same for the Ultra/33 and Ultra/66 version, so test writability of
the U66 enable bit (idea from Chris Cappuccio).
Thanks to David Carrel for testings.
2001-01-05 18:04:42 +00:00
bouyer
cbf42ca2d1 Ops, make it compile again. 2001-01-05 15:34:05 +00:00
bouyer
5c800a0dab Add support for Ultra/100 on intel ICH2; from Tomokazu HARADA in kern/11747. 2001-01-05 15:29:39 +00:00
bouyer
2a63f0a46c Add support for Ultra/100 on the HPT370
XXX the datasheet for the HPT370 is wrong
While I'm there clear the DRIVE_DMA flag when we're going to use Ultra/DMA
where it was missed, so that wdc_print_modes() only prints what's used.
2001-01-05 15:20:53 +00:00
tsutsui
b1cf284bd6 s/AP0_UDMA_MASK/APO_UDMA_MASK/ 2000-12-29 18:59:01 +00:00
sommerfeld
851de295eb Change pci_intr_map to get interrupt source information from a "struct
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".

This both simplifies the driver api, and allows for alternate PCI
interrupt mapping schemes, such as one using the tables described in
the Intel Multiprocessor Spec which describe interrupt wirings for
devices behind pci-pci bridges based on the device's location rather
the bridge's location.

Tested on alpha and i386; welcome to 1.5Q
2000-12-28 22:59:06 +00:00
mycroft
e2ef1b88bb Disable the 16-bit I/O space hack for ALL PROMISE CONTROLLERS.
This code is TOTALLY BROKEN and causes a NULL POINTER DEREFERENCE whenever it
is fired.
2000-12-21 01:19:24 +00:00
pk
4bcb826e27 Cast a bus_addr_t' argument to u_long' for `%lx' format (XXX..) 2000-12-17 21:50:14 +00:00
fvdl
56fd0b02d5 Avoid format warnings. 2000-12-04 20:25:40 +00:00
thorpej
ec15125b5b Don't restrict I/O space to 16-bits on the Promise Ultra/33 boards.
Empirical evidence suggests that the board works just fine with
an I/O address >= 0x10000.
2000-11-30 18:11:40 +00:00
christos
12269bd46c Don't try to use ultra-dma on sis chips with revision 0xd0. It loses
immediately with a lost interrupt on udma mode 2, downgrades to mode 1
at which point it silently corrupts data on high disk activity. This
happens on two out of 3 machines I own that exhibit high disk activity.
2000-11-26 04:59:18 +00:00
bouyer
d81861796a Add support for Intel ICH2 2000-11-19 15:32:24 +00:00
thorpej
cfe0892ed3 NBPG -> PAGE_SIZE 2000-11-14 18:42:55 +00:00
matt
d0c3ebd9d8 Make the test for dmareg >= 0x10000 quirked on IDE_16BIT_IOSPACE 2000-11-08 18:22:27 +00:00
wrstuden
88cbfbe36d Move guts of pciide_print_modes() to wdc_print_modes() so that non-pciide
wdc drivers (like macppc's obio IDE interface) can use it. Also add
support to both wd attach line and to wdc_print_modes() to print
Ultra/{33,66,100} for respective UDMA modes (From Manuel Bouyer).
2000-11-08 17:57:36 +00:00
matt
43ff857e29 Don't allow use of mapreg is they are at or above 0x10000 in I/O space. (in
other words, if the address uses bits in the top 16 bits, don't use it).
2000-11-05 21:14:59 +00:00
bouyer
a2c02690af only VT82C586A rev >= 6 supports Ultra-DMA. From OpenBSD. 2000-10-04 09:34:09 +00:00
enami
efb0ce0996 Recognize Promise ATA-100 controller as PDC-20262 instead of 20246. 2000-08-21 15:52:50 +00:00
enami
84ebb6165e Match the Promise ATA-100 controller found on the mother board
MS-6321 (MSI 694D Pro).  Reported in PR#10756 by Kazuki Sakamoto.
2000-08-21 15:43:46 +00:00
drochner
a1b037bc3a recognize the i440MX mobile chipset's IDE interface 2000-08-09 13:23:07 +00:00
bouyer
46c3f0204d PCIIDE_CMD0646U_UDMA->PCIIDE_CMD0646U_ENABLEUDMA for consistency with
PCIIDE_AMD756_ENABLEDMA
defopt PCIIDE_CMD0646U_ENABLEUDMA, PCIIDE_AMD756_ENABLEDMA,
    PCIIDE_CMD064x_DISABLE
Fix a typo pointed out by John Hawkinson
2000-08-02 21:49:09 +00:00
bouyer
bd0766459c Add support for the CMD PCI646U. Linux claims that this driver is brocken
with UDMA, so enable Ultra-DMA only if "options PCIIDE_CMD0646U_UDMA" is set.
2000-08-02 20:23:45 +00:00
bouyer
76c77aca38 Add support for the CMD PCI0646U2, an Ultra/33 version of the 0646.
Note: there's also a PCI0646U, for which I don't have docs for now.
2000-08-01 21:02:55 +00:00
bouyer
aa0d4a41d5 HPT370: clear disable interrupt bit; make it works in Ultra/66 mode. 2000-07-27 14:28:45 +00:00
bouyer
6e88d58524 Make it compile when PCIIDE_AMD756_ENABLEDMA is defined. From kern/10555
by MURATA Shuuichirou.
2000-07-20 12:19:41 +00:00
bouyer
2646cf1612 Use the CMD PCI0648/9 IRQ ACK code for the 0646 too, makes the 0646 works
in native mode.
2000-07-07 13:54:25 +00:00
bouyer
e2aaf9ef7f Work around a bug in AMD756 rev D2, from patches provided by David Sainty:
disable multiword DMA for these chips. multiword DMA can be forced with
options PCIIDE_AMD756_ENABLEDMA on rev D2 chips, but use at your own risk !
While I'm there remove a duplicate allocation of sc_wdcdev.nchannels in HPT
code.
2000-07-06 15:08:11 +00:00
bouyer
3c5afc2677 Back out previous, it has to be done in a different way. 2000-07-05 19:05:31 +00:00
bouyer
838676ce64 Apply patch from David Sainty <David.Sainty@optimation.co.nz>:
Some AMD controllers have a bug which can look up the machine when using DMA, so
disable DMA for some revisions (info provided by AMD).
"options PCIIDE_AMD756_ENABLEDMA" can be used to force DMA on these chips.
2000-07-05 18:58:41 +00:00
bouyer
fa436f165c HPT: use pciide_channels[i] not pciide_channels[0]. My HPT370 now probes
both channels (but still doesn't work properly; I suspect I got a broken one).
2000-07-05 16:11:35 +00:00
enami
88a0f6ee93 Match with promise ultra100/ata contoller. I haven't actually test this
contoller with ultra100 drive, but it works at least with ultra66 or more
older drive
2000-07-04 16:34:33 +00:00
mrg
7c15053eed remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-28 16:08:42 +00:00
tron
bddc013764 Add special IRQ handler for CMD PCI0648 and PCI0649 taken from the
experimental version of Manuel Bouyer's driver.
2000-06-27 05:57:05 +00:00
mrg
2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +00:00
bouyer
8a0d96e59e Add support for the CMD PCI0648 and PCI0649 IDE controllers.
Thanks to Matthias Scheler for testing.
2000-06-26 10:07:52 +00:00
bouyer
2e861ca3ce Correct 80 pin handling for promise Ultra/66: when the bit is set
we *don't* have a Ultra/66 cable.
2000-06-26 09:55:26 +00:00
bouyer
034590578d Shorter description for the HPT366 2000-06-12 21:25:01 +00:00