aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/sym
Commit message (Collapse)AuthorAgeFilesLines
* Remove bus_{mem,p}io.h and related code for a micro-optimization on i386Yoshihiro Takahashi2005-05-291-10/+0
| | | | | | | | | and amd64. The optimization is a trivial on recent machines. Reviewed by: -arch (imp, marcel, dfr) Notes: svn path=/head/; revision=146734
* eliminate double free when sym_cam_attach failsSam Leffler2005-03-261-2/+7
| | | | | | | Noticed by: Coverity Prevent analysis tool Notes: svn path=/head/; revision=144147
* Use BUS_PROBE_DEFAULTWarner Losh2005-03-061-1/+2
| | | | Notes: svn path=/head/; revision=143168
* avoid null ptr derefSam Leffler2005-02-251-3/+4
| | | | | | | | Noticed by: Coverity Prevent analysis tool Reviewed by: scottl Notes: svn path=/head/; revision=142515
* Start each of the license/copyright comments with /*-, minor shuffle of linesWarner Losh2005-01-066-6/+6
| | | | Notes: svn path=/head/; revision=139749
* Attempt to fix Symbios driver on amd64. The private memory allocationStefan Eßer2005-01-011-0/+10
| | | | | | | | | | | | | | | | | function provided by the driver limits allocations to the page size, i.e. 4KB on i385 and 8KB on typical 64 bit processors. Since amd64 has 64 bit pointers, but only 4KB pages, an array of pointers that just fits into one page on all the other processors, does require 2 pages on amd64. In order to make this driver useful on amd64, the allocation unit has been increased to 2 pages on amd64 and contigmalloc() is used instead of malloc(). All other processor types are unaffected by this change. This modification has only been compile-tested on amd64, yet, but should just work (FLW). Notes: svn path=/head/; revision=139545
* Make it depend on PCI as well.Matt Jacob2004-09-101-0/+1
| | | | | | | Submitted by: Stefan eSSer Notes: svn path=/head/; revision=135041
* Make sym depend, as a module, on cam.Matt Jacob2004-09-101-0/+1
| | | | | | | Submitted by:"Norikatsu Shigemura" <nork@FreeBSD.org> Notes: svn path=/head/; revision=135040
* Convert callers to the new bus_alloc_resource_any(9) API.Nate Lawson2004-03-171-8/+8
| | | | | | | | Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde Notes: svn path=/head/; revision=127135
* unifdef old interface support out to prevent false positives.Warner Losh2003-12-071-524/+0
| | | | | | | Suggested by: jeffr, obrien, and others Notes: svn path=/head/; revision=123218
* Use PCIR_BAR(x) instead of PCIR_MAPS.John Baldwin2003-09-021-4/+4
| | | | | | | | Glanced over by: imp, gibbs Tested by: i386 LINT Notes: svn path=/head/; revision=119690
* Use __FBSDID().David E. O'Brien2003-08-241-2/+3
| | | | | | | Also some minor style cleanups. Notes: svn path=/head/; revision=119420
* Prefer new location of pci include files (which have only been in theWarner Losh2003-08-221-2/+2
| | | | | | | | tree for two or more years now), except in a few places where there's code to be compatible with older versions of FreeBSD. Notes: svn path=/head/; revision=119287
* Remove extraneous semicolons. They are already provided byDiomidis Spinellis2003-08-051-4/+4
| | | | | | | | | | | the macro definition, and cause the generation of syntactically incorrect code that gcc happens to accept. Reviewed by: schweikh (mentor) MFC after: 4 weeks Notes: svn path=/head/; revision=118472
* Mega busdma API commit.Scott Long2003-07-011-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg. Lockfunc allows a driver to provide a function for managing its locking semantics while using busdma. At the moment, this is used for the asynchronous busdma_swi and callback mechanism. Two lockfunc implementations are provided: busdma_lock_mutex() performs standard mutex operations on the mutex that is specified from lockfuncarg. dftl_lock() is a panic implementation and is defaulted to when NULL, NULL are passed to bus_dma_tag_create(). The only time that NULL, NULL should ever be used is when the driver ensures that bus_dmamap_load() will not be deferred. Drivers that do not provide their own locking can pass busdma_lock_mutex,&Giant args in order to preserve the former behaviour. sparc64 and powerpc do not provide real busdma_swi functions, so this is largely a noop on those platforms. The busdma_swi on is64 is not properly locked yet, so warnings will be emitted on this platform when busdma callback deferrals happen. If anyone gets panics or warnings from dflt_lock() being called, please let me know right away. Reviewed by: tmm, gibbs Notes: svn path=/head/; revision=117126
* Add amd64 support.Peter Wemm2003-06-261-1/+1
| | | | Notes: svn path=/head/; revision=116857
* Merge common XPT_CALC_GEOMETRY functions into a single convenience function.Nate Lawson2003-06-141-22/+1
| | | | | | | | | | | | | | | | Devices below may experience a change in geometry. * Due to a bug, aic(4) never used extended geometry. Changes all drives >1G to now use extended translation. * sbp(4) drives exactly 1 GB in size now no longer use extended geometry. * umass(4) drives exactly 1 GB in size now no longer use extended geometry. For all other controllers in this commit, this should be a no-op. Looked over by: scottl Notes: svn path=/head/; revision=116351
* I deserve a big pointy hat for having missed all those referencesMaxime Henrion2003-04-101-3/+3
| | | | | | | to bus_dmasync_op_t in my last commit. Notes: svn path=/head/; revision=113350
* Consolidate MIN/MAX macros into one place (param.h).Alfred Perlstein2003-02-021-7/+0
| | | | | | | Submitted by: Hiten Pandya <hiten@unixdaemons.com> Notes: svn path=/head/; revision=110232
* Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup,Jens Schweikhardt2003-01-011-2/+2
| | | | | | | especially in troff files. Notes: svn path=/head/; revision=108533
* Fix typos, mostly s/ an / a / where appropriate and a few s/an/and/Jens Schweikhardt2002-12-303-4/+4
| | | | | | | Add FreeBSD Id tag where missing. Notes: svn path=/head/; revision=108470
* Fix instances of macros with improperly parenthasized arguments.Alfred Perlstein2002-11-091-2/+2
| | | | | | | Verified by: md5 Notes: svn path=/head/; revision=106696
* Be consistent about functions being static.Poul-Henning Kamp2002-10-161-6/+6
| | | | | | | Spotted by: FlexeLint. Notes: svn path=/head/; revision=105215
* Move the new byte order function prototypes from <sys/param.h> toMike Barcroft2002-04-261-0/+1
| | | | | | | <sys/endian.h>. This puts us in line with NetBSD and OpenBSD. Notes: svn path=/head/; revision=95533
* Fix some gcc-3.1+ warnings:Peter Wemm2002-03-191-0/+2
| | | | | | | | warning: deprecated use of label at end of compound statement umass.c:2626:46: multi-line string literals are deprecated Notes: svn path=/head/; revision=92732
* Comment tokens after #undef <macroname> and #endif.John Baldwin2001-12-131-4/+4
| | | | | | | Reported by: gcc30 Notes: svn path=/head/; revision=87796
* Submitted by:David E. O'BrienGerard Roudier2001-11-241-4/+4
| | | | | | | | | | | MFC after:3 days - Add memory barrier definition for sparc64. Patch sent by David E. O'Brien, approved by maintainer. - Fix an endianization error of a bus physical address used from SCRIPTS that made the driver fail on big endian machines as sparc64. Notes: svn path=/head/; revision=86850
* MFC after: 0 daysGerard Roudier2001-11-117-8/+8
| | | | Notes: svn path=/head/; revision=86266
* s/adress/address/Kris Kennaway2001-07-231-1/+1
| | | | | | | | Inspired by: OpenBSD MFC After: 1 week Notes: svn path=/head/; revision=80203
* Submitted by: Chip Salzenberg <chip@perlsupport.com>.Gerard Roudier2001-07-011-2/+5
| | | | | | | | | | | | MFC after: 5 days - Mask GPCNTL against 0x1c (was 0xfc) for the reading of the NVRAM. This ensures LEDC bit will not be set on 896 and later chips. Submitted by Chip Salzenberg <chip@perlsupport.com>. - Add probe for Tekram 390 U2B/U2W SCSI (53C895) LED handling. Submitted by Chip Salzenberg <chip@valinux.com> Notes: svn path=/head/; revision=79042
* Correctly initialize free_ccbq so that if we fail to attach (as isMatt Jacob2001-04-091-9/+8
| | | | | | | | | | possible for some systems where the device is there, but the BIOS hasn't allocated memory resources for it), we don't panic. Submitted by: Gerard Roudier Notes: svn path=/head/; revision=75329
* Add #if'ed support for the future option CAM_NEW_TRAN_CODE.Gerard Roudier2001-03-241-57/+236
| | | | Notes: svn path=/head/; revision=74755
* Turn on interrupt-entropy harvesting for all/any mass storage devicesMark Murray2001-03-011-2/+3
| | | | | | | | | | I could find. I have no doubt missed a couple. Interrupt entropy harvesting is still conditional on the kern.random.sys.harvest_interrupt sysctl. Notes: svn path=/head/; revision=73280
* Fix:Gerard Roudier2001-02-111-10/+32
| | | | | | | | | | | | | | | | | | | | - Missing cpu_to_scr() added (endian-ness). Improvement (fix|workaroung??): - Blindly firing a PPR can lead to some messy situations due to various causes or misfeatures, for example: * The 53C1010-[33|66] supports offset 62 in DT mode, but only offset 31 in ST mode. As a result, a PPR(DT, offset 62) responded with PPR(ST, any offset > 31) must be rejected. * A device that doesn't know about PPR should reject it, but may also be confused by this message. When a PPR encounters problems, the driver now patches the goal transfer settings for legacy negotiations to be performed later with the offending target. This give a chance for bad situations to be fixed automagically. Notes: svn path=/head/; revision=72361
* A couple of chip errata work-arounds refined:Gerard Roudier2001-01-281-3/+3
| | | | | | | | | | | | | | | | - When used on a 33MHz PCI BUS, the 53C1010-66 revision 0 requires extra clocks to be inserted in data out phase. Revision 1 is fixed. - The 53C1010-33 revision 1 requires internal cycles to be disabled due to possible contentions on IO registers. Revision 2 is fixed. Fix: - The probing of HVD from GPIO3 bit by the driver was reversed. The driver could misprobe the bus mode of a 825 or 875 chip that was not previously initialized (no BIOS for example). Notes: svn path=/head/; revision=71742
* Remove unneeded include of <pci.h>Alexander Langer2000-12-071-1/+0
| | | | | | | Approved by: groudier Notes: svn path=/head/; revision=69719
* Convert all users of fldoff() to offsetof(). fldoff() is badPoul-Henning Kamp2000-10-271-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | because it only takes a struct tag which makes it impossible to use unions, typedefs etc. Define __offsetof() in <machine/ansi.h> Define offsetof() in terms of __offsetof() in <stddef.h> and <sys/types.h> Remove myriad of local offsetof() definitions. Remove includes of <stddef.h> in kernel code. NB: Kernelcode should *never* include from /usr/include ! Make <sys/queue.h> include <machine/ansi.h> to avoid polluting the API. Deprecate <struct.h> with a warning. The warning turns into an error on 01-12-2000 and the file gets removed entirely on 01-01-2001. Paritials reviews by: various. Significant brucifications by: bde Notes: svn path=/head/; revision=67708
* Remove unneeded #include <machine/clock.h>Poul-Henning Kamp2000-10-151-1/+0
| | | | Notes: svn path=/head/; revision=67164
* PR: kern/20895Gerard Roudier2000-09-032-26/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | PR kern/20895: - Add FE_DAC new feature flag to distinguish between 64 bit PCI addressing (DAC cycles) and 64 bit PCI interface (64 bit Memory BARs). - Properly deal with chips that have a 32 bit PCI interface but support and may generate DAC. (Only SYM53C895A for now). PR misc/17584 (at least partially addressed): - Try detecting hardware combinations that trigger spurious PCI master parity error detections by the PCI chip. This work-around is implemented in the `snooptest' routine and consists in retrying with PCI master parity checking disabled if such an error is reported by the PCI chip during this test. Other: - Fix a tiny bug in WIDE negotiation that was very unlikely to be triggerred. The BUS width was wrongly compared against chip's max. offset. Notes: svn path=/head/; revision=65404
* - Various comment fixes and additions.Gerard Roudier2000-07-022-267/+62
| | | | | | | | | | | | | - Add 2 explicit (paranoid?) memory barriers in the interrupt code (After the reading of the `flag' and prior to looking at the data, of course. :-) ). - Remove obsolete informations from the README.sym file. This commit actually results in no object difference for IA32, but 2x`mb' added for Alpha. Notes: svn path=/head/; revision=62422
* - Fix a harmless compilation warning on Alpha.Gerard Roudier2000-06-263-19/+62
| | | | | | | | | | | | | | (Reported by Matthew Jacob) - Fix a couple of __inline__ (changed to __inline). - Check also against DT_DATA_IN phase on parity/crc error. (Merged from Pamela Delaney's changes in the Linux driver) - Fix support for phase mismatch handling from the C code for the C1010 (only useful for testing issue). - Add an asynchonous notification handler for `lost device' (AC_LOST). Notes: svn path=/head/; revision=62134
* Fix a problem of user settings from TEKRAM NVRAMGerard Roudier2000-06-131-6/+10
| | | | | | | | | | | | | | | layout introduced in driver 1.5.3. The driver was confused by the bogus TEKRAM table used to translate user sync. setting to SCSI sync. factor. Btw, the new TEKRAM DC-390 U3D and U3W Ultra-160 controllers seem to be using BIOS from SYMBIOS/LSI and thus SYMBIOS NVRAM layout. If that means that TEKRAM will now offer real SYMBIOS software compatible SCSI controllers, then it is a *GREAT NEWS*. Notes: svn path=/head/; revision=61639
* - Use `bus space' primitives for IO and MMIO insteadGerard Roudier2000-06-081-88/+195
| | | | | | | | | of IO/MMIO legacy methods. - Prepare the driver for big endian CPU support. - Clarify memory and IO barriers needed by the driver. Notes: svn path=/head/; revision=61429
* - Make the NVRAM debug code compile and work.Gerard Roudier2000-05-283-38/+65
| | | | | | | | | | | | | - Get rid of a fiew uselessly `long' variables and casts to `long'. - Estimate the PCI clock for all chips, except C1010 for now (we should do that for each PCI BUS) - Refine a couple of C1010 errata work-arounds. - For now, make sure AIP generation is disabled for the C1010-66. Notes: svn path=/head/; revision=61051
* Work-around a couple of C1010 quirks:Gerard Roudier2000-05-073-40/+93
| | | | | | | | | - Reload SCNTL3 after selection from host (C1010-33). - Reload SCNTL4 prior to any DATA OUT phase (C1010-66). - Use max SCSI offset 31 for ST but 62 for DT. Notes: svn path=/head/; revision=60134
* Add missing $FreeBSD$Peter Wemm2000-05-011-0/+2
| | | | Notes: svn path=/head/; revision=59868
* Phase mismatch handling from SCRIPTS had beenGerard Roudier2000-04-301-3/+3
| | | | | | | broken by previous patch. Notes: svn path=/head/; revision=59800
* This new version adds support for early NCR chips.Gerard Roudier2000-04-296-2116/+4517
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 53C810 non 'A', 53C815 and 53C825 non 'A' are now attached by the driver (by default). The driver uses a different SCRIPTS set based on MEMORY MOVE instructions for these chips. 2 SCRIPTS sets (firmwares) numbered #1 and #2 are used for the whole support of the 53C8XX family to get possible: - FW #1 : Only based on MEMORY MOVE instructions. Selected for 810, 815, 825. - FW #2 : LOAD/STORE based. This is the firmware also used by previous driver versions. Selected for other chips. When both `ncr' and `sym' are configured, `sym' will now attach all the 53C8XX devices by default. Previous balancing between `ncr' and `sym' can be preserved by: - Either editing sym_conf.h and commenting the following compile option: #define SYM_CONF_GENERIC_SUPPORT (This also saves about 3.5Kb of kernel memory). - Or setting kernel config option SYM_SETUP_LP_PROBE_MAP to 64 (bit 0x40) Notes: svn path=/head/; revision=59743
* Remove unneeded <sys/buf.h> includes.Poul-Henning Kamp2000-04-181-1/+0
| | | | | | | | Due to some interesting cpp tricks in lockmgr, the LINT kernel shrinks by 924 bytes. Notes: svn path=/head/; revision=59368
* Second patch that prepares for the addition of theGerard Roudier2000-04-161-301/+303
| | | | | | | | | | | | | | | multi-firmware support. This patch just changes numerous names in the driver sources and is actually nilpotent. This has been checked by comparing the generated assembly code. The names that have been changed are related to the script names. They were named `script' and `script H'. They are now named respectively `script A' and `script B'. Notes: svn path=/head/; revision=59292