Commit Graph

150 Commits

Author SHA1 Message Date
bouyer
fda8de6495 bus_space_unmap() ctl_baseioh instead of ctl_ioh for the native case.
Pointed out by enami, and should fix kern/16307.
2002-04-14 16:55:08 +00:00
mycroft
3b38c02e34 Add support for the ServerWorks OSB4 and CSB5 chipsets.
Note:  The code is written a little more cruftily than it should be.  It's also
only tested on the OSB4.  I'm not sure it even makes sense to have support for
`native' mode, but I put it in just in case.
2002-04-12 18:02:04 +00:00
thorpej
f92912592f Reenable DMA on the Symphony/Winbond chips. The lossage I saw was
due to a broken pmap_extract() on ARM.
2002-04-05 22:16:28 +00:00
thorpej
d69bb1b3d9 Hm, Symphony/Winbond support doens't seem to work quite right
yet; disable it for now.
2002-04-04 23:47:39 +00:00
thorpej
5eb4257b8e Add bus master DMA support for the Symphony Labs 82C105 PCI IDE
controller.  This part is also found in the Winbond 83C553 Southbrige.
2002-04-03 17:02:21 +00:00
bouyer
21ac4c9d76 Add support for the AMD768. Tested by Murray Armfield <murray@river-styx.org>. 2002-03-24 16:58:12 +00:00
bouyer
8b9a58198e Support Ultra/100 on Intel 830M. From ks@ub.uni-mainz.de on -current-users. 2002-01-29 21:13:17 +00:00
bouyer
6d7c6c755b In hpt_pci_intr(): There is interrupt pending once IDEDMA_CTL_ACT is
turned off. It seems that IDEDMA_CTL_INTR is asserted before DMA transfer
is complete, leading to race condition in case of interrupt sharing.
Discovered reading the FreeBSD code.
2002-01-28 15:30:29 +00:00
augustss
0694a51a97 Add 82201CA to the chip table. 2002-01-14 01:35:39 +00:00
bouyer
2e06a41ea8 Fix typo in comment. Reported by Alexander Yurchenko in private mail. 2002-01-08 11:47:27 +00:00
bouyer
5938b2bd62 Ops, a Ultra100>=TX2 is always in native mode ! 2001-12-18 16:40:51 +00:00
bouyer
787b934e1e The CMD0649 has 2 truly independant channel. tested by and patch from
Love <lha@stacken.kth.se>.
I suspect this is true for the 648 too; if someone with a 648 and one device
on each channel could test that all works with one_channel = 1, it would
be great !
2001-12-18 16:32:54 +00:00
bouyer
a9f41fe33b dd support for the Promise Ultra100TX2, Promise Ultra100TX2v2 and Ultra133
IDE controllers. In part from OpenBSD via ragge, in part from FreeBSD.
2001-12-16 23:35:52 +00:00
bouyer
71e063c830 pdc202xx_setup_channel: remove a duplicate line. 2001-12-13 20:57:22 +00:00
wiz
55e6492076 Explicitly write explicitly without a second e. 2001-11-21 17:33:26 +00:00
bouyer
1952efa437 Support Ultra/100 on CMD 0649. 2001-11-15 20:48:17 +00:00
lukem
9048aaae21 add RCSID 2001-11-13 07:48:40 +00:00
augustss
53adfd4111 Add Via KT266 as an ATA100 controller. 2001-10-26 10:38:12 +00:00
thorpej
5f6fd54ec7 Add a config flag (0x02) that can force DMA to be *disabled* on
chipsets for which it would otherwise be enabled by default.
2001-10-21 18:55:14 +00:00
tron
b7ca23147b Add UDMA/100 support for SiS chipsets 645, 650 and 730. 2001-10-16 08:22:50 +00:00
tron
1e022c27b4 Use UDMA/100 on SiS 735 chipset. 2001-10-14 11:21:10 +00:00
bouyer
92aaf348cf Ali M5229 IDE controllers: tweak the rigth 0x79 register (the one from the
pci/isa bridge, not the one from the IDE controller).
2001-09-24 20:03:47 +00:00
tsutsui
b6e4b26d3b Check 80 pins cable in acard_setup_channel() for Acard ATP860. 2001-08-23 10:02:25 +00:00
tsutsui
38016b0ba8 Fix some typos in newer ALi M5229 support. Approved by bouyer. 2001-08-03 01:31:08 +00:00
tsutsui
2c44aa6dfd Remove unused pciide_print() declaration. From OpenBSD. 2001-08-01 16:29:21 +00:00
tsutsui
690c5b1ae3 Enable the Acard UIDE controllers by default.
My WDC MDMA-only (non-UDMA) drives did not work on the Acard controllers,
but it turns out that the problem was not Acard specific.
These WDC drives do not work on the ESS ISAPnP wdc port nor on
macppc obio wdc port neither, and another Quantum MDMA-only drive
works fine on the Acard.

These WDC drives work fine on my i386 pciide (which is initialized
by the BIOS), so maybe we have to do something in MI wdc to initialize
such drives properly...
2001-07-28 12:07:11 +00:00
bouyer
8e2205572d Better support for newer ALI M5229 chipsets: support Ultra/66 for rev >= 0xC2,
Ultra/100 for revs >= 0xC4.
The the generic PCIIDE interupt routine for chipsets rev >= 0xC2 in native
mode, it seems that newer chipsets don't have the ACER_CHIDS register :(
From Linux and FreeBSD.
2001-07-26 20:02:21 +00:00
bouyer
ecbce129cb Handle HPT-370A controllers, from skanto@sjk-software.fi (kern/13540) but
with some differences to the original patch: don't assume all controllers with
rev >= HPT370_REV are HPT370, and explicitely print if we have a chip with a
rev the driver does't know.
2001-07-23 14:55:26 +00:00
thorpej
44e529fecc Use BUS_DMA_READ and BUS_DMA_WRITE in some obvious places. 2001-07-19 16:36:14 +00:00
bouyer
1c51ff8336 Better fix for rev 1.94 (disable UDMA for SiS controllers with rev 0xd0):
Different chipsets have the same vendor/device/rev ID for the IDE controller,
but only one of them is buggy. So check dev/rev ID of the function 0
(pchb on the buggy one) of the same device to detect the buggy controller.
2001-07-04 16:26:17 +00:00
scw
e13606c37b Workaround for buggy OPTi pciide chipset revisions, as reported
in PR/11644.
2001-06-13 09:55:25 +00:00
simonb
e5bd00e48d For ports that wire up pciide in compatibility mode, have
them define __HAVE_PCIIDE_MACHDEP_COMPAT_INTR_ESTABLISH
in pci_machdep.h and pciide_map_compat_intr() only calls
pciide_machdep_compat_intr_establish() if that preprocessor
define exists.

Ports that don't need to do this no longer need to supply a
dummy function.
2001-06-08 04:48:54 +00:00
bouyer
6973b27309 Uninitialised variable (from Krister Walfridsson): in acard_chip_map()
drop compatchan and use the real channel number instead.
2001-05-30 20:30:02 +00:00
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