Commit Graph

39 Commits

Author SHA1 Message Date
sos
2ae98bd2ef Add another ID for the SiI3112a SATA chip as used on the Adaptec 1210SA.
RAID support is still in the works, so for now just normal ATA ops.

Sponsored by:	Matt Douhan(www.fruitsalad.org)
2003-09-08 13:55:05 +00:00
obrien
4d1e58a187 Support the nForce3 chip found on Opteron motherboards:
atapci0: <nVidia nForce3 UDMA133 controller>

Approved by:	sos
2003-09-02 21:02:46 +00:00
sos
fd78182c7c Cleanup the dma int/alloc/free code. 2003-08-25 11:13:04 +00:00
sos
dcf768a2c4 Dont check the cable bit on ich5 when on the SATA channel. 2003-08-25 07:45:54 +00:00
obrien
c63dab466c Use __FBSDID().
Also some minor style cleanups.
2003-08-24 17:55:58 +00:00
sos
acd43345e5 This is a major rework of the ATA driver (ATAng)
Restructure the way ATA/ATAPI commands are processed, use a common
ata_request structure for both. This centralises the way requests
are handled so locking is much easier to handle.

The driver is now layered much more cleanly to seperate the lowlevel
HW access so it can be tailored to specific controllers without touching
the upper layers. This is needed to support some of the newer
semi-intelligent ATA controllers showing up.

The top level drivers (disk, ATAPI devices) are more or less still
the same with just corrections to use the new interface.

Pull ATA out from under Gaint now that locking can be done in a sane way.

Add support for a the National Geode SC1100. Thanks to Soekris engineering
for sponsoring a Soekris 4801 to make this support.

Fixed alot of small bugs in the chipset code for various chips now
we are around in that corner anyways.
2003-08-24 09:22:26 +00:00
imp
c23aaeeba4 Prefer new location of pci include files (which have only been in the
tree for two or more years now), except in a few places where there's
code to be compatible with older versions of FreeBSD.
2003-08-22 05:54:52 +00:00
sos
50b0b9ea2f Update the SATA support code to work more correctly with
real SATA disks now that I can test it.

Add support for the SiI 3112 SATA chip using memory mapped I/O.
Update the support for the SiI 0680 to use the memio interface as well.

Sponsored by:	David Leimbach <leimy2k@mac.com> (3112 based controller)
Sponsored by:	FreeBSD Systems (www.FreeBSDsystems.com) (SATA disks)
2003-07-02 10:50:44 +00:00
grehan
a82f10f6c9 Prevent probing the secondary channel on CMD646 controllers if the
channel has been disabled by BIOS. This prevents a bus timeout
machine check on B&W G3 PowerMacs, which have a primary-only CMD646
on the motherboard.

Approved by: sos
Obtained from: NetBSD
2003-06-27 10:11:54 +00:00
sos
2104a46649 Add support for the HighPoint HPT302 & HPT371
HW sponsored by:	Martin Blapp <mbr@FreeBSD.ORG>
2003-06-19 15:11:04 +00:00
sos
2bd32bb6f3 Fix the setup of old Promise controllers, clocks was not setup right
causing way too low transfer rates.

Enable interrupts on old CMD64[89] chips, apparently some bogus BIOS's
doesn't get this right.
2003-06-07 15:19:16 +00:00
sos
17d362a0bf Unbork the chip locating code.
Approved by: re@
2003-05-19 13:42:23 +00:00
sos
3602c284c1 Support the ICH5 SATA part.
Fix HPT374 UDMA133 timing.
Fix Promise ID.
Cosmetics on probe print for Promise & HPT.

Approved by: re
2003-05-18 16:45:48 +00:00
sos
9096783972 Fix typo (that even got cut/pasted 2 times)
Found by:	phk
Approved by:	re@
2003-05-12 16:43:13 +00:00
sos
f4683501f3 Add a couble new Intel PCI id's
Approved by: re@
2003-05-10 14:49:19 +00:00
jhb
cbf2af31a0 Add PCI ID's for the Intel ICH5 (82801EB) chipset.
Approved by:	re (murray)
Sponsored by:	The Weather Channel
2003-05-06 19:31:56 +00:00
sos
43f1ae07c3 Add the pdc20268r as candidate for the TX test. 2003-05-03 18:26:00 +00:00
sos
485a0c5f9a Dont try to call detached interrupt routine. 2003-05-02 12:37:03 +00:00
sos
9f4de55ff2 I'm pleased to announce that Promise is now supporting the FreeBSD
project by providing documentation (under NDA) and hardware for
testing. This commit is the first result of the cooperation, and
adds support for several of their new controllers that we didn't
support before (and probably newer would have without this arrangement).

Add support for the Promise SATA150 TX2/TX4 and the Promise TX4000
controllers. This also adds support for various motherboard fitted
Promise SATA/ATA chips.
Note that this code uses memory mapped registers to minimize overhead.
I belive FreeBSD has made another first in the Open Source world
by being able to release support for this :)
2003-05-01 06:20:50 +00:00
sos
a733e8a7dd Cosmetics. 2003-04-16 08:30:40 +00:00
sos
2c9f271ac5 Spell 55 with two '5's 2003-04-10 12:56:33 +00:00
sos
e0d4866a03 Add a few more older SiS ID's. 2003-04-10 12:24:39 +00:00
sos
d6ec3d03e8 Third round of updates to the ATA driver.
More DMA cleanups, including fix for breakage on older Promise controllers.

Add more ways of getting to the ATA registers.
2003-04-07 14:12:12 +00:00
sos
1aa8f29ccf Second round of updates to the ATA driver.
Clean up the DMA interface too much unneeded stuff crept in with
the busdma code back when.

Modify the ATA_IN* / ATA_OUT* macros so that resource and offset
are gotten from a table. That allows for new chipsets that doesn't
nessesarily have things ordered the good old way. This also removes
the need for the wierd PC98 resource functions.

Tested on: i386, PC98, Alpha, Sparc64
2003-03-29 13:37:09 +00:00
sos
054c393292 Fix the cable detection and properly find the host bridge on
older SiS chips.
2003-03-16 16:26:51 +00:00
sos
00b21712df Correct the last commit, only look for subfunctions on the same PCI slot. 2003-03-12 15:45:52 +00:00
sos
0580d0b0d9 Cleanup the probe code a bit. 2003-03-12 12:05:17 +00:00
sos
35cf7b6cba Dont use r_bmio on Cyrix chips if not set from BIOS. 2003-03-10 08:20:14 +00:00
sos
170c53b3f2 Minor cleanup of the Promise code. 2003-03-03 11:51:08 +00:00
des
2756b6c964 More low-hanging fruit: kill caddr_t in calls to wakeup(9) / [mt]sleep(9). 2003-03-02 16:54:40 +00:00
sos
4ce130a4aa Fix support for HPT controllers they where always left in PIO mode.
Amazing what a ';' can do :/
2003-03-01 09:33:35 +00:00
sos
c7b1aa5bcb Only use function 1 not 0 on cypress chips. 2003-02-27 09:42:57 +00:00
sos
f544845967 Fix UDMA modes setup on CMD chips. 2003-02-27 07:11:42 +00:00
sos
789b4b4840 Fix a reversed test for ATAPI_DEVICE in the Promise setup code. 2003-02-26 19:13:17 +00:00
sos
c404f167fb Fix support for Acer chips. The UDMA enable regs wasn't set properly. 2003-02-25 21:22:27 +00:00
sos
855a905ec2 Fix support for the old CMD 646 chips, interrupt setup was wrong. 2003-02-25 12:56:37 +00:00
sos
4134863978 Fix chipset setup problem on older ALI chips. 2003-02-23 16:36:21 +00:00
sos
386a107f4e Fix timeout when using UDMA speeds, bad chip setup. 2003-02-23 15:05:04 +00:00
sos
93c9b5f5d1 First round off updates/fixes to the ATA driver.
This moves all chipset specific code to a new file 'ata-chipset.c'.
Extensive use of tables and pointers to avoid having the same switch
on chipset type in several places, and to allow substituting various
functions for different HW arch needs.
Added PIO mode setup and all DMA modes.
Support for all known SiS chipsets. Thanks to Christoph Kukulies for
sponsoring a nice ASUS P4S8X SiS648 based board for this work!

Tested on:	i386, PC98, alpha and sparc64
2003-02-20 20:02:32 +00:00