summaryrefslogtreecommitdiffstats
path: root/sys/dev
Commit message (Collapse)AuthorAgeFilesLines
* fix a potential local DoS attackcg2000-07-302-2/+13
|
* fix a bug where opening /dev/dsp twice resulted in it being busy until rebootcg2000-07-301-0/+3
|
* Spell the word 'limited' with only one 't'.steve2000-07-302-2/+2
|
* do the ac97 init delay for all chips and increase it to 500mscg2000-07-301-2/+3
|
* "Fix" cast qualifier warnings using the uintptr_t intermediate trick.peter2000-07-281-3/+6
|
* Fix a warning re: a potentially unused pccard helper functionpeter2000-07-281-0/+2
|
* Fix GENERIC_MOUSE_ENTRY.yokota2000-07-281-1/+1
| | | | Submitted by: Graham Wheeler <gram@cequrux.com> and gibbs
* ahc_pci.c:gibbs2000-07-274-15/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Disable "cache line streaming" for aic7890/91 Rev A chips. I have never seen these chips fail using this feature, but some of Adaptec's regression tests have. Explicitly set "cache line streaming" to on for aic7896/97 chips. This was happening before, but this documents the fact that these chips will not function correctly without CACHETHEEN set. aic7xxx.h: Add new bug types. Fix a typo in a comment. aic7xxx.reg: Add a definition for the SHVALID bit in SSTAT3 for Ultra2/3 chips. This bit inicates whether the bottom most (current) element in the S/G fifo has exhausted its data count. aic7xxx.seq: Be more careful in how we turn off the secondary DMA channel. Being less careful may hang the PCI bus arbitor that negotiates between the two DMA engines. Remove an unecessary and incorrect flag set operation in the overrun case. On Ultra2/3 controllers, clear the dma FIFO before starting to handle an overrun. We don't want any residual bytes from the beginning of the overrun to cause the code that shuts down the DMA engine from hanging because the FIFO is not (and never will be) empty. If the data fifo is empty by the time we notice that a read transaction has completed, there is no need to hit the flush bit on aic7890/91 hardware that will not perform an auto-flush. Skip some cycles by short circuiting the manual flush code in this case. When transitioning out of data phase, make sure that we have the next S/G element loaded for the following reconnect if there is more work to do. The code would do this in most cases before, but there was a small window where the current S/G element could be exhausted before our fetch of the next S/G element completed. Since the S/G fetch is already initiated at this point, it makes sense to just wait for the segment to arrive instead of incuring even more latency by canceling the fetch and initiating it later. Fast path the end of data phase handling for the last S/G segment. In the general case, we might have worked ahead a bit by stuffing the S/G FIFO with additional segments. If we stop before using them all, we need to fixup our location in the S/G stream. Since we can't work past the last S/G segment, no fixups are ever required if we stop somewhere in that final segment. Fix a little buglet in the target mode dma bug handler. We were employing the workaround in all cases instead of only for the chips that require it. Fix the cause of SCB timeouts and possible "lost data" during read operations on the aic7890. When sending a data on any Ultra2/3 controller, the final segment must be marked as such so the FIFO will be flushed and cleaned up correctly when the transfer is ended. We failed to do this for the CDB transfer and so, if the target immediately transfered from command to data phase without an intervening disconnection, the first segment transferred would be any residual bytes from the cdb transfer. The Ultra160 controllers for some reason were not affected by this problem. Many Thanks to Tor Egge for bringing the aic7890 problem to my attention, providing analysis, as well as a mechanism to reproduce the problem.
* The DEC version of the Smart controller has its configuration informationjlemon2000-07-276-36/+79
| | | | | | | stored at a different location in the PCI space, so adjust accordingly. Also, when using more than two smart controllers in one machine, the disks were assigned the wrong drive number; fix this as well.
* Use a custom Tigon 2 firmware image, hopefully temporarily. This iswpaul2000-07-261-1683/+1728
| | | | | | | | | | | the 12.4.11 firmware with a few changes to the link handling code merged in from the 12.4.13 release. I'm doing this because the 12.4.13 firmware doesn't seem to handle 10/100 link settings properly on 1000baseT cards. Note that the revision codes still identify the firmware as 12.4.13 because both ti_fw2.h and ti_fw.h have to have the same revision values, and I wanted to keep the 12.4.13 firmware for Tigon 1 cards. It's nice to have firmware source.
* Remove the preliminary support for ATAPI. It does not work and breaksn_hibma2000-07-261-0/+6
| | | | (physically) IBM Microdrives.
* o Fix a horrible bug where small reads (< 8 bytes) would return themarkm2000-07-2510-48/+98
| | | | | | | | wrong bytes. o Improve the public interface; use void* instead of char* or u_int64_t to pass arbitrary data around. Submitted by: kris ("horrible bug")
* Properly handle the case where the residual is 0, but, as the targetgibbs2000-07-251-5/+12
| | | | | | didn't bother to send a saved data pointers after the last transfer, is not recorded in sgptr. This was only a problem if the target reported non-zero status as we always check the residual in that case.
* aic7xxx.c:gibbs2000-07-243-49/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Correct the BUILD_TCL macro. It was placing the target id in the wrong bits. This was only an issue for adapters that do not perform SCB paging (aha-3940AUW for instance). Don't bother inlining ahc_index_busy_tcl. It is never used in a performance critical path and is a bit chunky. Correct ahc_index_busy_tcl to deal with "busy target tables" embedded in the latter half of 64byte SCBs. Don't initialize the busy target table to its empty state until after we have finished extracting configuration information from chip SRAM. In the common case of using 16 bytes of chip SRAM to do untagged target lookups, we were trashing the last 8 targets configuration data. (actually only target 8 because of the bug in the BUILD_TCL macro). Cram the "bus reset delivered" message back under bootverbose. Fix the cleanup of the SCB busy target table when aborting commands. If the lun is wildcarded, we must loop through all possible luns. aic7xxx.h: Only bother supporting 64 luns right now. It doesn't seem like either this driver or any peripherals will be doing information unit transfers (where the lun number is a 32 bit integer) any time soon. aic7xxx.seq: Fix support for the aic7895. We must flush the data FIFO if performing a manual transfer that is not a multiple of 8 bytes. We were doing this quite regularly for embedded cdbs. Manaually flush the fifo on earlier adapters when dealing with embedded cdbs too. We were stuffing the FIFO with 16 bytes instead, but triggering the flush is more efficient and allows us to remove two instructions from the "copy_to_fifo" routine.
* MFPAO: Add support for AX88190, equipped in MELCO LPC3-TX.tanimura2000-07-234-76/+273
|
* Clean this up with some BDE-inspired fixes.markm2000-07-236-70/+90
| | | | | | | | | | | o Make the comments KNF-compliant. o Use nanotime instead of getnanotime; the manpage lies about the kern.timecounter.method - it has been removed. o Fix the ENTROPYSOURCE const permanently. o Make variable names more consistent. o Make function prototypes more consistent. Some more needs to be done; to follow.
* Remove the awi(4) manual page from the sys/ hierarchy after a repo-sheldonh2000-07-231-154/+0
| | | | | copy to share/man/man4 . The file is still not connected to the build from that directory either.
* Add transmit buffer limitation depending on actual bandwidth.phk2000-07-221-113/+160
| | | | | Add unframed E1 mode. Various cleanup.
* This is yet another attempt to fix "psmintr out of sync.." problems.yokota2000-07-221-13/+9
| | | | | | - Properly protect the watchdog timer routine. - Relocate the sync check statement so that we don't see too many error messages.
* Make Reset (ESC c) reset attributes too, not only clear screenache2000-07-211-1/+6
|
* Tweak probe message so that 1000baseSX and 1000baseT cards arewpaul2000-07-201-2/+2
| | | | explicitly identified.
* Update the Tigon driver to support 1000baseTX gigE over copper AceNICwpaul2000-07-204-2427/+3229
| | | | | | | | cards. This basically involves switching to the 12.4.13 firmware, plus a couple of minor tweaks to the driver. Also changed the jumbo buffer allocation scheme just a little to avoid 'failed to allocate jumbo buffer' conditions in certain cases.
* Implement SGR 22,24,25,27 from ECMA-48ache2000-07-201-0/+16
|
* Accorfing to ECMA-48 SGR 39 and 49 are just another colors and must not resetache2000-07-201-2/+2
| | | | other attrs, so reset only bold on 39
* Add support for the PC87303 chipset (found on Miata alphas) and adddfr2000-07-202-6/+47
| | | | | | | support for relocating the port address if the isa hints specify a different address from the address the chipset currently has. Submitted by: Andrew M. Miklic <miklic@ibm.net>
* Remove some confusing verbosity - we have no idea what RAID level themsmith2000-07-201-18/+3
| | | | drive is at, so don't print the 'unknown' value, just say nothing.
* Fix an alpha-only race which causes the transmit side of the chip togallatin2000-07-191-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | lock up under moderate to heavy load. The status & command fields share a 32-bit longword. The programming API of the eepro apparently requires that you update the command field of a transmit slot that you've already given to the card. This means the card could be updating the status field of the same longword at the same time. Since alphas can only operate on 32-bit chunks of memory, both the status & command fields are loaded from memory & operated on in registers when the following line of C is executed: sc->cbl_last->cb_command &= ~FXP_CB_COMMAND_S; The race is caused by the card DMA'ing up the status at just the wrong time -- after it has been loaded into a register & before it has been written back. The old value of the status is written back, clobbering the status the card just DMA'ed up. The fact that the card has sent this frame is missed & the transmit engine appears to hang. Luckily, as numerous people on the freebsd-alpha list pointed out, the load-locked/store-conditional instructions used by the atomic functions work with respect changes in memory due to I/O devices. We now use them to safely update the command field. Tested by: Bernd Walter <ticso@mail.cicely.de>
* Studied the tech docs for the Voodoo3 and Banshee, and hopefully fixed thecokane2000-07-193-21/+88
| | | | | | | | | | errors that plagued those cards with XFree86 4.0. They have two memory ranges as well as an IO port range to them. Also cleaned up the three warning messages that I got, from inb(), outb() and linuxulator. Also, I noticed that the DRI and Glide support for the Voodoo4 and 5 has been placed upon linux.3dfx.com, too bad they haven't released the tech docs yet. Apparently, they are still pushing glide for all of us, so I will try and add support once those tech docs are up.
* make this file suitable for 4-stable as well as 5-currentcg2000-07-181-0/+11
|
* PR:19945dick2000-07-181-1/+2
| | | | | Reviewed by:tanimura Fix boot panic introduced by newmidi code.
* Remove an unused variable warning.n_hibma2000-07-181-2/+0
|
* Fix the detection of parallel port Zip drives.n_hibma2000-07-181-4/+5
| | | | | Submitted by: j mckitrick <jcm@freebsd-uk.eu.org> Reviewed by: nsouchu
* o Convert to <inttypes.h> style fixed sized types to facilitate porting togibbs2000-07-1824-1843/+2973
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | other systems. o Normalize copyright text. o Clean up probe code function interfaces by passing around a single structure of common arguments instead of passing "too many" args in each function call. o Add support for the AAA-131 as a SCSI adapter. o Add support for the AHA-4944 courtesy of "Matthew N. Dodd" <winter@jurai.net o Correct manual termination support for PCI cards. The bit definitions for manual termination control in the SEEPROM were incorrect. o Add support for extracting NVRAM information from SCB 2 for BIOSen that use this mechanism to pass this data to OS drivers. o Properly set the STPWLEVEL bit in PCI config space based on the setting in an SEEPROM. o Go back to useing 32byte SCBs for all controllers. The current firmware allows us to embed 12byte cdbs on all controllers in a 32byte SCB, and larger cdbs are rarely used, so it is a better use of this space to offer more SCBs (32). o Add support for U160 transfers. o Add an idle loop executed during data transfers that prefetches S/G segments on controllers that have a secondary DMA engine (aic789X). o Improve the performance of reselections by avoiding an extra one byte DMA in the case of an SCB lookup miss for the reselecting target. We now keep a 16byte "untagged target" array on the card for dealing with untagged reselections. If the controller has external SCB ram and can support 64byte SCBs, then we use an "untagged target/lun" array to maximize concurrency. Without external SCB ram, the controller is limited to one untagged transaction per target, auto-request sense operations excluded. o Correct the setup of the STPWEN bit in SXFRCTL1. This control line is tri-stated until set to one, so set it to one and then set it to the desired value. o Add tagged queuing support to our target role implementation. o Handle the common cases of the ignore wide residue message in firmware. o Add preliminary support for 39bit addressing. o Add support for assembling on big-endian machines. Big-endian support is not complete in the driver. o Correctly remove SCBs in the waiting for selection queue when freezing a device queue. o Now that we understand more about the autoflush bug on the aic7890, only use the workaround on devices that need it. o Add a workaround for the "aic7890 hangs the system when you attempt to pause it" problem. We can now pause the aic7890 safely regardless of what instruction it is executing.
* Fix the IRQ9/IRQ2 confusion.phk2000-07-181-0/+1
| | | | Submitted by: Alan Clegg <abc@bsdi.com>
* Driver for LMC1504 card: four port E1 or fractional E1.phk2000-07-181-47/+115
| | | | | | T1 support is possible but I have no T1 hardware to test with. The vendor can be found at: www.lanmedia.com
* Add smc37c935 chipset support and clean up the code which tries todfr2000-07-182-32/+139
| | | | | | | allocate a short port range in some alpha configurations. Submitted by: "Andrew M. Miklic" <miklic@udlkern.fc.hp.com>, Mark Abene <phiber@radicalmedia.com>
* Add in some new IN_XXX and CT_XXXX flags in preparationmjacob2000-07-181-0/+6
| | | | | for the rototilling that !*$)~@!$_@*_(~@$*_(~@$*~@$* Qlogic F/W changes will need.
* If debugging set, zero out an incoming response entrymjacob2000-07-181-1/+5
| | | | | | | when we're done reading it (makes checking things easier). Before calling isp_notify_ack make sure we're at RUNSTATE- elsewise we can be responding to LIPs or SCSI bus resets before we've finished some of the wiring.
* The SERVICING_INTERRUPT isn't quite safe yet.mjacob2000-07-181-0/+4
|
* Add a isp_target_putback_atio- we aren't using CCINCR at this time, somjacob2000-07-181-40/+169
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | we need a function that tells the Qlogic f/w that a target mode command is done, so increase the resource count for that lun. Add in a timeout function to kick the putback again if we fail to do it the first time (we may not have the request queue space for ATIO push). Split the function isp_handle_platform_ctio into two parts so that the timeout function for the ATIO push or isp_handle_platform_ctio can inform CAM that the requested CTIO(s) are now done. Clean up (cough) residual handling. What we need for Fibre Channel is to preserve the at_datalen field from the original incoming ATIO so we can calculate a 'true' residual. Unfortunately, we're not guaranteed to get that back from CAM. We'll *try* to find it hiding in the periph_priv field (layering violation)- but if an ATIO was passed in from user land- forget it. This means that we'll probably get residuals wrong for Fibre Channel commands we're completing with an error. It's too late to 4.1 release to fix this- too bad. Luckily the only device we'd really care about this occurring on is a tape device and they're still so rare as FC attached devices that this can be considered an untested combination anyway. Remove all CCINCR usage (resource autoreplenish). When we've proved to ourself that things are working properly, we can add it back in. Make sure we propage 'suggested' sense data from the incoming ATIO into the created system ATIO- and set sense_len appropriately. Correctly propagate tag values. Fall back to the model of generating (well, the functions in isp_pci.c do the work) multiple CTIOs based upon what we get from XPT. Instead of being able to pair Qlogic generated ATIOs with CAM ATIOs, and then to pair CAM CTIOs with Qlogic CTIOs, we have to take the CTIO passed to us from XPT, and if it implies that we have to generate extra Qlogic CTIOs, so be it. This means that we have to wait until the last CTIO in a sequence we generated completes before calling xpt_done. Executive summary- target mode actually now pretty much works well enough to tell folks about.
* Raise debug level for some messages. Fix botched inversionmjacob2000-07-181-11/+9
| | | | about MBOX_COMMAND_ERROR vs. MBOX_COMMAND_PARAM_ERROR.
* Keep interrupts blocked for all of isp_pci_attach. Redo DMA routinesmjacob2000-07-181-78/+161
| | | | for target mode for cleanliness and accuracy.
* Properly detect ISA cards in EISA mode and skip them in the ISA identifymdodd2000-07-182-2/+12
| | | | | | routine so that they will be picked up by the EISA front end. PR: i386/2598
* The modem driver for Communication Device Class, ACM compliant devices.n_hibma2000-07-171-25/+1114
| | | | | | | | | | There is a number of devices that are compliant, of which the 3Com 5605 is has been verified to work. The driver is not perfect yet, but should be able to get you somewhere. The driver was originally written by Lennart Augustsson, but Mike Smith and Mike Meyer <mwm@mired.org> did the porting.
* Add the PCI IDs for the Macronix 98727 and 98732 parts. These arewpaul2000-07-172-1/+10
| | | | | | 3.3volt PCI/cardbus chipsets similar to the 98715 (and they have 512-bit hash tables). Also update the man page to mention the 98727/98732 and the SOHOware SFA110A Rev B4 card with the 98715AEC-C chip.
* Remove __P prototypes to reduce diffs between the NetBSD and FreeBSDn_hibma2000-07-1722-475/+475
| | | | versions.
* Rename MDNSECT to MD_NSECT and declare it as something that isn'tsheldonh2000-07-171-3/+3
| | | | | | | default in NOTES. Requested by: bde Approved by: phk
* Add randomness write functionality. This does absolutely nothing formarkm2000-07-174-2/+40
| | | | | | | | | | | | | entropy estimation, but causes an immediate reseed after the input (read in sizeof(u_int64_t) chunks) is "harvested". This will be used in the reboot "reseeder", coming in another commit. This can be used very effectively at any time you think your randomness is compromised; something like # (ps -gauxwww; netstat -an; dmesg; vmstat -c10 1) > /dev/random will give the attacker something to think about.
* Regen.n_hibma2000-07-172-12/+156
|
* Lots of new device Ids. From NetBSD.n_hibma2000-07-171-5/+35
|
OpenPOWER on IntegriCloud