History log of /src/sys/dev/pci/pciide.c |
Revision | | Date | Author | Comments |
1.219 |
| 06-Nov-2010 |
jakllsch | branches: 1.219.18; Rework pciide(4) detachment to take the legacy interrupt mapping into consideration and avoid future code duplication.
Ports wanting to enable detachment of controllers with compatibility-mapped channels will need to supply a pciide_machdep_compat_intr_disestablish() function.
|
1.218 |
| 05-Nov-2010 |
jakllsch | pciide(4): Sprinkle static, add detachment support.
|
1.217 |
| 19-Oct-2009 |
bouyer | branches: 1.217.2; 1.217.4; Remove closes 3 & 4 from my licence. Lots of thanks to Soren Jacobsen for the booring work !
|
1.216 |
| 18-Mar-2008 |
cube | branches: 1.216.4; Split device_t and softc for ATA devices, as well as wd(4). Other cosmetic changes where appropriate.
|
1.215 |
| 16-Nov-2006 |
christos | branches: 1.215.24; 1.215.44; 1.215.48; __unused removal on arguments; approved by core.
|
1.214 |
| 12-Oct-2006 |
christos | - sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
1.213 |
| 11-Dec-2005 |
christos | branches: 1.213.20; 1.213.22; merge ktrace-lwp.
|
1.212 |
| 27-Feb-2005 |
perry | branches: 1.212.4; nuke trailing whitespace
|
1.211 |
| 04-Feb-2005 |
perry | de-__P
|
1.210 |
| 17-Sep-2004 |
enami | branches: 1.210.4; 1.210.6; Whitespace nit.
|
1.209 |
| 08-Oct-2003 |
bouyer | Split pciide in per-chip family driver, as proposed in http://mail-index.netbsd.org/tech-kern/2003/09/25/0007.html We now have: acardide* at pci? dev ? function ? # Acard IDE controllers aceride* at pci? dev ? function ? # Acer Lab IDE controllers cmdide* at pci? dev ? function ? # CMD tech IDE controllers cypide* at pci? dev ? function ? # Cypress IDE controllers hptide* at pci? dev ? function ? # Triones/HighPoint IDE controllers optiide* at pci? dev ? function ? # Opti IDE controllers piixide* at pci? dev ? function ? # Intel IDE controllers pdcide* at pci? dev ? function ? # Promise IDE controllers siside* at pci? dev ? function ? # SiS IDE controllers slide* at pci? dev ? function ? # Symphony Labs IDE controllers viaide* at pci? dev ? function ? # VIA/AMD/Nvidia IDE controllers pciide* at pci? dev ? function ? flags 0x0000 # GENERIC pciide driver
serverworks driver not commited yet; there are still copyright issues about it.
|
1.208 |
| 08-Oct-2003 |
bouyer | Make the ATA mid-layer appears as atabus, as proposed in http://mail-index.netbsd.org/tech-kern/2003/09/25/0006.html This adds a device (atabus) between IDE controllers and wd or atapibus, to have each ATA channel show up in the device tree. Later there will be atabus devices in /dev, so that we can do IOCTL on them. Each atabus has its own kernel thread, to handle operations that needs polling, e.g. reset and others.
Device probing on each bus it defered to the atabus thread creation. This allows to do the reset and basic device probes in parallel, which reduce boot time on systems with several pciide controllers.
|
1.207 |
| 05-Oct-2003 |
bouyer | Remove references to University of California from my copyright notices.
|
1.206 |
| 25-Sep-2003 |
mycroft | Hide the use of config_interrupts() in one place.
|
1.205 |
| 23-Sep-2003 |
mycroft | Fix more probe delay and/or failure problems: 1) Don't wait for DRQ on an IDENTIFY command -- if it's not set when we see BSY clear, abort the command and ignore the drive. (Do this by testing for DRQ in the read/write cases in __wdccommand_intr().) 2) Don't wait for DRQ to deassert when we finish an IDENTIFY (or any other non-block command that reads data) -- we don't do this for block I/O, and empirically it doesn't clear on my CF cards at all, causing a pointless 1s delay. 3) Add comments to some of the delay()s, and add missing ones in wdcreset() and the WDCC_RECAL in the so-called "pre-ATA" probe. 4) Slightly simplify the reset sequence -- we were doing an extra I/O. 5) Modify the register writability test to make sure that registers are not overlapped -- this can happen in some weird cases with a missing device 1. 6) Check the error register value after the reset -- if it's not 01h or 81h, as appropriate (see ATA spec), punt. Tested with a number of ATA-only, ATAPI-only, mixed ATA-ATAPI, CF, and IDE disk configurations.
Also remove the SINGLE_DRIVE nonsense again.
|
1.204 |
| 21-Sep-2003 |
bouyer | Ops, remove a line that escaped out of my local tree.
|
1.203 |
| 21-Sep-2003 |
bouyer | The return value from pciide_mapregs_* are ignored; make them return void. Re-add support for HPT366 in compat mode.
|
1.202 |
| 21-Sep-2003 |
bouyer | Since we can't detect ghost drives in the wdc back-end, resurect WDC_CAPABILITY_SINGLE_DRIVE.
|
1.201 |
| 20-Sep-2003 |
enami | Make sure the message from pciide_chipen() starts at the beginning of line.
|
1.200 |
| 19-Sep-2003 |
mycroft | 1) Use config_interrupts() to attach IDE and ATAPI drives. This eliminates most polling. 2) Clean up some goofiness in pciide -- get rid of the whole "candisable" path (it's gratuitous) and simplify the code by calling pciide_map_compat_intr(), *_set_modes() and wdc_print_modes() from central locations. 3) Add a register writability and register ghost test to eliminate phantom drives more quickly.
|
1.199 |
| 17-Sep-2003 |
bouyer | Add back support for the legacy VT8237 IDE controller. This wasn't an error, on this chipset we have the SATA controller on function 0 of the IDE controller, not the pcib bridge. Fix provided by Stephen Degler.
|
1.198 |
| 15-Sep-2003 |
bouyer | Add support for Intel 82801EB Serial ATA. Not tested with a drive yet, Matthias Scheler tested that the controller attaches properly.
|
1.197 |
| 15-Sep-2003 |
bouyer | Add support for VIA 8237 Serial ATA. From Stephen Degler in kern/22727, with some cleanup by me.
|
1.196 |
| 17-Aug-2003 |
bouyer | Add support for VIA VT8237 (KT600) IDE controller. From Stephen Degler in PR port-i386/22453.
|
1.195 |
| 10-Aug-2003 |
bouyer | Corect offset for the promise "magic registers" (it depends on channel number). This makes cable detect work properly for newer promise (pdc268 and newer).
|
1.194 |
| 28-Jun-2003 |
bouyer | branches: 1.194.2; Correct setup of General Purpose Register for PDC20265 (Ultra/100) and newer. From Andreas Johansson in private mail.
|
1.193 |
| 28-Jun-2003 |
bouyer | Add support for ICH5, from Quentin Garnier in private mail.
|
1.192 |
| 17-May-2003 |
thorpej | * Use aprint*(). * Add Ultra/133 to wdc_print_modes().
|
1.191 |
| 28-Apr-2003 |
nakayama | Make DMA mode works on Promise Ultra66/100 with 48-bit LBA drives. Ok'ed by bouyer in tech-kern@netbsd.org.
|
1.190 |
| 19-Apr-2003 |
christos | PR/21236: Simon Hitzemann: Fix missing space in error format. While I am there make a single copy of the error string instead of 6 and share it.
|
1.189 |
| 05-Apr-2003 |
kent | Add '(ICH3)' to the names of 82801CA for consistency with other 82801xx names
|
1.188 |
| 04-Apr-2003 |
kent | Support for ICH4M IDE Controller
|
1.187 |
| 20-Mar-2003 |
thorpej | Add support for the Silicon Image SATALink 3112 Serial ATA controller.
|
1.186 |
| 19-Mar-2003 |
thorpej | Fix pasto.
|
1.185 |
| 18-Mar-2003 |
thorpej | Add register definitions for the Intel i31244 Serial ATA controller.
|
1.184 |
| 18-Mar-2003 |
thorpej | Add very basic support for the Intel i31244 Serial ATA controller. We only support legacy (i.e. PCI IDE compatible) mode, for now. Also note that DMA is disabled for rev 0 chips unless explicitly enabled with PCIIDE_I31244_ENABLEDMA.
|
1.183 |
| 15-Mar-2003 |
bouyer | Ops, I commited the previous change (improved SiS support) from thr wrong tree. Sync with the latest diff I made available, and also include changes from kern/20710 which is much better than the hack I've done.
|
1.182 |
| 14-Mar-2003 |
bouyer | Rework SiS support: more controller supported (up to Ultra/133) and better support for the older ones. Information for this work extracted from Soeren Schmidt's FreeBSD driver.
|
1.181 |
| 28-Feb-2003 |
enami | Match ServerWorks CSB6 IDE controller.
|
1.180 |
| 27-Jan-2003 |
thorpej | Experimental support for RAID volumes configured by ATA "RAID" controllers. Such RAID controllers are actually just IDE controllers with a BIOS that can create RAID volumes and write the configuration info to config blocks on the disks. The BIOS can do I/O to these volumes, and the OS must understand the config blocks and implement RAID in software in order to be able to use these volumes.
Only SPAN (simple concatenation) and RAID0 are supported at this time, and writing back config blocks is also not supported at this time. Currently, only the Promise configuration scheme is supported, although supporting the Highpoint scheme should not be too difficult.
In any case, this is sufficient to use the Promise RAID0 volume (thus preserving the win2k AS installation) on this new Intel server I have.
Thanks to Soren Schmidt for doing the work in FreeBSD; it made this task much easier. The config block parsing code is adapted from his work.
|
1.179 |
| 25-Jan-2003 |
thorpej | Add a couple more Promise ATA133 controllers.
|
1.178 |
| 24-Jan-2003 |
thorpej | * Enable Ultra133 on the NVIDIA nForce 2. * Make sure to test for PCI_VENDOR_AMD before testing for any AMD products.
|
1.177 |
| 24-Jan-2003 |
thorpej | Add support for the NVIDIA nForce ATA100 and nForce2 ATA133 IDE controllers, which are more-or-less compatible with the AMD controllers.
XXX Need to determine the correct timing value for the nForce2 XXX at Ultra133, so we cap it at Ultra100, for now.
|
1.176 |
| 26-Dec-2002 |
matt | Recognize Promise Serial ATA/150 TX2plus
|
1.175 |
| 20-Nov-2002 |
bouyer | For sis_setup_channel, acer_setup_channel, hpt_setup_channel, pdc202xx_setup_channel, pdc20268_setup_channel: Properly compute the address of the DMA control register for channel 1. I think the controllers ignore these bits, I suspect it's only there so that the BIOS can tell the OS is has configured DMA, but better be correct. Thanks to Alexander Yurchenko for pointing this out.
|
1.174 |
| 05-Oct-2002 |
kent | Add support for VIA VT8235
|
1.173 |
| 02-Oct-2002 |
thorpej | Add trailing ; to CFATTACH_DECL.
|
1.172 |
| 30-Sep-2002 |
thorpej | Use CFATTACH_DECL().
|
1.171 |
| 27-Sep-2002 |
thorpej | Declare all cfattach structures const.
|
1.170 |
| 27-Sep-2002 |
provos | remove trailing \n in panic(). approved perry.
|
1.169 |
| 15-Sep-2002 |
bouyer | Fix typo in comment. From Alexander Yurchenko <grange@rt.mipt.ru>
|
1.168 |
| 25-Aug-2002 |
bouyer | Support Ultra/133 on promise controllers that can do it.
|
1.167 |
| 25-Aug-2002 |
bouyer | Correct setup for Ultra133 capable VIA chipsets, From Matthias Drochner on current-users, with cross-check and some improvement from linux-2.4.19 and FreeBSD-current. Also don't set the APO_UDMA_CLK66 bit for Ultra/100 capable chipset, and support Ultra/133 for the VT8233A.
|
1.166 |
| 23-Aug-2002 |
bouyer | Add support for HPT372. From sdegler@kashmir.degler.net in kern/17908, with some improvement from me, and from FreeBSD.
|
1.165 |
| 23-Aug-2002 |
bouyer | Add support for Promise Ultra133TX2 and Ultra133TX2v2, from FreeBSD and stephen@degler.net in kern/17509.
|
1.164 |
| 10-Aug-2002 |
toshii | Use UDMA/100 on SiS745 chipset.
|
1.163 |
| 30-Jul-2002 |
bouyer | Add support for the 82801DB ICH4 IDE controller, from kern/17757 by Andreas Wrede <andreas@planix.com>
|
1.162 |
| 26-Jul-2002 |
wiz | Spell '[Rr]ight' correctly. From Jim Bernard.
|
1.161 |
| 26-Jul-2002 |
onoe | Add support of Silicon Image 0680 Ultra ATA/133 ATA Controller. It's ugly that all register values are written in numeric, but I can't find any definition of the registers to be written in literal.
|
1.160 |
| 22-Jul-2002 |
bouyer | Ops, this had already been commited by cjs. Still, call the controller ATA133, even though we use it at ATA100 for now ...
|
1.159 |
| 22-Jul-2002 |
bouyer | Add VIA VT8233A support (at Ultra/100 until someone can test 133 for me). From Ryo HAYASAKA, PR kern/17206.
|
1.158 |
| 10-Jun-2002 |
cjs | Recognise the VT8233A ATA100 controller and use Ultra-DMA mode 5 with it.
|
1.157 |
| 09-Jun-2002 |
taca | Add support for VIA Technologies's VT8231 IDE Controller to ATA/100.
|
1.156 |
| 08-Jun-2002 |
bouyer | Ops, use the proper setup_channel() function for promise adapters. Using pdc202xx_setup_channel() for PDC20268 and newer is wrong, and will cause trap trying to read from a non-existent register on some arches (e.g. macppc). pointed out by Makoto Fujiwara on port-macppc.
|
1.155 |
| 04-Jun-2002 |
fvdl | AMD 8111 DMA support.
|
1.154 |
| 01-Jun-2002 |
bouyer | Remove the "set south-bridge's enable bit" code. It doens't seems to make any difference for rev 0xc3 controllers, and hang on 0xc4 controllers. Fixes kern/16954
|
1.153 |
| 19-May-2002 |
bouyer | branches: 1.153.2; Add support for HPT374. Submited by Matthew Rezny in kern/16897, with minor adjustements by me.
|
1.152 |
| 24-Apr-2002 |
aymeric | branches: 1.152.2; OPTi changes: o keep WDC_CAPABILITY_DATA32 regardless of the version of the chip. o correct typo to disable DMA correctly
|
1.151 |
| 23-Apr-2002 |
bouyer | More copyright fixes, pointed out by Thomas. Thanks !
|
1.150 |
| 14-Apr-2002 |
bouyer | bus_space_unmap() ctl_baseioh instead of ctl_ioh for the native case. Pointed out by enami, and should fix kern/16307.
|
1.149 |
| 12-Apr-2002 |
mycroft | 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.
|
1.148 |
| 05-Apr-2002 |
thorpej | Reenable DMA on the Symphony/Winbond chips. The lossage I saw was due to a broken pmap_extract() on ARM.
|
1.147 |
| 04-Apr-2002 |
thorpej | Hm, Symphony/Winbond support doens't seem to work quite right yet; disable it for now.
|
1.146 |
| 03-Apr-2002 |
thorpej | Add bus master DMA support for the Symphony Labs 82C105 PCI IDE controller. This part is also found in the Winbond 83C553 Southbrige.
|
1.145 |
| 24-Mar-2002 |
bouyer | Add support for the AMD768. Tested by Murray Armfield <murray@river-styx.org>.
|
1.144 |
| 29-Jan-2002 |
bouyer | Support Ultra/100 on Intel 830M. From ks@ub.uni-mainz.de on -current-users.
|
1.143 |
| 28-Jan-2002 |
bouyer | 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.
|
1.142 |
| 14-Jan-2002 |
augustss | Add 82201CA to the chip table.
|
1.141 |
| 08-Jan-2002 |
bouyer | Fix typo in comment. Reported by Alexander Yurchenko in private mail.
|
1.140 |
| 18-Dec-2001 |
bouyer | Ops, a Ultra100>=TX2 is always in native mode !
|
1.139 |
| 18-Dec-2001 |
bouyer | 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 !
|
1.138 |
| 16-Dec-2001 |
bouyer | dd support for the Promise Ultra100TX2, Promise Ultra100TX2v2 and Ultra133 IDE controllers. In part from OpenBSD via ragge, in part from FreeBSD.
|
1.137 |
| 13-Dec-2001 |
bouyer | pdc202xx_setup_channel: remove a duplicate line.
|
1.136 |
| 21-Nov-2001 |
wiz | Explicitly write explicitly without a second e.
|
1.135 |
| 15-Nov-2001 |
bouyer | Support Ultra/100 on CMD 0649.
|
1.134 |
| 13-Nov-2001 |
lukem | add RCSID
|
1.133 |
| 26-Oct-2001 |
augustss | Add Via KT266 as an ATA100 controller.
|
1.132 |
| 21-Oct-2001 |
thorpej | branches: 1.132.2; Add a config flag (0x02) that can force DMA to be *disabled* on chipsets for which it would otherwise be enabled by default.
|
1.131 |
| 16-Oct-2001 |
tron | Add UDMA/100 support for SiS chipsets 645, 650 and 730.
|
1.130 |
| 14-Oct-2001 |
tron | Use UDMA/100 on SiS 735 chipset.
|
1.129 |
| 24-Sep-2001 |
bouyer | Ali M5229 IDE controllers: tweak the rigth 0x79 register (the one from the pci/isa bridge, not the one from the IDE controller).
|
1.128 |
| 23-Aug-2001 |
tsutsui | branches: 1.128.2; Check 80 pins cable in acard_setup_channel() for Acard ATP860.
|
1.127 |
| 03-Aug-2001 |
tsutsui | Fix some typos in newer ALi M5229 support. Approved by bouyer.
|
1.126 |
| 01-Aug-2001 |
tsutsui | Remove unused pciide_print() declaration. From OpenBSD.
|
1.125 |
| 28-Jul-2001 |
tsutsui | 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...
|
1.124 |
| 26-Jul-2001 |
bouyer | 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.
|
1.123 |
| 23-Jul-2001 |
bouyer | 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.
|
1.122 |
| 19-Jul-2001 |
thorpej | Use BUS_DMA_READ and BUS_DMA_WRITE in some obvious places.
|
1.121 |
| 04-Jul-2001 |
bouyer | branches: 1.121.2; 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.
|
1.120 |
| 13-Jun-2001 |
scw | Workaround for buggy OPTi pciide chipset revisions, as reported in PR/11644.
|
1.119 |
| 08-Jun-2001 |
simonb | 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.
|
1.118 |
| 30-May-2001 |
bouyer | Uninitialised variable (from Krister Walfridsson): in acard_chip_map() drop compatchan and use the real channel number instead.
|
1.117 |
| 14-May-2001 |
matt | Add latent vendor entries for ServerWorks and Winbond IDE controllers. No code to use them as yet.
|
1.116 |
| 06-May-2001 |
fvdl | Add amd766 support. Rename some variables to 7x6 now that it supports both 756 and 766.
|
1.115 |
| 06-May-2001 |
fvdl | Add missing break statement.
|
1.114 |
| 04-May-2001 |
bouyer | Now that we can do it, print "HPT366" or "HPT370" depending on PCI revision.
|
1.113 |
| 04-May-2001 |
bouyer | 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)
|
1.112 |
| 21-Apr-2001 |
tsutsui | 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.
|
1.111 |
| 21-Apr-2001 |
tsutsui | space -> tab
|
1.110 |
| 20-Mar-2001 |
bouyer | 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.
|
1.109 |
| 20-Mar-2001 |
bouyer | Add BUS_DMA_STREAMING for the data bus_dmamap_load().
|
1.108 |
| 12-Mar-2001 |
bouyer | 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.
|
1.107 |
| 18-Feb-2001 |
bouyer | branches: 1.107.2; ALi controller: can only do UltraDMA for revs >= 0x20. From OpenBSD.
|
1.106 |
| 18-Feb-2001 |
bouyer | Add support for INTEL 82801BAM IDE controller, from OpenBSD.
|
1.105 |
| 12-Jan-2001 |
bouyer | 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.
|
1.104 |
| 05-Jan-2001 |
bouyer | 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.
|
1.103 |
| 05-Jan-2001 |
bouyer | Ops, make it compile again.
|
1.102 |
| 05-Jan-2001 |
bouyer | Add support for Ultra/100 on intel ICH2; from Tomokazu HARADA in kern/11747.
|
1.101 |
| 05-Jan-2001 |
bouyer | 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.
|
1.100 |
| 29-Dec-2000 |
tsutsui | s/AP0_UDMA_MASK/APO_UDMA_MASK/
|
1.99 |
| 28-Dec-2000 |
sommerfeld | 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
|
1.98 |
| 21-Dec-2000 |
mycroft | 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.
|
1.97 |
| 17-Dec-2000 |
pk | Cast a `bus_addr_t' argument to `u_long' for `%lx' format (XXX..)
|
1.96 |
| 04-Dec-2000 |
fvdl | Avoid format warnings.
|
1.95 |
| 30-Nov-2000 |
thorpej | 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.
|
1.94 |
| 26-Nov-2000 |
christos | 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.
|
1.93 |
| 19-Nov-2000 |
bouyer | Add support for Intel ICH2
|
1.92 |
| 14-Nov-2000 |
thorpej | NBPG -> PAGE_SIZE
|
1.91 |
| 08-Nov-2000 |
matt | Make the test for dmareg >= 0x10000 quirked on IDE_16BIT_IOSPACE
|
1.90 |
| 08-Nov-2000 |
wrstuden | 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).
|
1.89 |
| 05-Nov-2000 |
matt | 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).
|
1.88 |
| 04-Oct-2000 |
bouyer | only VT82C586A rev >= 6 supports Ultra-DMA. From OpenBSD.
|
1.87 |
| 21-Aug-2000 |
enami | Recognize Promise ATA-100 controller as PDC-20262 instead of 20246.
|
1.86 |
| 21-Aug-2000 |
enami | Match the Promise ATA-100 controller found on the mother board MS-6321 (MSI 694D Pro). Reported in PR#10756 by Kazuki Sakamoto.
|
1.85 |
| 09-Aug-2000 |
drochner | recognize the i440MX mobile chipset's IDE interface
|
1.84 |
| 02-Aug-2000 |
bouyer | 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
|
1.83 |
| 02-Aug-2000 |
bouyer | 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.
|
1.82 |
| 01-Aug-2000 |
bouyer | 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.
|
1.81 |
| 27-Jul-2000 |
bouyer | HPT370: clear disable interrupt bit; make it works in Ultra/66 mode.
|
1.80 |
| 20-Jul-2000 |
bouyer | Make it compile when PCIIDE_AMD756_ENABLEDMA is defined. From kern/10555 by MURATA Shuuichirou.
|
1.79 |
| 07-Jul-2000 |
bouyer | Use the CMD PCI0648/9 IRQ ACK code for the 0646 too, makes the 0646 works in native mode.
|
1.78 |
| 06-Jul-2000 |
bouyer | 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.
|
1.77 |
| 05-Jul-2000 |
bouyer | Back out previous, it has to be done in a different way.
|
1.76 |
| 05-Jul-2000 |
bouyer | 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.
|
1.75 |
| 05-Jul-2000 |
bouyer | 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).
|
1.74 |
| 04-Jul-2000 |
enami | 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
|
1.73 |
| 28-Jun-2000 |
mrg | remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
|
1.72 |
| 27-Jun-2000 |
tron | Add special IRQ handler for CMD PCI0648 and PCI0649 taken from the experimental version of Manuel Bouyer's driver.
|
1.71 |
| 26-Jun-2000 |
mrg | 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.
|
1.70 |
| 26-Jun-2000 |
bouyer | Add support for the CMD PCI0648 and PCI0649 IDE controllers. Thanks to Matthias Scheler for testing.
|
1.69 |
| 26-Jun-2000 |
bouyer | Correct 80 pin handling for promise Ultra/66: when the bit is set we *don't* have a Ultra/66 cable.
|
1.68 |
| 12-Jun-2000 |
bouyer | branches: 1.68.2; Shorter description for the HPT366
|
1.67 |
| 12-Jun-2000 |
bouyer | - add a pciide_irqack() callback, which clears the IDE DMA status bit once the IRQ has been cleared on the drive. - use pa->pa_class instead of re-reading PCI_CLASS_REG when possible - Add support for Highpoint HPT366 and HPT370 (370 untested), based on patches from Roger Brooks <R.S.Brooks@liverpool.ac.uk> posted on current-users Mach, 15. Given how Highpoint docs have been wrong for the 366, the 370 is likely to not work. Thanks to Chris Cappuccio <chris@dqc.org> for sending me the Highpoint docs, and to Total Archive (http://www.totalarchive.com/) for sending me hardware.
|
1.66 |
| 07-Jun-2000 |
scw | The OPTi controller supports a 32-bit dataport after all. Also detect when the chip is sitting on a 25MHz PCIbus and set the timing registers accordingly.
|
1.65 |
| 07-Jun-2000 |
thorpej | Add missing break;
|
1.64 |
| 06-Jun-2000 |
thorpej | Improve the Cypress name a little.
|
1.63 |
| 06-Jun-2000 |
thorpej | In pciide_mapreg_dma(), check to see what type the BAR is before mapping the registers, as suggested by a comment in that function.
|
1.62 |
| 06-Jun-2000 |
soren | Shorten names of VIA controllers to fit in 80 columns with versions.
|
1.61 |
| 06-Jun-2000 |
thorpej | Actually program the DMA mode of the drives into the Cypress controller. Fixes a long-standing problem where IDE DMA wasn't working on the AlphaPC 164SX.
|
1.60 |
| 04-Jun-2000 |
gmcgarry | pciiide -> pciide
|
1.59 |
| 27-May-2000 |
scw | Add support for the OPTi 82c621 PCIIDE controller and its derivatives. I only have a Compaq laptop on which to test this, so reports of success/failure in other systems would be welcomed.
|
1.58 |
| 15-May-2000 |
bouyer | branches: 1.58.2; Sync my copyrigth notice.
|
1.57 |
| 12-May-2000 |
thorpej | Print the revision info from the PCI configuration header. From Dave Sainty, kern/10025.
|
1.56 |
| 01-Apr-2000 |
bouyer | - DMA code cleanup: pciide_dma_finish() doesn't stop/unload the current DMA op if an IRQ was not detected, unless the force flag was given. Use this to detect if the IRQ was for us (closer to shared IRQ for controllers which don't have their own IRQ handler in pciide.c) and to poll for DMA xfer. Also makes the timeout recovery code simpler. - ATAPI cleanup: don't call controller-specific functions from atapiconf.c (wdc_*), so that it's possible to attach an atapibus to something else than a wdc/pciide (Hi Lennart :). Overload struct scsi_adapter with struct atapi_adapter, defined as struct scsi_adapter + atapi-specific callbacks. scsipi_link still points to an scsi_adapter, atapi code casts it to atapi_adapter if needed. Move atapi_softc to atapiconf.h so that it can be used by the underlying controller code (e.g. atapi_wdc.c). Add an atapi-specific callback *atapi_probedev(), which probe a drive in a controller-specific way, allocate the sc_link and fills in the ataparams if needed. It then calls atapi_probedev() (from atapiconf.c) to do the generic initialisations and attach the device. - While I'm there merge and centralise the state definitions in atavar.h. It should now be possible to use a common ata/atapi routine to set the drive's modes (will do later).
|
1.55 |
| 10-Mar-2000 |
bouyer | Don't reset cp->hw_ok ro 0 when cp isn't initialised in cy693_chip_map() (used only in failure case). Pointed out by Wolfgang Solfrank. While I'm here correct indentation.
|
1.54 |
| 09-Mar-2000 |
soren | Move PCIIDE_CHANNEL_NAME macro to pciidereg.h.
|
1.53 |
| 06-Mar-2000 |
bouyer | Add support for the AMD 756 DMA/UDMA IDE controller, provided in PR kern/9536 by Dave Sainty.
|
1.52 |
| 18-Jan-2000 |
bouyer | Clean up revision stuff for the sis. Suggested by Chris Cappuccio.
|
1.51 |
| 16-Jan-2000 |
bouyer | From chris@openbsd.org: "Don't enable UDMA modes for revisions of SiS 5513 < 0xd0 The only revisions I know which don't actually support UDMA are 0x09 and below.. But the only revision I know which does support UDMA is 0xd0 (and presumably above that)"
|
1.50 |
| 26-Dec-1999 |
soren | Lower-case Bus-Master for consistency.
|
1.49 |
| 12-Dec-1999 |
thorpej | Use htole32() and le32toh().
|
1.48 |
| 28-Nov-1999 |
bouyer | Improve Ultra/66 support now that I've got some docs from Promise.
|
1.47 |
| 13-Nov-1999 |
soren | Export softc.
|
1.46 |
| 03-Nov-1999 |
mycroft | Fix silly error that caused the secondary channel to be ignored if the primary channel was disabled.
|
1.45 |
| 25-Oct-1999 |
bouyer | Add a missing '\n' in the cmd0640 attach printfs.
|
1.44 |
| 02-Sep-1999 |
ross | branches: 1.44.2; 1.44.4; 1.44.6; Make it compile.
|
1.43 |
| 01-Sep-1999 |
bouyer | Don't try to unmap unmapped space in case of failure in pciide_mapregs_compat(). From OpenBSD.
|
1.42 |
| 30-Aug-1999 |
bouyer | Add support for Intel 810 chipset (ICH/ICH0). While I'm there merge back piix_channel_map into piix_chip_map.
|
1.41 |
| 29-Aug-1999 |
bouyer | Add support for the Promise Ultra/33 and /66 pci IDE controller. In addition to chip-dependant code this required the following changes: - Instead of attaching the device in a generic way with some chip-dependant routines, use a chip-dependant attach routine with some common code factored out. The code is marginally bigger, but this allows the CMD64x flag hack to go away. - For chips that report per-channel 'irq triggered', test this before calling wdcintr() for the native-pci irq case (compat intr can't be shared), as wdcintr() has no good way to know if a irq was for it or not, and ends up with irq loss. XXX for chips that don't have this feature irq sharing will not work properly ! - add my copyrigth notice (could have been done some time ago I think :)
There are still some issues to be solved with the Promise controller and ATAPI devices. Many thanks to Paul Newhouse for shipping me 2 Ultra/33 boards for doing this work.
|
1.40 |
| 12-Jul-1999 |
bouyer | Fix typo in a printf, from Soren S. Jorvan.
|
1.39 |
| 08-Jun-1999 |
mrg | fix a few KNF nits ..
|
1.38 |
| 27-May-1999 |
bouyer | For the PIIX, make sure the PIO_mode and DMA_mode get reset to the values used by the controller for all drives.
|
1.37 |
| 05-May-1999 |
bouyer | Fix the way we compute the mode to use: for multiword DMA, the used mode was 2 less than the one we could really use, so for multiword DMA mode 0 or 1, the driver tried to use DMA mode 255 or 254 (0 - 2 with a u_int8_t).
|
1.36 |
| 03-May-1999 |
ross | Protect WDCDEBUG from multiple definitions.
|
1.35 |
| 28-Apr-1999 |
thorpej | Make PCI IDE DMA work on big-endian systems.
|
1.34 |
| 06-Apr-1999 |
bouyer | Kill an extra 'pciide0: ' in a printf
|
1.33 |
| 22-Feb-1999 |
bouyer | branches: 1.33.2; In cy693_setup_channel(), setup timings for IOR too (they were left to 0, which is a way too higth timing for some devices). Thanks to Ken Wellsch for trying the multiple debug kernels until the problem was located.
|
1.32 |
| 16-Feb-1999 |
bouyer | Correctly compute PIO/DMA mode for sis and acer chips when the drive support a DMA mode with higther capabilities than PIO mode.
|
1.31 |
| 02-Feb-1999 |
bouyer | channel_map is called before setup_chip, so whe need to enable the channel status bits in acer_channel_map().
|
1.30 |
| 02-Feb-1999 |
bouyer | Support for Acerlab M5229 IDE controller. Thanks to Thilo Manske for testing the code, and to Takahiro Kambe who run several tests and finally found the bug by himself :)
|
1.29 |
| 16-Dec-1998 |
bouyer | Defer mapping of pci interrupt to pciide_mapregs_native(). This way, the native interrupt shouldn't be mapped if a channel is in native mode, but disabled.
|
1.28 |
| 16-Dec-1998 |
bouyer | Rearange the modes setup to allow these to be dyanmically changed. Fill in the new "set_mode" callback.
|
1.27 |
| 03-Dec-1998 |
bouyer | Rename pio_mode, etc ... to PIO_cap, etc ... for consistency with the ata_drive_datas struct. Suggested by Soren S. Jorvan.
|
1.26 |
| 03-Dec-1998 |
bouyer | Now that vtophy() is no longuer used, re-enable WDCDEBUG, with wdcdebug_pciide_mask = 0 (so that one can easily patch this variable and give me more informations :)
|
1.25 |
| 03-Dec-1998 |
bouyer | add a udma_mode field to wdc_softc, and use it the same way dma_mode is used (higthest ultra-dma mode supported). There may be a higther ultra-dma mode defined ...
|
1.24 |
| 03-Dec-1998 |
bouyer | Use correct register when disabling the second channel.
|
1.23 |
| 03-Dec-1998 |
bouyer | Restore changes from revision 1.17: "If a channel has no drives, do *not* unmap its I/O regions. It's not really safe to use them for anything else, and in legacy mode it will just cause us to probe the channel again as an ISA device."
|
1.22 |
| 03-Dec-1998 |
bouyer | Correct a few bogons in the SiS chip initialisation.
|
1.21 |
| 03-Dec-1998 |
bouyer | Ouh ! Correct the 8-bit PCI registers reading/writing functions: need to multiply the register offset by 8.
|
1.20 |
| 02-Dec-1998 |
bouyer | - change drive_flags from u_int8_t to u_int16_t - keep the modes supported by the drive in struct ata_drive_datas (will be later used for downgrading the DMA/PIO mode on error) - use config flags to force/disable PIO/DMA/UDMA modes - For the CMD PCI0643/6 setup DMA mode to DMA Read multiple.
|
1.19 |
| 24-Nov-1998 |
drochner | a small optimization for the compat interrupt handling, possible after channel_softc is within pciide_channel
|
1.18 |
| 21-Nov-1998 |
drochner | some restructuring, more or less to get support for weird IDE controllers, eg the Cypress ISA bridge: -put channel mapping into the chip specific part, unify with channel_probe() into channel_map() -use pointer to channel data as function call argument wherever possible instead of the channel number -allow the "compat" channel number to differ from the per-controller channel number - for mapping and interrupt functions -add support for SiS5598 and Cypress 82C693 chips Mostly done by Manuel, I only contributed to the first 2 items.
|
1.17 |
| 17-Nov-1998 |
mycroft | If a channel has no drives, do *not* unmap its I/O regions. It's not really safe to use them for anything else, and in legacy mode it will just cause us to probe the channel again as an ISA device.
|
1.16 |
| 12-Nov-1998 |
bouyer | Force PCI_COMMAND_MASTER_ENABLE if DMA has been setup properly. The BIOS is supposed to do it but who knows ...
|
1.15 |
| 11-Nov-1998 |
bouyer | - clearify the boot messages (features supported vs features used). Thanks to Havard Eidnes for his complains about this :) - fix some typo in comments - hoppefully better detection of drives reporting bogus PIO modes.
|
1.14 |
| 09-Nov-1998 |
bouyer | Support for the CMD PCI064{3,6}. Tested on a 0646 with a "wd0: PIO mode 4, DMA mode 2, UDMA mode 2" device.
|
1.13 |
| 22-Oct-1998 |
bouyer | Add config flags for pciide: 0x001 forces the use of DMA when the driver don't know how to set the controller's modes.
|
1.12 |
| 20-Oct-1998 |
bouyer | Fix for Apollo DMA mode (not UDMA): DMA mode = PIO mode - 2, not PIO mode + 2 !
|
1.11 |
| 19-Oct-1998 |
bouyer | Add support for the second flavour of the VIA IDE chip (which has UDMA). Don't claim DMA support if we don't have explicit support for this chip. They're to may way to loose when trying to use DMA without configuring the controller and disks.
|
1.10 |
| 13-Oct-1998 |
bouyer | pciide.c: don't define WDCDEBUG, so it compiles on alpha. Correct a bogon in the printing of DMA mode (piix3/4 only) others: set the debug_mask to 0, so that debug messages are turned off by default but can be easily turned on. Reset drive_flags to 0 for unconfigured devices, so that they are ignored later. For configured devices, reset state to 0 after probe/attach.
|
1.9 |
| 12-Oct-1998 |
bouyer | Merge bouyer-ide
|
1.8 |
| 14-Aug-1998 |
drochner | 2 changes to pciide_probe_wdc() (used in compatibility mode to check if i drive is responding): -if the reset succeeds, check some registers to make sure there is really a drive (and not a chipset which echoes back the last written value) -explicitely select the master before trying to read the master's status
|
1.7 |
| 08-Jun-1998 |
thorpej | Nuke __BROKEN_INDIRECT_CONFIG.
|
1.6 |
| 12-Mar-1998 |
cgd | branches: 1.6.2; when considering attaching compatibility-mode channels, try a quick reset and see if anything responds. if nothing (that's attributable to the PCI IDE controller) responds, then that channel either has no devices on it or has been disabled (via a non-standard mechanism) by the BIOS. If nothing responds, don't map the compat.-mode interrupt or attach the wdc to that channel, because the BIOS is likely to assign that IRQ to a different PCI device. If that happens, the kernel will panic because that device will try to map the IRQ level-triggered, but the compat interrupt will have been mapped edge-triggered. (One possible way around this is to map the compat interrupt edge-triggered, but it's not clear reading the spec that this is correct or desirable.)
|
1.5 |
| 06-Mar-1998 |
cgd | reorganize mapping/attachment of wdc channels so that it'll be easier to insert a check to see whether a channel appears to be enabled. Shouldn't be necessary, according to the spec, but some PC chipsets allow individual compatibility channels to be disabled. "I hate PCs."
|
1.4 |
| 06-Mar-1998 |
cgd | despite the spec, some people map the bus master IDE registers into memory space. Note that in a comment, but don't try to fix it (for now).
|
1.3 |
| 04-Mar-1998 |
cgd | clean up a printf
|
1.2 |
| 04-Mar-1998 |
cgd | slight cleanup (consistency, make a few comments better). add support for recognizing bus-master DMA interface and mapping the regs (but still no support for DMA).
|
1.1 |
| 04-Mar-1998 |
cgd | PCI IDE glue. Right now, just glues 'wdc's to PCI IDE controller channels. Eventually should do things like support PCI IDE DMA (it _DOES NOT_ do that now).
|
1.6.2.17 |
| 05-Oct-1998 |
bouyer | Rename WDC_CAPABILITY_PIO to WDC_CAPABILITY_MODE, as it's used to tell wether the controller's driver can tell which timing mode it uses. Check this before setting DMA modes too. This allow the generic DMA code to work again.
|
1.6.2.16 |
| 04-Oct-1998 |
bouyer | atavar.h: drv_softc is a struct device * instead of void*, as it's mostly used for dv_xname wd.c: convert for drv_softc type change, printf cleanup wdc.c: always call ata_get_params() (params was used initialised with non-32bit controllers, leaving to bogus PIO/DMA mode report). Cleaup of the PIO/DMA mode message. pciide_piix_reg.h: Fix definition of PIIX_IDETIM_CLEAR (unused before) pciide.c: add a method do disable a channel on know device. If a channel doesn't have any drive, we disable it and free its resources if disable was successfull. This should help with laptops where the second channel of the PIIX4 is unused but not disabled by BIOS. On such laptops, irq15 can be used for PCMCIA but it was claimed by pciide. Misc printf cleanup. wdc_isa.c: printf cleanup.
|
1.6.2.15 |
| 02-Oct-1998 |
bouyer | Cleanup a few error message, remove some dead code. Re-add a reset at end of attach, unless we have WDC_NO_EXTRA_RESETS. Add support for data32iot/data32ioh from -current: each controller pass WDC_CAPABILITY_DATA32 if they can do 32bit, and WDC_CAPABILITY_DATA16 if they can do 16bit. For controller that support both, the usual autodetect mechanism is still used.
|
1.6.2.14 |
| 20-Sep-1998 |
bouyer | - always call config_found() from wdcattach(), instead of printing our own the "not configured" message ourselve. When no atapibus is configured, use a fake ata_atapi_attach, else call wdc_atapibus_attach(). This way we don't have to include the whole atapi support in an ata-only config. - the dma_* function pointers take a 'int flags' as last argument, instead of an 'int read'. The 2 valid flags are: WDC_DMA_READ (to select read/write) and WDC_DMA_POLL, to signal interrupt-less mode (for core dumps). - Reworked wdcprobe() so look more like the old one. A status of 0xff is interpreted as "no drive" (freebsd does this); this this speed up the probe for non-IDE machines (a reset timeout has been bumped to 31s, to match the specs). The probe set ups the drive flags to either ATA or ATAPI (depend on register signature) or OLD (if register signature don't match, but a working drive appears to be there). Later the ATA code will look at the OLD flag to decide wether there is no drive, or an old (ST506) one if WDC_IDENTIFY fails. - For known PCI chips, don't use the wdcprobe() heuristic to find wether a channel is enabled/disabled; use the chip's specific registers for this. - Clear the command queue when we have a polled command. This allows dumps to work even if a command was being handled by the controller at panic time. - Increase the number of available DMA segments by one, as user requests may not be aligned on a page boundary.
|
1.6.2.13 |
| 21-Aug-1998 |
bouyer | Sync with -current
|
1.6.2.12 |
| 13-Aug-1998 |
bouyer | - sync with -current - full support of CMD PCI0640 chips. This needs a special probe routine, as this chip doesn't honnor the "PCI_COMMAND_IO_ENABLE" bit. sigh. - do not map the native pci interrupts if we don't have a native channel. some chips (e.g. PCI0640) have a valid interrupt value which gets established, which may prevent the compat channel or some other ISA device from working properly later. - b* -> mem*
|
1.6.2.11 |
| 25-Jun-1998 |
bouyer | Add support for VIA's apollo VP chipset.
|
1.6.2.10 |
| 17-Jun-1998 |
bouyer | in piix3_4_setup(), drvp is not a pointer to an array, but a pointer to the rigth element of the array. This was breaking more-or-less badly on configs with a slave drive on a channel.
|
1.6.2.9 |
| 13-Jun-1998 |
bouyer | Coorect a comment.
|
1.6.2.8 |
| 12-Jun-1998 |
bouyer | Correct a bug where the PIO mode would not be set up for the controller, if UDMA mode is used. Ultra-DMA/33 works !
|
1.6.2.7 |
| 11-Jun-1998 |
bouyer | pciide: when setting up DMA mode, also enable fast timings for PIO modes if possible. For ATAPI devices, commands are always send via PIO. atapi: matain a drive state (like wd drives) and use it to set up the timings if needed.
|
1.6.2.6 |
| 10-Jun-1998 |
bouyer | - Fix timing settings for DMA: the controller was always set up to use DMA mode 0 (compatible). - The 2 Ultra-dma registers are in fact one 32-bit register. Change the macros and setup in a way it may now work (but still untested, thus not enabled by default). - For DMA mode 1, use a more efficient timing than the one suggested by intel. Some work is still needed here to get ATAPI DMA working (should be done soon).
|
1.6.2.5 |
| 09-Jun-1998 |
bouyer | - sync with trunck - for the piix, don't set timings for nonexistent drives.
|
1.6.2.4 |
| 06-Jun-1998 |
bouyer | Renamed pciide_pIIx_reg.h to pciide_piix_reg.h via repository copy, as suggested by Soren S. Jorvan.
|
1.6.2.3 |
| 05-Jun-1998 |
bouyer | Disable Ultra DMA for now, as it does not work.
|
1.6.2.2 |
| 05-Jun-1998 |
bouyer | A few bux fixes (untested): - If the PIO mode of the controller is unknown, put the drive in the hightest mode it supports. A drive in a faster mode than the controller should work. - Create DMA maps even for unknown controllers in pciide.
|
1.6.2.1 |
| 04-Jun-1998 |
bouyer | Commit changes to the IDE system in a branch. This allows a better separation between higth-level and low-level (i.e. registers read/write) and generalize the queue for all commands. This also add supports for IDE DMA.
|
1.33.2.11 |
| 14-Aug-2000 |
he | Pull up revision 1.84 (via patch, requested by bouyer): Change PCIIDE_CMD0646U_UDMA to PCIIDE_CMD0646U_ENABLEUDMA for consistency with PCIIDE_AMD756_ENABLEDMA.
|
1.33.2.10 |
| 14-Aug-2000 |
he | Pull up revisions 1.82-1.83 (requested by bouyer): Add UltraDMA support for the CMD PCI0646U and PCI0646U2 controllers; normally disabled on PCI0646U due to a chip bug, but can be enabled with a kernel option.
|
1.33.2.9 |
| 27-Jul-2000 |
he | Pull up revision 1.81 (requested by bouyer): Clear the interrupt disable bit of the HPT370, and document HPT370 support.
|
1.33.2.8 |
| 27-Jul-2000 |
he | Pull up revision 1.80 (requested by bouyer): Make pciide compile with ``options PCIIDE_AMD756_ENABLEDMA.'' Fixes PR#10555.
|
1.33.2.7 |
| 23-Jul-2000 |
he | Pull up revision 1.79 (requested by bouyer): Handle CMD PCI0646 interrupts as for the PCI0648; makes the PCI0646 work in native mode with shared interrupts.
|
1.33.2.6 |
| 23-Jul-2000 |
he | Pull up revision 1.74 (requested by bouyer): Add support for the Promise Ultra/100 PCI IDE controller (in Ultra/66 mode only).
|
1.33.2.5 |
| 07-Jul-2000 |
he | Apply patch (requested by bouyer): Add support for the following PCIIDE controllers: o AMD 756 o CMD PCI0648 and PCI0649 o Hightpoint HPT366 o OPTi 82c621 (and a few of its derivatives) o Promise Ultra/33 and Ultra/66 o Intel 82801 (ICH/ICH0) Also fix PR#10437 (detect more ATAPI devices).
|
1.33.2.4 |
| 24-Jun-1999 |
perry | pullup 1.37->1.38 (bouyer)
|
1.33.2.3 |
| 05-May-1999 |
perry | branches: 1.33.2.3.2; 1.33.2.3.4; pullup 1.36->1.37 (bouyer)
|
1.33.2.2 |
| 28-Apr-1999 |
perry | sync to 1.35 (thorpej): fixes PCIIDE DMA on big-endian systems
|
1.33.2.1 |
| 06-Apr-1999 |
bouyer | Kill an extra 'pciide0:' in a printf.
|
1.33.2.3.4.1 |
| 30-Nov-1999 |
itojun | bring in latest KAME (as of 19991130, KAME/NetBSD141) into kame branch just for reference purposes. This commit includes 1.4 -> 1.4.1 sync for kame branch.
The branch does not compile at all (due to the lack of ALTQ and some other source code). Please do not try to modify the branch, this is just for referenre purposes.
synchronization to latest KAME will take place on HEAD branch soon.
|
1.33.2.3.2.2 |
| 02-Aug-1999 |
thorpej | Update from trunk.
|
1.33.2.3.2.1 |
| 21-Jun-1999 |
thorpej | Sync w/ -current.
|
1.44.6.1 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
1.44.4.1 |
| 15-Nov-1999 |
fvdl | Sync with -current
|
1.44.2.9 |
| 23-Apr-2001 |
bouyer | Sync with HEAD.
|
1.44.2.8 |
| 27-Mar-2001 |
bouyer | Sync with HEAD.
|
1.44.2.7 |
| 12-Mar-2001 |
bouyer | Sync with HEAD.
|
1.44.2.6 |
| 18-Jan-2001 |
bouyer | Sync with head (for UBC+NFS fixes, mostly).
|
1.44.2.5 |
| 15-Jan-2001 |
bouyer | req_sense_length is dead.
|
1.44.2.4 |
| 05-Jan-2001 |
bouyer | Sync with HEAD
|
1.44.2.3 |
| 08-Dec-2000 |
bouyer | Sync with HEAD.
|
1.44.2.2 |
| 22-Nov-2000 |
bouyer | Sync with HEAD.
|
1.44.2.1 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago A i386 GENERIC kernel compiles without the siop, ahc and bha drivers (will be updated later). i386 IDE/ATAPI and ncr work, as well as sparc/esp_sbus. alpha should work as well (untested yet). siop, ahc and bha will be updated once I've updated the branch to current -current, as well as machine-dependant code.
|
1.58.2.1 |
| 22-Jun-2000 |
minoura | Sync w/ netbsd-1-5-base.
|
1.68.2.33 |
| 22-Apr-2002 |
he | Pull up revision 1.150 (requested by bouyer): Fix use of bus_space_unmap() for the native case. Fixes PR#16307.
|
1.68.2.32 |
| 25-Mar-2002 |
he | Pull up revision 1.145 (requested by bouyer): Add support for the pciide part of the AMD-768 chipset.
|
1.68.2.31 |
| 09-Feb-2002 |
he | Pull up revision 1.143 (requested by bouyer): In hpt_pci_intr(), accept interrupt only once IDEDMA_CTL_ACT is turned off. Fixes DMA errors, lost interrupts, and other nasty errors with some HPT730s in native mode.
|
1.68.2.30 |
| 06-Feb-2002 |
he | Pull up revisions 1.112,1.118,1.125,1.128 (via patch, requested by tsutsui): Add support for Acard ATP-850/860 pciide controllers.
|
1.68.2.29 |
| 05-Jan-2002 |
he | Pull up revision 1.135 (requested by bouyer): Support Ultra-DMA 100 on the CMD 0649.
|
1.68.2.28 |
| 13-Nov-2001 |
he | Pull up revision 1.123 (requested by bouyer): Support HPT-370A controllers. Fixes PR#13540.
|
1.68.2.27 |
| 13-Nov-2001 |
he | Pull up revision 1.121 (requested by bouyer): Disable UDMA only for SiS controllers which are really buggy, not all the ones with revision 0xd0.
|
1.68.2.26 |
| 29-Jul-2001 |
he | Pull up revision 1.120 (requested by scw): Workaround for buggy OPTi pciide chipset revisions, as reported in PR#11644.
|
1.68.2.25 |
| 02-Jul-2001 |
jhawk | Pull up revision 1.94 (requested by bouyer): 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.
|
1.68.2.24 |
| 15-May-2001 |
he | Pull up revisions 1.113-1.116 (via patch, requested by bouyer): Add support for newer VIA pciide controllers. Add support for the AMD 766 pciide controller. Properly distinguish between HPT366 and HPT370 controllers.
|
1.68.2.23 |
| 24-Apr-2001 |
he | Pull up revision 1.110 (requested by bouyer): Revert setting of PDC2xx_SCR for Promise Ultra/100, it seems to break with some adapters.
|
1.68.2.22 |
| 13-Mar-2001 |
he | Pull up revision 1.108 (requested by bouyer): Support Ultra/100 speed on Promise Ultra/100, and fix ``bogus intr'' messages generated under some conditions.
|
1.68.2.21 |
| 26-Feb-2001 |
he | Pull up revision 1.107 (requested by bouyer): Disable Ultra-DMA on Ali controllers which don't support it.
|
1.68.2.20 |
| 26-Feb-2001 |
he | Pull up revision 1.106 (requested by bouyer): Add support for the Intel 82801BAM IDE controller.
|
1.68.2.19 |
| 04-Feb-2001 |
he | Pull up revision 1.105 (requested by bouyer): Fix bug which affects pciide controllers in native mode. Main effect was a non-functionnal IDE controller on some sparc64 and macppc when booted from IDE disk.
|
1.68.2.18 |
| 04-Feb-2001 |
he | Pull up revisions 1.102-1.103 (requested by bouyer): Add support for Ultra/100 on Intel ICH2.
|
1.68.2.17 |
| 04-Feb-2001 |
he | Pull up revision 1.104 (requested by bouyer): Run at Ultra/66 on VIA controllers that can do it.
|
1.68.2.16 |
| 04-Feb-2001 |
he | Pull up revision 1.101 (requested by bouyer): Add support for Ultra/100 on the HPT370 controller.
|
1.68.2.15 |
| 15-Dec-2000 |
he | Pull up revision 1.93 (requested by bouyer): Add support for Intel ICH2 IDE controller.
|
1.68.2.14 |
| 04-Oct-2000 |
bouyer | Pull up 1.87->1.88, approved by thorpej: only VT82C586A rev >= 6 supports Ultra-DMA. From OpenBSD.
|
1.68.2.13 |
| 22-Aug-2000 |
enami | Pullup rev. 1.87 (approved by jhawk): Recognize Promise ATA-100 controller as PDC-20262 instead of 20246.
|
1.68.2.12 |
| 22-Aug-2000 |
enami | Pullup rev. 1.86 (approved by jhawk and thorpej): Match the Promise ATA-100 controller found on the mother board MS-6321 (MSI 694D Pro). Reported in PR#10756 by Kazuki Sakamoto.
|
1.68.2.11 |
| 03-Aug-2000 |
bouyer | Pull up (approved by thorpej): sys/dev/pci/pciide.c 1.82 -> 1.84 sys/dev/pci/pciide_cmd_reg.h 1.8 -> 1.9 sys/dev/pci/files.pci 1.100 -> 1.101 share/man/man4/pciide.4 1.23 -> 1.24
Add support for the CMD PCI646U. Linux claims that this driver is brocken with UDMA, so enable Ultra-DMA only if "options PCIIDE_CMD0646U_ENABLEUDMA" is set. defopt PCIIDE_CMD0646U_ENABLEUDMA, PCIIDE_AMD756_ENABLEDMA, PCIIDE_CMD064x_DISABLE Fix a typo pointed out by John Hawkinson Update documentation.
|
1.68.2.10 |
| 02-Aug-2000 |
bouyer | Pull up (approved by thorpej): pciide_cmd_reg.h 1.7 -> 1.8 pciide.c 1.81 -> 1.82 Add supports for the PCI0646U2, Ultra/33 version of the PCI0646.
|
1.68.2.9 |
| 27-Jul-2000 |
bouyer | Pull up (approved by thorpej): sys/dev/pci/pciide.c 1.80 -> 1.81 sys/dev/pci/pciide_hpt_reg.h 1.1 -> 1.2 distrib/notes/i386/hardware 1.74 -> 1.75 share/man/man4/pciide.4 1.22 -> 1.23 Make sure the HPT370's interrupts disable bit is cleared. Now that HPT370 supports works, document it.
|
1.68.2.8 |
| 20-Jul-2000 |
bouyer | Pull up 1.80 (approved by thorpej): Make is compile when PCIIDE_AMD756_ENABLEDMA is defined; close PR kern/10555.
|
1.68.2.7 |
| 19-Jul-2000 |
bouyer | Pull up 1.79, approved by thorpej: Use the CMD PCI0648/9 IRQ ACK code for the 0646 too, makes the 0646 works in native mode.
|
1.68.2.6 |
| 07-Jul-2000 |
bouyer | Pull up pciide.c 1.77 -> 1.78 pciide_amd_reg.h 1.1 -> 1.2 (approved by thorpej): workaround for a bug in some revs of the AMD IDE controller, which can lock up the machine when multiword DMA is used.
|
1.68.2.5 |
| 06-Jul-2000 |
enami | Pull up rev. 1.74 (approved by releng-1-5): 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
|
1.68.2.4 |
| 05-Jul-2000 |
bouyer | Pull up rev 1.75, approved by thorpej: Fix a error where we would always try to attach channel 0 of an HPT controller (only aftects HPT370, the 366 has only one channel per pciide function).
|
1.68.2.3 |
| 27-Jun-2000 |
tron | Really pull up revision 1.72.
|
1.68.2.2 |
| 27-Jun-2000 |
bouyer | Pull up pciide.c 1.69->1.70, 1.71->1.72 pciide_cmd_reg.h 1.6->1.7 Approved by thorpej: Add support for the CMD PCI0648/0649 IDE controller.
|
1.68.2.1 |
| 27-Jun-2000 |
bouyer | Pull up 1.69, approved by thorpej: Fix promise Ultra/66 cable detection: the Ultra/66 cable detection bit was interpreted backward.
|
1.107.2.20 |
| 29-Dec-2002 |
thorpej | Sync with HEAD.
|
1.107.2.19 |
| 11-Dec-2002 |
thorpej | Sync with HEAD.
|
1.107.2.18 |
| 18-Oct-2002 |
nathanw | Catch up to -current.
|
1.107.2.17 |
| 17-Sep-2002 |
nathanw | Catch up to -current.
|
1.107.2.16 |
| 27-Aug-2002 |
nathanw | Catch up to -current.
|
1.107.2.15 |
| 13-Aug-2002 |
nathanw | Catch up to -current.
|
1.107.2.14 |
| 01-Aug-2002 |
nathanw | Catch up to -current.
|
1.107.2.13 |
| 20-Jun-2002 |
nathanw | Catch up to -current.
|
1.107.2.12 |
| 17-Apr-2002 |
nathanw | Catch up to -current.
|
1.107.2.11 |
| 01-Apr-2002 |
nathanw | Catch up to -current. (CVS: It's not just a program. It's an adventure!)
|
1.107.2.10 |
| 28-Feb-2002 |
nathanw | Catch up to -current.
|
1.107.2.9 |
| 11-Jan-2002 |
nathanw | More catchup.
|
1.107.2.8 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.107.2.7 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.107.2.6 |
| 22-Oct-2001 |
nathanw | Catch up to -current.
|
1.107.2.5 |
| 26-Sep-2001 |
nathanw | Catch up to -current. Again.
|
1.107.2.4 |
| 21-Sep-2001 |
nathanw | Catch up to -current.
|
1.107.2.3 |
| 24-Aug-2001 |
nathanw | Catch up with -current.
|
1.107.2.2 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.107.2.1 |
| 09-Apr-2001 |
nathanw | Catch up with -current.
|
1.121.2.7 |
| 10-Oct-2002 |
jdolecek | sync kqueue with -current; this includes merge of gehenna-devsw branch, merge of i386 MP branch, and part of autoconf rototil work
|
1.121.2.6 |
| 06-Sep-2002 |
jdolecek | sync kqueue branch with HEAD
|
1.121.2.5 |
| 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
1.121.2.4 |
| 11-Feb-2002 |
jdolecek | Sync w/ -current.
|
1.121.2.3 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.121.2.2 |
| 25-Aug-2001 |
thorpej | Merge Aug 24 -current into the kqueue branch.
|
1.121.2.1 |
| 03-Aug-2001 |
lukem | update to -current
|
1.128.2.1 |
| 01-Oct-2001 |
fvdl | Catch up with -current.
|
1.132.2.1 |
| 12-Nov-2001 |
thorpej | Sync the thorpej-mips-cache branch with -current.
|
1.152.2.3 |
| 29-Aug-2002 |
gehenna | catch up with -current.
|
1.152.2.2 |
| 20-Jun-2002 |
gehenna | catch up with -current.
|
1.152.2.1 |
| 30-May-2002 |
gehenna | Catch up with -current.
|
1.153.2.17 |
| 12-Jul-2004 |
he | Pull up revision 1.187 (via patch, requested by grant in ticket #1720): Add support for SATALink 3112.
|
1.153.2.16 |
| 28-Mar-2004 |
jmc | Pullup rev 1.196 via patch (requested by bouyer in ticket #1632)
Add support for VIA VT8237 (KT600) IDE controller. PR#22453
|
1.153.2.15 |
| 28-Mar-2004 |
jmc | Pullup rev 1.195 (requested by bouyer in ticket #1630)
Correct offset for the promise "magic registers" (it depends on channel number). This makes cable detect work properly for newer promise (pdc268 and newer).
|
1.153.2.14 |
| 16-Aug-2003 |
tron | Pull up revision 1.194 (requested by bouyer in ticket #1369): Correct setup of General Purpose Register for PDC20265 (Ultra/100) and newer. From Andreas Johansson in private mail.
|
1.153.2.13 |
| 16-Aug-2003 |
tron | Pull up revision 1.193 via patch (requested by bouyer in ticket #1367): Add support for ICH5, from Quentin Garnier in private mail.
|
1.153.2.12 |
| 16-Jun-2003 |
grant | Apply patch (requested by bouyer in ticket #1234):
Rework SiS support: more controller supported (up to Ultra/133) and better support for the older ones. Information for this work extracted from Soeren Schmidt's FreeBSD driver.
Ops, I commited the previous change (improved SiS support) from the wrong tree. Sync with the latest diff I made available, and also include changes from kern/18015 which is much better than the hack I've done.
|
1.153.2.11 |
| 28-Apr-2003 |
tron | Pull up revision 1.191 (requested by nakayama in ticket #1275): Make DMA mode works on Promise Ultra66/100 with 48-bit LBA drives. Ok'ed by bouyer in tech-kern@netbsd.org.
|
1.153.2.10 |
| 28-Nov-2002 |
tron | Pull up revision 1.174 (requested by kent in ticket #1019): Add support for VIA VT8235
|
1.153.2.9 |
| 01-Nov-2002 |
tron | Pull up revision 1.168 (requested by bouyer in ticket #728): Support Ultra/133 on promise controllers that can do it.
|
1.153.2.8 |
| 01-Nov-2002 |
tron | Pull up revision 1.167 (requested by bouyer in ticket #727): Correct setup for Ultra133 capable VIA chipsets, From Matthias Drochner on current-users, with cross-check and some improvement from linux-2.4.19 and FreeBSD-current. Also don't set the APO_UDMA_CLK66 bit for Ultra/100 capable chipset, and support Ultra/133 for the VT8233A.
|
1.153.2.7 |
| 01-Nov-2002 |
tron | Pull up revision 1.166 (requested by bouyer in ticket #725): Add support for HPT372. From sdegler@kashmir.degler.net in kern/17908, with some improvement from me, and from FreeBSD.
|
1.153.2.6 |
| 01-Nov-2002 |
tron | Pull up revision 1.165 (requested by bouyer in ticket #724): Add support for Promise Ultra133TX2 and Ultra133TX2v2, from FreeBSD and stephen@degler.net in kern/17509.
|
1.153.2.5 |
| 02-Aug-2002 |
lukem | pull up revisions 1.158-1.160 (requested by bouyer in ticket #603): 1.160: Ops, this had already been commited by cjs. Still, call the controller ATA133, even though we use it at ATA100 for now ... 1.159: Add VIA VT8233A support (at Ultra/100 until someone can test 133 for me). From Ryo HAYASAKA, PR kern/17206. 1.158: Recognise the VT8233A ATA100 controller and use Ultra-DMA mode 5 with it.
|
1.153.2.4 |
| 01-Aug-2002 |
lukem | Pull up revision 1.163 (requested by bouyer in ticket #590): Add support for the 82801DB ICH4 IDE controller, from kern/17757 by Andreas Wrede <andreas@planix.com>
|
1.153.2.3 |
| 10-Jun-2002 |
tv | Pull up revision 1.157 (requested by taca in ticket #228): Add support for VIA Technologies's VT8231 IDE Controller to ATA/100.
|
1.153.2.2 |
| 10-Jun-2002 |
tv | Pull up revision 1.156 (requested by bouyer in ticket #214): Ops, use the proper setup_channel() function for promise adapters. Using pdc202xx_setup_channel() for PDC20268 and newer is wrong, and will cause trap trying to read from a non-existent register on some arches (e.g. macppc). pointed out by Makoto Fujiwara on port-macppc.
|
1.153.2.1 |
| 04-Jun-2002 |
lukem | pull up rev 1.154 (requested by bouyer in #129): Remove the "set south-bridge's enable bit" code. It doens't seems to make any difference for rev 0xc3 controllers, and hang on 0xc4 controllers. Fixes kern/16954
|
1.194.2.5 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.194.2.4 |
| 04-Feb-2005 |
skrll | Sync with HEAD.
|
1.194.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.194.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.194.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.210.6.2 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.210.6.1 |
| 12-Feb-2005 |
yamt | sync with head.
|
1.210.4.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.212.4.2 |
| 24-Mar-2008 |
yamt | sync with head.
|
1.212.4.1 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.213.22.2 |
| 10-Dec-2006 |
yamt | sync with head.
|
1.213.22.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.213.20.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.215.48.1 |
| 03-Apr-2008 |
mjf | Sync with HEAD.
|
1.215.44.1 |
| 24-Mar-2008 |
keiichi | sync with head.
|
1.215.24.1 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.216.4.1 |
| 11-Mar-2010 |
yamt | sync with head
|
1.217.4.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.217.2.1 |
| 06-Nov-2010 |
uebayasi | Sync with HEAD.
|
1.219.18.2 |
| 09-Oct-2012 |
bouyer | Support transfers of up to MACHINE_MAXPHYS in all pciide variants, and ahci. wd(4) limits its maxphys depending on the drives's capability (64k sectors for LBA48, 256 sectors for LBA and 128 sectors for older devices).
I assumed all pciide controllers could do MACHINE_MAXPHYS transfers, but this may not be true. The capabilities of each controller variants should be looked at more closely.
|
1.219.18.1 |
| 12-Sep-2012 |
tls | Initial snapshot of work to eliminate 64K MAXPHYS. Basically works for physio (I/O to raw devices); needs more doing to get it going with the filesystems, but it shouldn't damage data.
All work's been done on amd64 so far. Not hard to add support to other ports. If others want to pitch in, one very helpful thing would be to sort out when and how IDE disks can do 128K or larger transfers, and adjust the various PCI IDE (or at least ahcisata) drivers and wd.c accordingly -- it would make testing much easier. Another very helpful thing would be to implement a smart minphys() for RAIDframe along the lines detailed in the MAXPHYS-NOTES file.
|