360684 |
06-May-2020 |
dim |
MFC r335894 (by sbruno):
Reset indentation of this flag. No functional change intended. Found with gcc.
sys/dev/ata/chipsets/ata-siliconimage.c: In function 'ata_cmd_ch_attach': sys/dev/ata/chipsets/ata-siliconimage.c:187:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if (ctlr->chip->cfg2 & SII_INTR) ^~ sys/dev/ata/chipsets/ata-siliconimage.c:190:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' ch->flags |= ATA_NO_ATAPI_DMA; |
360683 |
06-May-2020 |
dim |
MFC r335896 (by sbruno):
Reset indentiation of ata_suspend() such that its clear we fall through this function and that we aren't supposed to be controlled by the first if() conditional. Found with gcc.
No functional change is intended with this commit. |
355965 |
20-Dec-2019 |
brooks |
MFC r355830:
Avoid a tautological bitwise compare.
This looks like a bit of debugging code that sliped into the initial import of the sos@ ATA framework. This changes the behavior to omit a line of output that appears to have been intended for omission.
Reviewed by: mav Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D22845 |
344430 |
21-Feb-2019 |
avos |
MFC r344198: GC ATA_REQUEST_TIMEOUT option remnants
It was removed from code in r249083 and from sys/conf/options in r249213.
PR: 193935, 222170 |
331722 |
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re) |
331091 |
17-Mar-2018 |
eadler |
MFC r326387:
Fix typo |
330897 |
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg |
322573 |
16-Aug-2017 |
mav |
MFC r322309, r322316: Use "Ibex Peak" codename for "5 Series/3400 Series" chipsets.
This is shorter and unifies naming with later chipsets. |
315812 |
23-Mar-2017 |
mav |
MFC r311305 (by asomers): Always null-terminate ccb_pathinq.(sim_vid|hba_vid|dev_name)
The sim_vid, hba_vid, and dev_name fields of struct ccb_pathinq are fixed-length strings. AFAICT the only place they're read is in sbin/camcontrol/camcontrol.c, which assumes they'll be null-terminated. However, the kernel doesn't null-terminate them. A bunch of copy-pasted code uses strncpy to write them, and doesn't guarantee null-termination. For at least 4 drivers (mpr, mps, ciss, and hyperv), the hba_vid field actually overflows. You can see the result by doing "camcontrol negotiate da0 -v".
This change null-terminates those fields everywhere they're set in the kernel. It also shortens a few strings to ensure they'll fit within the 16-character field.
PR: 215474 Reported by: Coverity CID: 1009997 1010000 1010001 1010002 1010003 1010004 1010005 CID: 1331519 1010006 1215097 1010007 1288967 1010008 1306000 CID: 1211924 1010009 1010010 1010011 1010012 1010013 1010014 CID: 1147190 1010017 1010016 1010018 1216435 1010020 1010021 CID: 1010022 1009666 1018185 1010023 1010025 1010026 1010027 CID: 1010028 1010029 1010030 1010031 1010033 1018186 1018187 CID: 1010035 1010036 1010042 1010041 1010040 1010039 |
314381 |
28-Feb-2017 |
mav |
MFC r313949: Remove dead mentions of CAM target mode APIs from drivers.
This makes grepping kernel for target mode implementation much easier. |
302408 |
08-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
298955 |
03-May-2016 |
pfg |
sys/dev: minor spelling fixes.
Most affect comments, very few have user-visible effects.
|
298143 |
17-Apr-2016 |
imp |
Implement Auxiliary register. Add PIM_ATA_EXT flag to flag that a SIM can handle it, and add the code to add it to the FIS that's sent to the drive. The mvs driver is the only other ATA driver in the system, and its hardware doesn't appear to support setting the Auxiliary register.
Differential Revision: https://reviews.freebsd.org/D5598
|
297793 |
10-Apr-2016 |
pfg |
Cleanup unnecessary semicolons from the kernel.
Found with devel/coccinelle.
|
297402 |
29-Mar-2016 |
pfg |
Small typo.
|
296137 |
27-Feb-2016 |
jhibbits |
Migrate many bus_alloc_resource() calls to bus_alloc_resource_anywhere().
Most calls to bus_alloc_resource() use "anywhere" as the range, with a given count. Migrate these to use the new bus_alloc_resource_anywhere() API.
Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D5370
|
295719 |
17-Feb-2016 |
glebius |
Ternary operator has lower priority than OR.
Found by: PVS-Studio
|
295664 |
16-Feb-2016 |
jhibbits |
Convert a few more long -> rman_res_t.
|
295276 |
04-Feb-2016 |
rpokala |
Add defines for WRITE_UNCORRECTABLE ATA command, and improve command logging
Add #defines for ATA_WRITE_UNCORRECTABLE48 and its features. Update the decoding in ATACAM to recognize the new values. Also improve command decoding for a few other commands (SMART, NOP, SET_FEATURES). Bring the decoding in ata(4) up to parity with ATACAM.
Reviewed by: mav, imp MFC after: 1 month Sponsored by: Panasas, Inc. Differential Revision: https://reviews.freebsd.org/D5181
|
294883 |
27-Jan-2016 |
jhibbits |
Convert rman to use rman_res_t instead of u_long
Summary: Migrate to using the semi-opaque type rman_res_t to specify rman resources. For now, this is still compatible with u_long.
This is step one in migrating rman to use uintmax_t for resources instead of u_long.
Going forward, this could feasibly be used to specify architecture-specific definitions of resource ranges, rather than baking a specific integer type into the API.
This change has been broken out to facilitate MFC'ing drivers back to 10 without breaking ABI.
Reviewed By: jhb Sponsored by: Alex Perez/Inertial Computing Differential Revision: https://reviews.freebsd.org/D5075
|
292079 |
11-Dec-2015 |
imp |
Create a generic PCCARD_PNP_INFO from the MODULE_PNP_INFO building block. Use it in all the PNP drivers to export either the current PNP table. For uart, create a custom table and export it using MODULE_PNP_INFO since it's the only one that matches on function number.
Differential Review: https://reviews.freebsd.org/D3461
|
290855 |
15-Nov-2015 |
mav |
Increase reset assertion time from 10 to 100us.
On my own tests I see no effect from this change, but I also can't reproduce the reported problem in general.
PR: 127391 PR: 204554 Submitted by: satz@iranger.com MFC after: 2 weeks
|
289707 |
21-Oct-2015 |
mav |
Pass proper device to pci_read_config().
For some reason JMicron driver was different from others at this point.
|
286816 |
15-Aug-2015 |
mav |
Small addition to r286814.
Submitted by: bz MFC after: 2 weeks
|
286814 |
15-Aug-2015 |
mav |
Remove UMA allocation of ATA requests.
After CAM replaced old ATA stack, this driver processes no more then one request at a time per channel. Using UMA after that is overkill, so replace it with simple preallocation of one request per channel.
MFC after: 2 weeks
|
286448 |
08-Aug-2015 |
mav |
Disable 32-bit PIO for 6Gbit/s Intel SATA controllers.
For some reason 32-bit PIO writes are not working on 6Gbit/s Intel SATA ports, while 16/32-bit PIO reads and 16-bit PIO writes are working fine. 3Gbit/s ports on the same controllers have no this problem.
Workaround this by disabling 32-bit PIO for all Intel controllers that may have 6Gbit/s ports. It halves PIO performance from 6MB/s to 3MB/s, but who bother about speed of such rare and slow mode, which is also highly discouraged by SATA specifications?
MFC after: 2 weeks
|
286415 |
07-Aug-2015 |
mav |
Add unmapped I/O support to ata(4) driver.
Main problem there was PIO mode support, that required KVA mapping. Handle that case using recently added pmap_quick_enter_page(9) KPI, mapping data pages to KVA one at a time.
|
280451 |
24-Mar-2015 |
mav |
Remove from legacy ata(4) driver support for hardware, supported by newer and more functional drivers ahci(4), siis(4) and mvs(4).
This removes about 3400 lines of code, unused since FreeBSD 9.0 release.
|
280393 |
23-Mar-2015 |
mav |
Reduce priority of ATA/SATA drivers.
Legacy ata(4) -> BUS_PROBE_LOW_PRIORITY; more functional ahci(4), siis(4), mvs(4) -> BUS_PROBE_DEFAULT; BUS_PROBE_VENDOR leave for vendor drivers.
MFC after: 2 weeks
|
279963 |
13-Mar-2015 |
mav |
Fix SATA Gen3 speed constants.
MFC after: 1 week
|
275101 |
26-Nov-2014 |
mav |
Add bunch of PCI IDs of Intel Wildcat Point (9 Series) chipsets.
MFC after: 1 week
|
273328 |
20-Oct-2014 |
mav |
Add another PCI ID for JMB368 PATA controller.
MFC after: 1 week
|
269713 |
08-Aug-2014 |
imp |
err set but not used. Eliminate it.
|
268095 |
01-Jul-2014 |
marius |
Actually pro AMD chipsets.
MFC after: 3 days Sponsored by: Bally Wulff Games & Entertainment GmbH
|
267992 |
28-Jun-2014 |
hselasky |
Pull in r267961 and r267973 again. Fix for issues reported will follow.
|
267985 |
27-Jun-2014 |
gjb |
Revert r267961, r267973:
These changes prevent sysctl(8) from returning proper output, such as:
1) no output from sysctl(8) 2) erroneously returning ENOMEM with tools like truss(1) or uname(1) truss: can not get etype: Cannot allocate memory
|
267961 |
27-Jun-2014 |
hselasky |
Extend the meaning of the CTLFLAG_TUN flag to automatically check if there is an environment variable which shall initialize the SYSCTL during early boot. This works for all SYSCTL types both statically and dynamically created ones, except for the SYSCTL NODE type and SYSCTLs which belong to VNETs. A new flag, CTLFLAG_NOFETCH, has been added to be used in the case a tunable sysctl has a custom initialisation function allowing the sysctl to still be marked as a tunable. The kernel SYSCTL API is mostly the same, with a few exceptions for some special operations like iterating childrens of a static/extern SYSCTL node. This operation should probably be made into a factored out common macro, hence some device drivers use this. The reason for changing the SYSCTL API was the need for a SYSCTL parent OID pointer and not only the SYSCTL parent OID list pointer in order to quickly generate the sysctl path. The motivation behind this patch is to avoid parameter loading cludges inside the OFED driver subsystem. Instead of adding special code to the OFED driver subsystem to post-load tunables into dynamically created sysctls, we generalize this in the kernel.
Other changes: - Corrected a possibly incorrect sysctl name from "hw.cbb.intr_mask" to "hw.pcic.intr_mask". - Removed redundant TUNABLE statements throughout the kernel. - Some minor code rewrites in connection to removing not needed TUNABLE statements. - Added a missing SYSCTL_DECL(). - Wrapped two very long lines. - Avoid malloc()/free() inside sysctl string handling, in case it is called to initialize a sysctl from a tunable, hence malloc()/free() is not ready when sysctls from the sysctl dataset are registered. - Bumped FreeBSD version to indicate SYSCTL API change.
MFC after: 2 weeks Sponsored by: Mellanox Technologies
|
267589 |
17-Jun-2014 |
jhb |
Don't bother clearing maps for static DMA allocations to NULL. Instead, leave them as purely opaque values that are only set by bus_dmamem_alloc().
|
267340 |
10-Jun-2014 |
jhb |
Don't destroy bus_dma maps created by bus_dmamem_alloc(). In some cases, don't create a map before calling bus_dmamem_alloc() (such maps were leaked). It is believed that the extra destroy of the map was generally harmless since bus_dmamem_alloc() often uses special maps for which bus_dmamap_destroy() is a no-op (e.g. on x86).
Reviewed by: scottl
|
264389 |
12-Apr-2014 |
rpaulo |
Fix the style of ata_interrupt_locked().
|
264181 |
05-Apr-2014 |
rpaulo |
Add fsl,imx53.
|
261410 |
02-Feb-2014 |
ian |
Follow r261352 by updating all drivers which are children of simplebus to check the status property in their probe routines.
Simplebus used to only instantiate its children whose status="okay" but that was improper behavior, fixed in r261352. Now that it doesn't check anymore and probes all its children; the children all have to do the check because really only the children know how to properly interpret their status property strings.
Right now all existing drivers only understand "okay" versus something- that's-not-okay, so they all use the new ofw_bus_status_okay() helper.
|
258162 |
15-Nov-2013 |
mav |
Add some more IDs for Intel ATA, AHCI and USB controllers.
|
256843 |
21-Oct-2013 |
mav |
Merge CAM locking changes from the projects/camlock branch to radically reduce lock congestion and improve SMP scalability of the SCSI/ATA stack, preparing the ground for the coming next GEOM direct dispatch support.
Replace big per-SIM locks with bunch of smaller ones: - per-LUN locks to protect device and peripheral drivers state; - per-target locks to protect list of LUNs on target; - per-bus locks to protect reference counting; - per-send queue locks to protect queue of CCBs to be sent; - per-done queue locks to protect queue of completed CCBs; - remaining per-SIM locks now protect only HBA driver internals.
While holding LUN lock it is allowed (while not recommended for performance reasons) to take SIM lock. The opposite acquisition order is forbidden. All the other locks are leaf locks, that can be taken anywhere, but should not be cascaded. Many functions, such as: xpt_action(), xpt_done(), xpt_async(), xpt_create_path(), etc. are no longer require (but allow) SIM lock to be held.
To keep compatibility and solve cases where SIM lock can't be dropped, all xpt_async() calls in addition to xpt_done() calls are queued to completion threads for async processing in clean environment without SIM lock held.
Instead of single CAM SWI thread, used for commands completion processing before, use multiple (depending on number of CPUs) threads. Load balanced between them using "hash" of the device B:T:L address.
HBA drivers that can drop SIM lock during completion processing and have sufficient number of completion threads to efficiently scale to multiple CPUs can use new function xpt_done_direct() to avoid extra context switch. Make ahci(4) driver to use this mechanism depending on hardware setup.
Sponsored by: iXsystems, Inc. MFC after: 2 months
|
256304 |
10-Oct-2013 |
grehan |
Allow the legacy CDROM device to be accessed in a FreeBSD guest, while still using enlightened drivers for other block devices.
Submitted by: Microsoft hyperv dev team, mav@ Approved by: re@
|
254263 |
12-Aug-2013 |
scottl |
Update PCI drivers to no longer look at the MEMIO-enabled bit in the PCI command register. The lazy BAR allocation code in FreeBSD sometimes disables this bit when it detects a range conflict, and will re-enable it on demand when a driver allocates the BAR. Thus, the bit is no longer a reliable indication of capability, and should not be checked. This results in the elimination of a lot of code from drivers, and also gives the opportunity to simplify a lot of drivers to use a helper API to set the busmaster enable bit.
This changes fixes some recent reports of disk controllers and their associated drives/enclosures disappearing during boot.
Submitted by: jhb Reviewed by: jfv, marius, achadd, achim MFC after: 1 day
|
253644 |
25-Jul-2013 |
mav |
Add missing NULL check after malloc(M_NOWAIT).
Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com>
|
253475 |
19-Jul-2013 |
jfv |
Add new Coleto Creek device support: SATA, SMBus, and Watchdog devices.
MFC after: 1 week
|
252203 |
25-Jun-2013 |
mav |
Add test for SATA registers writability and skip using them if it failed.
There are some systems reported, where PCI BAR(5), used for SATA registers access, is present, but not functional. Attempt to use it brakes devices detection logic. Try to detect those cases on attach by setting and testing some bits in SControl register. If bits are unsettable, fallback to legacy ATA without hot-plug detection, speed control/reporting, etc.
MFC after: 2 weeks
|
251945 |
18-Jun-2013 |
mav |
Pass proper memory type to free() in ata_ali_chipinit().
Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com> MFC after: 1 week
|
250576 |
12-May-2013 |
eadler |
Fix several typos
PR: kern/176054 Submitted by: Christoph Mallon <christoph.mallon@gmx.de> MFC after: 3 days
|
249476 |
14-Apr-2013 |
kib |
Usnure that PCI bus BIS_GET_DMA_TAG() method sees the actual PCI device which makes the request for dma tag, instead of some descendant of the PCI device, by creating a pass-through trampoline for vga_pci and ata_pci buses.
Sponsored by: The FreeBSD Foundation Suggested by: jhb Discussed with: jhb, mav MFC after: 1 week
|
249213 |
06-Apr-2013 |
marius |
- With the demise of !ATA_CAM, ATA_STATIC_ID is the only ata(4) related option left but actually consumed by ada(4), so move it to opt_ada.h and get rid of opt_ata.h. - Fix stand-alone build of atacore(4) by adding opt_cam.h. - Use __FBSDID. - Use DEVMETHOD_END. - Use NULL instead of 0 for pointers.
|
249203 |
06-Apr-2013 |
marius |
- Make ata_str2mode() static, it's not used outside of ata-all.c. - Move ata_timeout() to ata-all.c so we don't need to expose both this function and ata_cam_end_transaction() but only the former. - Move ata_cmd2str() from ata-queue.c to ata-all.c so we can get rid of the former. - Add some missing prototypes.
MFC after: 3 days
|
249202 |
06-Apr-2013 |
marius |
Remove some more remnants of !ATA_CAM.
|
249199 |
06-Apr-2013 |
marius |
Unbreak ATA_NO_48BIT_DMA with ATA_CAM by treating 48-bit DMA as an optional property with PATA transport.
Reviewed by: mav MFC after: 3 days
|
249083 |
04-Apr-2013 |
mav |
Remove all legacy ATA code parts, not used since options ATA_CAM enabled in most kernels before FreeBSD 9.0. Remove such modules and respective kernel options: atadisk, ataraid, atapicd, atapifd, atapist, atapicam. Remove the atacontrol utility and some man pages. Remove useless now options ATA_CAM.
No objections: current@, stable@ MFC after: never
|
249062 |
03-Apr-2013 |
mav |
Since ATA_CAM mode has no implemented support for serializing access to the different ATA channels, required for acard and pc98 ATA controllers, block access to second channels of both, hoping that one working channel is better then none. I have an idea how that support could be implemented, but I have no hardware to work on that.
MFC after: 1 week
|
249052 |
03-Apr-2013 |
mav |
Add some more ATA_CAM ifdefs.
Submitted by: marius (partially) MFC after: 1 week
|
248557 |
20-Mar-2013 |
ray |
Integrate Efika MX project back to home.
Sponsored by: The FreeBSD Foundation
|
247165 |
22-Feb-2013 |
mav |
Fix command timeout caused by data underrun during fetching ATAPI sense data, introduced by r246713. There are two places where ata_request is filled in ATA_CAM: ata_cam_begin_transaction() and ata_cam_request_sense(). In the first case DMA should be done for addresses from the CCB. In second case, DMA should be done to the different address, the address of the sense buffer inside the CCB structure itself.
|
246713 |
12-Feb-2013 |
kib |
Reform the busdma API so that new types may be added without modifying every architecture's busdma_machdep.c. It is done by unifying the bus_dmamap_load_buffer() routines so that they may be called from MI code. The MD busdma is then given a chance to do any final processing in the complete() callback.
The cam changes unify the bus_dmamap_load* handling in cam drivers.
The arm and mips implementations are updated to track virtual addresses for sync(). Previously this was done in a type specific way. Now it is done in a generic way by recording the list of virtuals in the map.
Submitted by: jeff (sponsored by EMC/Isilon) Reviewed by: kan (previous version), scottl, mjacob (isp(4), no objections for target mode changes) Discussed with: ian (arm changes) Tested by: marius (sparc64), mips (jmallet), isci(4) on x86 (jharris), amd64 (Fabian Keil <freebsd-listen@fabiankeil.de>)
|
246257 |
02-Feb-2013 |
marius |
Improve r238673 to additionally allow for odd-aligned buffers as passed in by smartd of smartmontools. While at it, hint the compiler that 32-bit PIO is the most likely case (idea from Linux) and use bus_{read,write}_stream_2(9) instead of bus_{read,write}_multi_stream_2(9) for single count reads/writes.
MFC after: 1 week
|
245446 |
15-Jan-2013 |
mav |
In case somebody still use it, fix legacy ataraid(4) to work on combined PATA+AHCI controllers, such as JMicron JMB363.
PR: kern/159271 MFC after: 1 week
|
244983 |
02-Jan-2013 |
jfv |
Add Intel Lynx Point PCH SATA Controller Device IDs
|
244146 |
12-Dec-2012 |
mav |
Add IDs for SATA controllers on AMD Hudson-2 series chipsets. I am not exactly sure about the naming due to lack of specs on AMD site, but it is better to have some identification then none at all.
MFC after: 1 month
|
242625 |
05-Nov-2012 |
dim |
Remove duplicate const specifiers in many drivers (I hope I got all of them, please let me know if not). Most of these are of the form:
static const struct bzzt_type { [...list of members...] } const bzzt_devs[] = { [...list of initializers...] };
The second const is unnecessary, as arrays cannot be modified anyway, and if the elements are const, the whole thing is const automatically (e.g. it is placed in .rodata).
I have verified this does not change the binary output of a full kernel build (except for build timestamps embedded in the object files).
Reviewed by: yongari, marius MFC after: 1 week
|
242422 |
01-Nov-2012 |
mav |
Only four specific ATA PIO commands transfer several sectors per DRQ block (interrupt). All other ATA PIO commands transfer one sector or 512 bytes at one time. Hardcode these exceptions in ata(4) with ATA_CAM option. This fixes timeout of READ LOG EXT command used by `smartctl -x /dev/adaX`.
|
242156 |
26-Oct-2012 |
mav |
Implement CAM_ATAIO_NEEDRESULT (fetching full set of result registers) for ata(4) driver in ATA_CAM mode. That slighty improves error reporting and also should fix `smartctl -l scterc /dev/adaX` operation.
MFC after: 3 weeks
|
241402 |
10-Oct-2012 |
mav |
Add checks for ata_sata_scr_read() return statuses. It is mostly to silence Clang Static Analyzer warnings as errors there are usually unlikely.
|
241160 |
03-Oct-2012 |
mav |
Fix build without `options ATA_CAM`, broken by r241144.
|
241144 |
02-Oct-2012 |
mav |
Implement SATA revision (speed) control for legacy SATA controller for both boot (via loader tunables) and run-time (via `camcontrol negotiate`). Tested to work at least on NVIDIA MCP55 chipset.
H/w provided by: glebius
|
240627 |
18-Sep-2012 |
kevlo |
Remove bogus break statements.
Obtained from: DragonFly
|
239907 |
30-Aug-2012 |
mav |
Add IDs for JMicron JMB360/JMB362 AHCI SATA controllers.
MFC after: 1 week
|
238673 |
21-Jul-2012 |
mav |
Use 16bit PIO instead of 32bit in case of misaligned buffer. It fixes kernel panic during CD write with cdrecord on sparc64.
|
238666 |
21-Jul-2012 |
mav |
Fix typo in bzero length argument during sense fetching. For me it at least fixed CD burning in PIO mode.
MFC after: 3 days
|
238203 |
07-Jul-2012 |
eadler |
Remove variables which are initialized but never used thereafter reported by gcc46 warning
Approved by: cperciva MFC after: 1 week
|
237107 |
14-Jun-2012 |
marius |
- As a baind-aid, disable ATAPI DMA when using ATA_CAM for these controllers as well as it causes the kernel to hang during boot. Reported and tested by: Kevin Oberman - Use NULL instead of 0 for a pointer.
MFC after: 3 days
|
236847 |
10-Jun-2012 |
mav |
Partially revert r236666: Return PROTO_ATA protocol in response to XPT_PATH_INQ.
smartmontools uses it to identify ATA devices and I don't know any other place now where it is important. It could probably use XPT_GDEV_TYPE instead for more accurate protocol information, but let it live for now.
Reported by: matthew MFC after: 3 days
|
236666 |
06-Jun-2012 |
mav |
ATA/SATA controllers have no idea about protocol of the connected device until transport will do some probe actions (at least soft reset). Make ATA/SATA SIMs to not report bogus and confusing PROTO_ATA protocol. Make ATA/SATA transport to fill that gap by reporting protocol to SIM with XPT_SET_TRAN_SETTINGS and patching XPT_GET_TRAN_SETTINGS results if needed.
|
236184 |
28-May-2012 |
mav |
Make legacy ATA to not call device_add_child() with unit number but without driver name. This fixed legacy ATA breakage by r235978.
MFC after: 1 week
|
235333 |
12-May-2012 |
mav |
Add two functions xpt_batch_start() and xpt_batch_done() to the CAM SIM KPI to allow drivers to handle request completion directly without passing them to the CAM SWI thread removing extra context switch. Modify all ATA/SATA drivers to use them.
Reviewed by: gibbs, ken MFC after: 2 weeks
|
233282 |
21-Mar-2012 |
marius |
- First pass at const'ifying ata(4) as appropriate. - Use DEVMETHOD_END. - Use NULL instead of 0 for pointers
MFC after: 1 week
|
233274 |
21-Mar-2012 |
marius |
Remove remnants of ATA_LOCKING uses in the ATA_CAM case and wrap it along with functions, SYSCTLs and tunables that are not used with ATA_CAM in #ifndef ATA_CAM, similar to the existing #ifdef'ed ATA_CAM code for the other way around. This makes it easier to understand which parts of ata(4) actually are used in the new world order and to later on remove the !ATA_CAM bits. It also makes it obvious that there is something fishy with the C-bus front-end as well as in the ATP850 support, as these used ATA_LOCKING which is defunct in the ATA_CAM case. When fixing the former, ATA_LOCKING probably needs to be brought back in some form or other.
Reviewed by: mav MFC after: 1 week
|
232380 |
02-Mar-2012 |
mav |
Fix names of some Marvell SATA chips. It looks like chips with proprietary interface supported by mvs(4) are 88SX, while AHCI-like chips are 88SE.
PR: kern/165271 Submitted by: Jia-Shiun Li <jiashiun@gmail.com> MFC after: 1 week
|
231573 |
13-Feb-2012 |
emaste |
Fix panic after "WARNING - ATA_IDENTIFY taskqueue timeout"
When performing a firmware upgrade via atacontrol[1] the subsequent command may time out producing the error message above. When this happens the callout could still be active, and the system would then panic due to a destroyed semaphore.
Instead, ensure that the callout is done first, via callout_drain.
Note that this fix applies to the "old" ata(4) and so isn't applicable to the default configuration in HEAD. It is still applicable to stable/8.
[1] http://lists.freebsd.org/pipermail/freebsd-current/2012-January/031122.html
Submitted by: Nima Misaghian Reviewed by: rstone, attilio, mav Obtained from: SVOS MFC after: 3 days
|
230627 |
27-Jan-2012 |
marius |
Using ATA_CAM along with ATAPI DMA causes data corruption with ALI_NEW and CMD controllers for reasons unknown so disable it.
PR: 164226
|
230132 |
15-Jan-2012 |
uqs |
Convert files to UTF-8
|
229997 |
12-Jan-2012 |
ken |
Add the CAM Target Layer (CTL).
CTL is a disk and processor device emulation subsystem originally written for Copan Systems under Linux starting in 2003. It has been shipping in Copan (now SGI) products since 2005.
It was ported to FreeBSD in 2008, and thanks to an agreement between SGI (who acquired Copan's assets in 2010) and Spectra Logic in 2010, CTL is available under a BSD-style license. The intent behind the agreement was that Spectra would work to get CTL into the FreeBSD tree.
Some CTL features:
- Disk and processor device emulation. - Tagged queueing - SCSI task attribute support (ordered, head of queue, simple tags) - SCSI implicit command ordering support. (e.g. if a read follows a mode select, the read will be blocked until the mode select completes.) - Full task management support (abort, LUN reset, target reset, etc.) - Support for multiple ports - Support for multiple simultaneous initiators - Support for multiple simultaneous backing stores - Persistent reservation support - Mode sense/select support - Error injection support - High Availability support (1) - All I/O handled in-kernel, no userland context switch overhead.
(1) HA Support is just an API stub, and needs much more to be fully functional.
ctl.c: The core of CTL. Command handlers and processing, character driver, and HA support are here.
ctl.h: Basic function declarations and data structures.
ctl_backend.c, ctl_backend.h: The basic CTL backend API.
ctl_backend_block.c, ctl_backend_block.h: The block and file backend. This allows for using a disk or a file as the backing store for a LUN. Multiple threads are started to do I/O to the backing device, primarily because the VFS API requires that to get any concurrency.
ctl_backend_ramdisk.c: A "fake" ramdisk backend. It only allocates a small amount of memory to act as a source and sink for reads and writes from an initiator. Therefore it cannot be used for any real data, but it can be used to test for throughput. It can also be used to test initiators' support for extremely large LUNs.
ctl_cmd_table.c: This is a table with all 256 possible SCSI opcodes, and command handler functions defined for supported opcodes.
ctl_debug.h: Debugging support.
ctl_error.c, ctl_error.h: CTL-specific wrappers around the CAM sense building functions.
ctl_frontend.c, ctl_frontend.h: These files define the basic CTL frontend port API.
ctl_frontend_cam_sim.c: This is a CTL frontend port that is also a CAM SIM. This frontend allows for using CTL without any target-capable hardware. So any LUNs you create in CTL are visible in CAM via this port.
ctl_frontend_internal.c, ctl_frontend_internal.h: This is a frontend port written for Copan to do some system-specific tasks that required sending commands into CTL from inside the kernel. This isn't entirely relevant to FreeBSD in general, but can perhaps be repurposed.
ctl_ha.h: This is a stubbed-out High Availability API. Much more is needed for full HA support. See the comments in the header and the description of what is needed in the README.ctl.txt file for more details.
ctl_io.h: This defines most of the core CTL I/O structures. union ctl_io is conceptually very similar to CAM's union ccb.
ctl_ioctl.h: This defines all ioctls available through the CTL character device, and the data structures needed for those ioctls.
ctl_mem_pool.c, ctl_mem_pool.h: Generic memory pool implementation used by the internal frontend.
ctl_private.h: Private data structres (e.g. CTL softc) and function prototypes. This also includes the SCSI vendor and product names used by CTL.
ctl_scsi_all.c, ctl_scsi_all.h: CTL wrappers around CAM sense printing functions.
ctl_ser_table.c: Command serialization table. This defines what happens when one type of command is followed by another type of command.
ctl_util.c, ctl_util.h: CTL utility functions, primarily designed to be used from userland. See ctladm for the primary consumer of these functions. These include CDB building functions.
scsi_ctl.c: CAM target peripheral driver and CTL frontend port. This is the path into CTL for commands from target-capable hardware/SIMs.
README.ctl.txt: CTL code features, roadmap, to-do list.
usr.sbin/Makefile: Add ctladm.
ctladm/Makefile, ctladm/ctladm.8, ctladm/ctladm.c, ctladm/ctladm.h, ctladm/util.c: ctladm(8) is the CTL management utility. It fills a role similar to camcontrol(8). It allow configuring LUNs, issuing commands, injecting errors and various other control functions.
usr.bin/Makefile: Add ctlstat.
ctlstat/Makefile ctlstat/ctlstat.8, ctlstat/ctlstat.c: ctlstat(8) fills a role similar to iostat(8). It reports I/O statistics for CTL.
sys/conf/files: Add CTL files.
sys/conf/NOTES: Add device ctl.
sys/cam/scsi_all.h: To conform to more recent specs, the inquiry CDB length field is now 2 bytes long.
Add several mode page definitions for CTL.
sys/cam/scsi_all.c: Handle the new 2 byte inquiry length.
sys/dev/ciss/ciss.c, sys/dev/ata/atapi-cam.c, sys/cam/scsi/scsi_targ_bh.c, scsi_target/scsi_cmds.c, mlxcontrol/interface.c: Update for 2 byte inquiry length field.
scsi_da.h: Add versions of the format and rigid disk pages that are in a more reasonable format for CTL.
amd64/conf/GENERIC, i386/conf/GENERIC, ia64/conf/GENERIC, sparc64/conf/GENERIC: Add device ctl.
i386/conf/PAE: The CTL frontend SIM at least does not compile cleanly on PAE.
Sponsored by: Copan Systems, SGI and Spectra Logic MFC after: 1 month
|
229671 |
06-Jan-2012 |
jimharris |
Add 0x2826 device ID for C600 (Patsburg) SATA controller in RAID mode.
Reviewed by: mav Approved by: scottl
|
229272 |
02-Jan-2012 |
ed |
Use strchr() and strrchr().
It seems strchr() and strrchr() are used more often than index() and rindex(). Therefore, simply migrate all kernel code to use it.
For the XFS code, remove an empty line to make the code identical to the code in the Linux kernel.
|
228497 |
14-Dec-2011 |
mav |
Add PCI IDs for the Intel ICH9M SATA controllers.
MFC after: 2 weeks
|
228200 |
02-Dec-2011 |
mav |
Add hw.ahci.force tunable to control whether AHCI drivers should attach to known AHCI-capable chips (AMD/NVIDIA), configured for legacy emulation.
Enabled by default to get additional performance and functionality of AHCI when it can't be enabled by BIOS. Can be disabled to honor BIOS settings if needed for some reason.
MFC after: 1 month
|
227849 |
22-Nov-2011 |
hselasky |
Rename device_delete_all_children() into device_delete_children().
Suggested by: jhb @ and marius @ MFC after: 1 week
|
227701 |
19-Nov-2011 |
hselasky |
Move the device_delete_all_children() function from usb_util.c to kern/subr_bus.c. Simplify this function so that it no longer depends on malloc() to execute. Identify a few other places where it makes sense to use device_delete_all_children().
MFC after: 1 week
|
227309 |
07-Nov-2011 |
ed |
Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.
The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
|
227000 |
01-Nov-2011 |
marius |
In r225931 I've missed the only other driver using the pointer returned by rman_get_virtual(9) to access device registers sparc64 currently cares about. Ideally ata(4) should just be converted to access these using bus_space(9) read/write functions instead as there's really no reason to do it the former way. However, this part of ata-siliconimage.c should go away in favor of siis(4) sooner or later anyway and I don't have the hardware to actually test the SX4 bits of ata-promise.c. Also ideally the other architectures should also properly handle the BUS_SPACE_MAP_LINEAR flag of bus_space_map(9) so this code wouldn't need to be #ifdef'ed.
|
226680 |
24-Oct-2011 |
mav |
Some dmesg cosmetics: - for the legacy PCI ATA channels move channel number out of the device description, same as it is for ahci(4), siis(4) and mvs(4); - add device description for the ISA ATA channels.
|
226179 |
09-Oct-2011 |
rodrigc |
Add a "kern.features.ata_cam" sysctl in the kernel when the ATA_CAM kernel option is defined. This sysctl can be queried by feature_present(3).
Query for this feature in /sbin/atacontrol and /usr/sbin/burncd. If these utilities detect that ATA_CAM is enabled, then these utilities will error out. These utilities are compatible with the old ATA driver, but are incomptible with the new ATA_CAM driver. By erroring out, we give end-users an idea as to what remedies to use, and reduce the need for them to file PR's. For atacontrol, camcontrol must be used instead, and for burncd, alternative utilties from the ports collection must be used such as sysutils/cdrtools.
In future, maybe someone can re-write burncd to work with ATA_CAM, but at least for now, we give a somewhat useful error message to end users.
PR: 160979 Reviewed by: jh, Arnaud Lacombe <lacombar at gmail dot com> Reported by: Joe Barbish <fbsd8 at a1poweruser dot com> MFC after: 3 days
|
226064 |
06-Oct-2011 |
wxs |
Fix a typo in a comment.
Approved by: kib@
|
224603 |
02-Aug-2011 |
mav |
Do not force AHCI mode on NVIDIA MCP89 SATA controllers. Recent Apple Mac with this chipset does not initialize AHCI mode unless it is started from EFI loader. However, legacy ATA mode works.
Submitted by: jkim@ (original version) Approved by: re (kib) MFC after: 1 week
|
224270 |
22-Jul-2011 |
mav |
- Use mutex to serialize index/data register pair usage, when accessing SATA registers. Unserialized access under heavy load caused wrong speed reporting and potentially could cause device loss. - To free memory and other resources (including above), allocated during chipinit() method call on attach, add new chipdeinit() method, called during driver detach.
Submitted by: Andrew Boyer <aboyer@averesystems.com> (initial version) Approved by: re (kib) MFC after: 1 week
|
223097 |
14-Jun-2011 |
mav |
Skip BAR(5) usage for SATA registers access on ICH8M Apples, because for some reason it causes system lock up. Linux does the same.
MFC after: 1 week
|
222897 |
09-Jun-2011 |
mav |
Intel NM10 chipset's SATA controller has same PCI ID and revision as ICH7's, but has only 2 SATA ports instead of 4. The worst part is that SStatus and SError registers for missing ports are not implemented and return wrong values (0xffffffff), that caused infinite reset loop.
Just ignore that SError value while I found no better way to identify them.
|
221789 |
11-May-2011 |
jfv |
Chipset support for the new Intel Panther Point PCH, thanks to Seth Heasley for preparing the changes.
|
220929 |
21-Apr-2011 |
mav |
According to ATA specifications, when ATAPI master is the only device, it should respond with all zeroes to any access to slave registers. Test with PATA devices confirmed such behavior. Unluckily, Intel SATA controllers in legacy emulation mode behave differently, not making any difference between ATA and ATAPI devices. It causes false positive slave device detection and, as result, command timeouts.
To workaround this problem, mask result of legacy-emulated soft-reset with the device presence information received from the SATA-specific registers.
|
220920 |
21-Apr-2011 |
mav |
- Fix mapping of the last two SATA ports on 6-port Intel controllers. This improves hard-reset and hot-plug on these ports. - Device with ID 0x29218086 is a 2-port variant of ICH9 in legacy mode. Skip probing for nonexistent slave devices there.
|
220917 |
21-Apr-2011 |
mav |
Use periodic status polling added at r214671 only in ATA_CAM mode. Legacy mode won't receive much benefit from it due to its hot-plug limitations.
|
220911 |
21-Apr-2011 |
mav |
Make PATA-like soft-reset in ata(4) more strict in checking disk signature. It allows to avoid false positive device detection under Xen, that caused long probe delays due to subsequent IDENTIFY command timeouts.
MFC after: 1 month
|
220563 |
12-Apr-2011 |
mav |
Implement automatic SCSI sense fetching for ata(4) in ATA_CAM mode. While it could be successfully done by CAM error recovery code, I was told by several people that it is also a SIM obligation.
|
219338 |
06-Mar-2011 |
marius |
Add missing bus_dmamap_sync() calls for the work DMA map.
MFC after: 2 weeks
|
219337 |
06-Mar-2011 |
marius |
Add missing bus_dmamap_sync() calls for the work DMA map.
MFC after: 2 weeks
|
219336 |
06-Mar-2011 |
marius |
- Allocate the DMA memory used for the work area as coherent as at least the ataahci(4) and atamarvell(4) drivers share it between the host and the controller. - Spell some zeros as BUS_DMA_WAITOK when used as bus_dmamem_alloc() flags.
MFC after: 2 weeks
|
219056 |
26-Feb-2011 |
nwhitehorn |
Add the disk ident and a human-meaningful description (here, the disk model string) to the geom_disk config XML so that they are easily accessible from userland.
MFC after: 1 week
|
218149 |
01-Feb-2011 |
jfv |
Support for the new Patsburg PCH chipset: - SMBus Controller - SATA Controller - HD Audio Controller - Watchdog Controller
Thanks to Seth Heasley (seth.heasley@intel.com) for providing us code.
MFC after 3 days
|
218140 |
31-Jan-2011 |
jfv |
Support for the new DH89xxCC PCH chipset including: - SATA controller - Watchdog timer - SMBus controller
|
217774 |
24-Jan-2011 |
mav |
ICH7 SATA controller in legacy mode can provide access to SATA registers via AHCI-like memory resource at BAR(5). Use it if BIOS was so kind to allocate memory for that BAR. This allows hot-plug support and connection speed reporting.
MFC after: 2 weeks
|
216013 |
28-Nov-2010 |
marius |
Several chipset drivers alter parameters relevant for the DMA tag creation, i.e. alignment, max_address, max_iosize and segsize (only max_address is thought to have an negative impact regarding this issue though), after calling ata_dmainit() either directly or indirectly so these values have no effect or at least no effect on the DMA tags and the defaults are used for the latter instead. So change the drivers to set these parameters up-front and ata_dmainit() to honor them.
Reviewd by: mav MFC after: 1 month
|
215936 |
27-Nov-2010 |
mav |
Do hard reset before soft reset for SATA channels. Soft reset reported to be not enough to restore device readiness in some situations.
Tested by: Roger Hammerstein <cheeky.m@live.com> on ServerWorks HT1000.
|
215468 |
18-Nov-2010 |
mav |
Make ATA_CAM wrapper to report SATA power management capabilities to CAM to make it configure device to initiate transitions if controller configured to accept them. This makes hint.ata.X.pm_level=1 mode working.
|
215453 |
18-Nov-2010 |
mav |
Even if we are skipping SATA hard reset - set power management bits in SControl register. This should make things consistent and help to avoid unexpected PHY events that I've noticed in some cases on VIA controllers.
|
215451 |
18-Nov-2010 |
mav |
Record that there is no devices if SATA reset found none.
|
215449 |
18-Nov-2010 |
mav |
Some VIA SATA controllers provide access to non-standard SATA registers via PCI config space. Use them to implement hot-plug and link speed reporting. Tested on ASRock PV530 board with VX900 chipset.
|
215431 |
17-Nov-2010 |
mav |
Add IDs for VIA VX900 chipset SATA controller. (Missed part of r215428)
|
215428 |
17-Nov-2010 |
mav |
Add IDs for VIA VX900 chipset SATA controller.
MFC after: 1 week
|
215034 |
09-Nov-2010 |
brucec |
Fix typos.
PR: bin/148894 Submitted by: olgeni
|
214988 |
08-Nov-2010 |
mav |
Teach ahci(4), siis(4) and ATA_CAM ata(4) wrapper report to CAM residual I/O length on underruns, that often happens for some SCSI commands.
|
214896 |
06-Nov-2010 |
mav |
Mark command submission timeouts as timeouts. This should trigger device resets and increase chances of getting device back again.
|
214880 |
06-Nov-2010 |
mav |
Add support for odd-sized PIO transfers, sometimes used by ATAPI.
|
214672 |
02-Nov-2010 |
mav |
Remove stale line, accidentally slipped into r214016.
MFC after: 3 days
|
214016 |
18-Oct-2010 |
mav |
Set of legacy mode SATA enchancements: - Implement proper combined mode decoding for Intel controllers to properly identify SATA and PATA channels and associate ATA channels with SATA ports. This fixes wrong reporting and in some cases hard resets to wrong SATA ports. - Improve SATA registers support to handle hot-plug events and potentially interface errors. For ICH5/6300ESB chipsets these registers accessible via PCI config space. For later ones they may be accessible via PCI BAR(5). - For controllers not generating interrupts on hot-plug events, implement periodic status polling. Use it to detect hot-plug on Intel and VIA controllers. Same probably could also be used for Serverworks and SIS.
|
213301 |
30-Sep-2010 |
mav |
Revert r132291. Restore setting PIO/WDMA timings for VIA UDMA133 controllers. Linux disables only AST register writing there, but no all timings.
|
213092 |
24-Sep-2010 |
mav |
Add missing le32toh(), same as recently done in ata-siliconimage.c.
|
213047 |
23-Sep-2010 |
jchandra |
Add missing byteswap, works on big endian systems now (tested on Netlogic XLS MIPS processor).
Submitted by: Sreekanth M. S. <kanthms at netlogicmicro dot com> Reviewed by: mav
|
212359 |
09-Sep-2010 |
nwhitehorn |
Fix a problem where device detection would work unreliably on Serverworks K2 SATA controllers. The chip's status register must be read first, and as a long, for other registers to be correctly updated after a command, and this includes the command sequence in device detection as well as the previously handled case after interrupts. While here, clean up some previous hacks related to this controller.
Reported by: many Reviewed by: mav MFC after: 3 weeks
|
212146 |
02-Sep-2010 |
mav |
Add fix for SiI3114 and SiI3512 chips bug, which caused sending R_ERR in response to DMA activate FIS under certain circumstances. This is recommended fix from chip datasheet. If triggered, this bug most likely cause write command timeout.
MFC after: 2 weeks
|
212145 |
02-Sep-2010 |
mav |
SATA1.x SiliconImage controllers on power-on reset TFD Status register into value 0xff. On hot-plug this value confuses ata_generic_reset() device presence detection logic. As soon as we already know drive presence from SATA hard reset, hint ata_generic_reset() to wait for device signature until success or full timeout.
|
212081 |
01-Sep-2010 |
mav |
Increase device reset timeout from 10 to 15 seconds, same as in ahci(4). Some devices found need about 10-12 seconds to spinup.
|
211920 |
28-Aug-2010 |
mav |
Add Intel Cougar Point PCH SATA Controller DeviceIDs. Correct some existing entries for Intel Ibex Peak (5 Series/3400 Series) PCH SATA controllers.
Submitted by: jfv@ MFC after: 1 week
|
210471 |
25-Jul-2010 |
mav |
Export PCI IDs of ATA/SATA controllers through CAM and ata(4) layers to GEOM. This information needed for proper soft-RAID's on-disk metadata reading and writing.
|
210168 |
16-Jul-2010 |
mav |
Make legacy ATA emulation detection more strict. This should fix false positive legacy detection and attach failure/panic for Marvell 88SX6141 controller and potentially some others.
PR: kern/145064
|
210165 |
16-Jul-2010 |
mav |
Improve interrupt setup errors handling.
|
209977 |
13-Jul-2010 |
mav |
Disable multi-sector PIO transfers if ATA_SET_MULTI command failed.
Submitted by: Mikolaj Golub on fs@
|
209944 |
12-Jul-2010 |
mav |
Revert and remake r209883: Do not grab lock while setting up interrupt, as it causes LOR with allocation code. Instead make interrupt handler check that CAM bus initialization completed before touching it.
While there, slightly improve attach errors handling.
Reported by: kib
|
209884 |
10-Jul-2010 |
mav |
If ata_sata_phy_reset() failed and ata_generic_reset() is not called, mark channel as having no devices connected. This improves hot-unplug operation on legacy-emulating SATA controllers.
|
209883 |
10-Jul-2010 |
mav |
On attach, grab channel lock before setting up interrupt. This fixes crash in ATA_CAM mode if phy connect event arrive before CAM bus initialization completed.
|
209872 |
10-Jul-2010 |
mav |
Make hw.ata.ata_dma_check_80pin tunable affect not only device side, but also controller side cable checks. Make respective sysctl writable.
PR: kern/143462
|
209683 |
04-Jul-2010 |
imp |
Add a safety-belt. If the identified disk has 0 blocks, don't attach it. This can happen in some cases when plugging in SD/SmartCard PC Cards with empty slots. It is better to detect this bogosity, and refuse to attach rather than panic with a division by zero (in one of many places) down stream.
|
209682 |
04-Jul-2010 |
imp |
Minor formatting nits.
|
209664 |
03-Jul-2010 |
mav |
Add ata(4) ability to limit initial ATA mode for devices via device hints. After boot this mode can be changed with atacontrol/camcontrol as usual. It works for both legacy and ATA_CAM wrapper mode.
PR: kern/123980
|
209300 |
18-Jun-2010 |
nwhitehorn |
Following r209299, level interrupts are low by default on PPC, so remove the hack here to reprogram the interrupt for K2 SATA devices.
|
208870 |
06-Jun-2010 |
nwhitehorn |
Some revisions of the Serverworks K2 SATA controller have a data corruption bug where if an ATA command is issued before DMA is started, data will become available to the controller before it knows what to do with it. This results in either data corruption or a controller crash.
This patch remedies the problem by adopting the workaround employed by Linux and Darwin: starting the DMA engine prior to sending the ATA command.
Observer on: Xserve G5 Reviewed by: mav MFC after: 1 week
|
208837 |
05-Jun-2010 |
nwhitehorn |
Correct the comment. We now use level low instead of edge high for this interrupt.
|
208836 |
05-Jun-2010 |
nwhitehorn |
Partially revert r208162 while waiting for review on a more comprehensive fix. On Apple OpenPICs, the low/high bit of the interrupt sense is only respected for interrupt 0. We currently erroneously program all OpenPIC interrupts level high instead of level low by default, which only matters for some G5 systems where the SATA controllers use IRQ 0.
This change is a quick fix that will be reverted once the effect of changing the default interrupt sense on embedded systems is known.
MFC after: 3 days
|
208822 |
05-Jun-2010 |
mav |
Fix possible use after free.
Found with: Coverity Prevent(tm) CID: 4634
|
208820 |
05-Jun-2010 |
mav |
Fix use after free on error.
Found with: Coverity Prevent(tm) CID: 4722
|
208796 |
04-Jun-2010 |
mav |
Fix PCH chipset IDs. They are 0x3bxx, not 0x3axx.
Pointy hat to: me
|
208410 |
22-May-2010 |
mav |
Report ATA/SATA channel number to NewBus at location string.
|
208375 |
21-May-2010 |
mav |
Improve suspend/resume support. Make sure controller is idle on suspend and reset it on resume.
|
208349 |
20-May-2010 |
marius |
Change ad_firmware_geom_adjust() to operate on a struct disk * only and hook it up to ada(4) also. While at it, rename *ad_firmware_geom_adjust() to *ata_disk_firmware_geom_adjust() etc now that these are no longer limited to ad(4).
Reviewed by: mav MFC after: 3 days
|
208162 |
16-May-2010 |
nwhitehorn |
Relocate interrupt sense setting for K2 SATA from the ATA driver to the OFW PCI layer and read the sense directly from the device tree instead of guessing.
MFC after: 1 week
|
207432 |
30-Apr-2010 |
mav |
Add Target/LUN ID checks.
|
207221 |
26-Apr-2010 |
mav |
Mark ATA channel as idle on timeout in non-ATA_CAM mode. This should fix possible duplicate request completion.
Submitted by: mjacob
|
206604 |
14-Apr-2010 |
mav |
For early ALI chips do not announce I/O sizes that require unsupported 48bit DMA commands.
|
205967 |
31-Mar-2010 |
mav |
Include opt_ata.h, as some structures here depending on ATA_CAM option. This fixes ATA_CAM with atamvsata and probably some other drivers.
|
205680 |
26-Mar-2010 |
mav |
Use last 16 bytes of serial number in metadata instead of first ones, same as Intel MatrixRAID does.
PR: kern/124064
|
205074 |
12-Mar-2010 |
mav |
Mask disk_idx to avoid panic because of extra bits set.
PR: kern/102211 Submitted by: yoichi
|
204509 |
01-Mar-2010 |
mav |
- Add ALI M5228 PATA ID. - Add missed DMA initialization for ALI SATA chips.
|
204250 |
23-Feb-2010 |
mav |
Fix recursive lock attempt on hot-plug event in non-ATA_CAM mode.
|
204216 |
22-Feb-2010 |
mav |
Oops! Wrong word order. :(
|
204210 |
22-Feb-2010 |
mav |
Add Intel PCH SATA controller IDs.
|
204195 |
22-Feb-2010 |
mav |
Improve output for controllers that doesn't report SATA speed.
|
203525 |
05-Feb-2010 |
mav |
Report SATA300 chips also as SATA.
|
203449 |
03-Feb-2010 |
mav |
Implement poll method for atapicam. It is not perfect, but better then nothing.
|
203445 |
03-Feb-2010 |
mav |
Report to CAM unit number of underlying ataX bus device, instead of this atapicamX. It is more apropriate and useful together with "ata" name.
|
203376 |
02-Feb-2010 |
mav |
- Give ATA/SATA SIMs info about ATAPI packet size, supported by device. - Make ATA XPT to reject longer SCSI CDBs then supported by device, or any SCSI CDBs, if device doesn't support ATAPI.
|
203347 |
01-Feb-2010 |
mav |
NetCell is a PCI hardware RAID without cable and mode setting.
|
203108 |
28-Jan-2010 |
mav |
MFp4: Large set of CAM inprovements.
- Unify bus reset/probe sequence. Whenever bus attached at boot or later, CAM will automatically reset and scan it. It allows to remove duplicate code from many drivers. - Any bus, attached before CAM completed it's boot-time initialization, will equally join to the process, delaying boot if needed. - New kern.cam.boot_delay loader tunable should help controllers that are still unable to register their buses in time (such as slow USB/ PCCard/ CardBus devices), by adding one more event to wait on boot. - To allow synchronization between different CAM levels, concept of requests priorities was extended. Priorities now split between several "run levels". Device can be freezed at specified level, allowing higher priority requests to pass. For example, no payload requests allowed, until PMP driver enable port. ATA XPT negotiate transfer parameters, periph driver configure caching and so on. - Frozen requests are no more counted by request allocation scheduler. It fixes deadlocks, when frozen low priority payload requests occupying slots, required by higher levels to manage theit execution. - Two last changes were holding proper ATA reinitialization and error recovery implementation. Now it is done: SATA controllers and Port Multipliers now implement automatic hot-plug and should correctly recover from timeouts and bus resets. - Improve SCSI error recovery for devices on buses without automatic sense reporting, such as ATAPI or USB. For example, it allows CAM to wait, while CD drive loads disk, instead of immediately return error status. - Decapitalize diagnostic messages and make them more readable and sensible. - Teach PMP driver to limit maximum speed on fan-out ports. - Make boot wait for PMP scan completes, and make rescan more reliable. - Fix pass driver, to return CCB to user level in case of error. - Increase number of retries in cd driver, as device may return several UAs.
|
203058 |
27-Jan-2010 |
mav |
Add one more type cast, missed in r203043.
|
203043 |
26-Jan-2010 |
mav |
Do not place fake interrupt register on chip. Now we have better place for it.
|
203034 |
26-Jan-2010 |
mav |
Restore SATA speed reporting, broken by ATA_CAM changes.
|
203033 |
26-Jan-2010 |
mav |
Clear ch->devices, if hard-reset failed. This makes hot-plug work nicely.
HW donated by: James R. Van Artsdalen
|
203030 |
26-Jan-2010 |
mav |
Add support for SATA part of Marvell 88SE912x controllers to ahci(4). Limit early revisions from 6Gb/s to 3Gb/s by default, or they negotiate only 1.5Gbps, when 3Gb/s devices connected.
Add dummy driver for PATA part of these controllers, preventing generic driver attach them. It causes system freeze when SATA controller used after PATA was touched.
|
202699 |
20-Jan-2010 |
rpaulo |
Make ata_getrev() an optional method by implementing ata_null_getrev(). This fixes a bogus '???' boot message on Cambria boards with a CompactFlash card.
Reviewed by: mav
|
201993 |
10-Jan-2010 |
mav |
Report which of IXP700 legacy ATA channels is SATA.
|
201990 |
10-Jan-2010 |
mav |
- Report SATA in legacy emulation mode still as SATA. - Make ATA XPT able to handle such case.
|
201758 |
07-Jan-2010 |
mbr |
Remove extraneous semicolons, no functional changes.
Submitted by: Marc Balmer <marc@msys.ch> MFC after: 1 week
|
200857 |
22-Dec-2009 |
mav |
Add support for Intel SCH PATA controller.
PR: kern/140251
|
200817 |
21-Dec-2009 |
mav |
Spell AMD properly.
|
200754 |
20-Dec-2009 |
mav |
Add VIA CX700/VX800 chipsets SATA/PATA support.
PR: kern/121521 Tested by: Alex Deiter
|
200753 |
20-Dec-2009 |
mav |
Fairly set master/slave shared PIO/WDMA timings on ITE 821x controllers. Previous implementation could only limit mode, but not rise it back.
|
200655 |
17-Dec-2009 |
mav |
Serverworks OSB4 has no 0x4a (piomode) register, do not touch it. Also OSB4 has some problems with UDMA transfers, limit it to WDMA2.
|
200607 |
16-Dec-2009 |
mav |
Large I/Os on Promise controllers reported to cause UDMA ICRC errors and subsequent timeouts. Restore previous limit for now, at least until I will have hardware to experiment.
PR: kern/141438
|
200544 |
14-Dec-2009 |
marius |
Set ATA_CHECKS_CABLE when appropriate.
Reviewed by: mav MFC after: 1 week
|
200485 |
13-Dec-2009 |
marius |
Only set ATA_CHECKS_CABLE for chip versions that actually support cable detection, i.e. neither for ALI_OLD nor for ALI_NEW revisions >= 0xc7.
MFC after: 1 week
|
200482 |
13-Dec-2009 |
marius |
Properly support M5229 revision 0xc7 and 0xc8: - These revisions no longer have cable detection capability. - The UDMA support bit of register 0x4b has been dropped without an replacement. - According to Linux it's crucial for working ATAPI DMA support to also set the reserved bit 1 of regsiter 0x53 with these revisions.
MFC after: 1 week
|
200481 |
13-Dec-2009 |
marius |
Specify the capability and media bits of the capabilities page in native, i.e. big-endian, format and convert as appropriate like we also do with the multibyte fields of the other pages. This fixes the output of acd_describe() to match reality on big-endian machines without breaking it on little-endian ones. While at it, also convert the remaining multibyte fields of the pages read although they are currently unused for consistency and in order to prevent possible similar bugs in the future.
MFC after: 1 week
|
200459 |
13-Dec-2009 |
marius |
Unbreak the ata_atapi() usage. Since r200171 the mode setting functions get a ata_device type device passed instead of a ata_channel one, thus ata_atapi() has to be adjusted accordingly.
Reviewed by: mav MFC after: 3 days
|
200414 |
11-Dec-2009 |
mav |
CFA support doesn't exclude FLUSH support.
Submitted by: Grzegorz Bernacki
|
200359 |
10-Dec-2009 |
takawata |
Add module dependency for cam if configured as ATA_CAM.
|
200353 |
10-Dec-2009 |
mav |
Limit maximum I/O size, depending on command set supported by device. It is required to suppot non-LBA48 devices with MAXPHYS above 128K. Same is done in ada(4).
|
200171 |
06-Dec-2009 |
mav |
MFp4: Introduce ATA_CAM kernel option, turning ata(4) controller drivers into cam(4) interface modules. When enabled, this options deprecates all ata(4) peripheral drivers (ad, acd, ...) and interfaces and allows cam(4) drivers (ada, cd, ...) and interfaces to be natively used instead.
As side effect of this, ata(4) mode setting code was completely rewritten to make controller API more strict and permit above change. While doing this, SATA revision was separated from PATA mode. It allows DMA-incapable SATA devices to operate and makes hw.ata.atapi_dma tunable work again.
Also allow ata(4) controller drivers (except some specific or broken ones) to handle larger data transfers. Previous constraint of 64K was artificial and is not really required by PCI ATA BM specification or hardware.
Submitted by: nwitehorn (powerpc part)
|
200121 |
05-Dec-2009 |
mav |
Do not ignore device interrupt if bus mastering is still active. It is normal in case of media read error and some ATAPI cases, when transfer size is unknown beforehand. PCI ATA BM specification tells that in case of such underrun driver should just manually stop DMA engine. DMA engine should same time guarantie that all bus mastering transfers completed at the moment of driver reads interrupt flag asserted. This change should fix interrupt storms and command timeouts in many cases.
PR: kern/103602, sparc64/121539, kern/133122, kern/139654
|
200117 |
05-Dec-2009 |
mav |
On Soft Reset, read device signature from FIS receive area, instead of PxSIG register. It works better for NVidia chipsets. ahci(4) does the same.
PR: kern/140472, i386/138668
|
199822 |
26-Nov-2009 |
mav |
Drop USB mass storage devices support from ata(4). It is out of the build as long as I remember, and completely superseded by better maintained umass(4). It's main idea was to optionally avoid CAM dependency for such devices, but with move ATA to CAM, it is not actual any more.
No objections: hselasky@, thompsa@, arch@
|
199749 |
24-Nov-2009 |
mav |
Use only lower byte of sectors_intr IDENTIFY word as sector count. This fixes SET_MULTI error during boot on devices supporting less then 16 sectors per interrupt.
|
199646 |
22-Nov-2009 |
mav |
Release over-agressive WDMA0 mode timings as close to spec as chip can.
|
199645 |
22-Nov-2009 |
mav |
Fix Intel PATA UDMA timings setting, affecting write performance. Binary divider value 10 specified in datasheet is not a hex 0x10. UDMA2 should be 33/2 instead of 66/4, which is documented as reverved, UDMA4 should be 66/2 instead of 66/4, which is definitely wrong.
|
199322 |
16-Nov-2009 |
mav |
Change the way in which AHCI+PATA combined controllers, such as JMicron and Marvell handled. Instead of trying to attach two different drivers to single device, wrapping each call, make one of them (atajmicron, atamarvell) attach do device solely, but create child device for AHCI driver, passing it all required resources. It is quite easy, as none of resources are shared, except IRQ.
As result, it: - makes drivers operation more independent and straitforward, - allows to use new ahci(4) driver with such devices, adding support for new features, such as PMP and NCQ, same time keeping legacy PATA support, - will allow to just drop old ataahci driver, when it's time come.
|
199262 |
14-Nov-2009 |
mav |
Disable PMP probing for Marvell AHCI controllers. It is not working for some reason. Linux does the same.
|
199259 |
13-Nov-2009 |
mav |
Add support for SATA ports on SATA+PATA Marvell controllers. These controllers provide combination of AHCI for SATA and legacy PCI ATA for PATA. Use same solution as used for JMicron controllers. Add IDs of Marvell 88SX6102, 88SX6111. 88SX6141 alike controllers
|
199074 |
09-Nov-2009 |
mav |
Add more ICH10 chip IDs.
Submitted by: Dmitry S. Luhtionov <mitya@cabletv.dp.ua>
|
199050 |
08-Nov-2009 |
mav |
Introduce define and kernel option ATA_REQUEST_TIMEOUT to control ATA(4) command timeout.
Submitted by: keramida
|
198818 |
02-Nov-2009 |
mav |
Add IDs for nVidia MCP65/77/79/89 SATA conntrollers.
|
198752 |
01-Nov-2009 |
mav |
MFp4: Allow SATA1 SiI chips to do full-sized DMA. Specification tells that we may release DMA constrants even more, but it require some additional handling.
|
198718 |
31-Oct-2009 |
mav |
Allow newly added controllers to use full I/O sizes.
|
198717 |
31-Oct-2009 |
mav |
MFp4: - Remove most of direct relations between ATA(4) peripherial and controller levels. It makes logic more transparent and is a mandatory step to wrap ATA(4) controller level into ATA-native CAM SIM. - Tune AHCI and SATA2 SiI drivers memory allocation a bit to allow bigger I/O transaction sizes without additional cost.
|
198700 |
30-Oct-2009 |
mav |
Add support for different request block format used by Gen-IIe Marvell SATA. This adds support for Marvell 6042/7042 chips and Adaptec 1430SA controller.
|
198583 |
29-Oct-2009 |
nwhitehorn |
Add some magic taken from OS X and Linux to support early revision K2 SATA controllers, like those found on the G5 Xserve.
Reviewed by: mav
|
198582 |
29-Oct-2009 |
nwhitehorn |
Turn off use of ATA_A_4BIT on modern hardware. This flag was already obsoleted in 1996 by ATA-2, and crashes some modern hardware like some revisions of the Serverworks K2 SATA controller. Even very ancient hardware seems not to require it. In the unlikely event this causes problems, the previous behavior can be re-enabled by defining ATA_LEGACY_SUPPORT at the top of this file.
Reviewed by: Alexander Motin <mav@freebsd.org>
|
198519 |
27-Oct-2009 |
jh |
Don't ignore the return value of g_modevent() in acd_modevent().
Approved by: trasz (mentor)
|
198488 |
26-Oct-2009 |
mav |
Report SATA speeds to CAM, to not confuse users with low numbers logged.
|
198487 |
26-Oct-2009 |
mav |
Round timeout up when converting CAM milliseconds to ATA seconds.
|
198486 |
26-Oct-2009 |
mav |
Increase ATA command timeouts. Some drives need more then 5s to spin-up.
PR: kern/111023
|
198482 |
26-Oct-2009 |
mav |
Add IDs for PATA part also.
|
198481 |
26-Oct-2009 |
mav |
Add two more VIA SATA chip IDs.
PR: kern/135057
|
198479 |
26-Oct-2009 |
mav |
Fix SATA on nVidia MCP55 chipset. It needs some short time to allow BAR(5) memory access.
PR: amd64/128686, amd64/132372, amd64/139156 MFC after: 3 days
|
198407 |
23-Oct-2009 |
mav |
MFp4: Do not differentiate 12/16 bytes ATAPI CCB formats when it is not needed.
|
197783 |
05-Oct-2009 |
jkim |
- Revert r191568 partially. Forcing AHCI mode by changing device subclass and progif is evil. It doesn't work reliably[1] and we should honor BIOS configuration by the user. - If the SATA controller is enbled but combined mode is disabled, mask off the emulated IDE channel on the legacy IDE controller.
Pointed out by: mav[1]
|
197402 |
22-Sep-2009 |
marius |
- Add missing bus_dmamap_sync(9) calls for the work DMA map. Previously the work area was totally unsynchronized which means this driver only had a chance of working on x86 when no bounce buffers were involved, which isn't that likely given that support for 64-bit DMA is currently broken throughout ata(4). - Add necessary little-endian conversion of accesses to the work area, making this driver work on big-endian hosts. While at it, use the alignment-agnostic byte order encoders in order to be on the safe side. - Clear the reserved member of the SG list entries in order to be on the safe side. [1]
Submitted by: yongari [1] Reviewed by: yongari MFC after: 3 days
|
196970 |
08-Sep-2009 |
phk |
Revert previous commit and add myself to the list of people who should know better than to commit with a cat in the area.
|
196969 |
08-Sep-2009 |
phk |
Add necessary include.
|
196893 |
06-Sep-2009 |
mav |
Remove constraint, requiring request data to fulfill controller's alignment requirements. It is busdma task, to manage proper alignment by loading data to bounce buffers.
PR: kern/127316 Reviewed by: current@ Tested by: Ryan Rogers
|
196822 |
04-Sep-2009 |
pjd |
Remove 'ad:' prefix from disk serial number. We don't want serial number to change when we reconnect the disk in a way that it is accessible through CAM for example.
Discussed with: trasz
|
196403 |
20-Aug-2009 |
jhb |
Temporarily revert the new-bus locking for 8.0 release. It will be reintroduced after HEAD is reopened for commits by re@.
Approved by: re (kib), attilio
|
196324 |
17-Aug-2009 |
jhb |
Remove bogus mergeinfo claiming that change 185357 from head/sys was merged into head/sys/dev/ata. The mergeinfo was added as a side effect of another change and not as part of a merge. The rest of the mergeinfo on dev/ata was a valid subset of the parent mergeinfo on sys/.
Approved by: re (mergeinfo blanket)
|
196219 |
14-Aug-2009 |
jhb |
Purge mergeinfo from files that were temporarily renamed while USB2 was imported into the tree alongside USB.
Approved by: re (mergeinfo blanket)
|
196037 |
02-Aug-2009 |
attilio |
Make the newbus subsystem Giant free by adding the new newbus sxlock. The newbus lock is responsible for protecting newbus internIal structures, device states and devclass flags. It is necessary to hold it when all such datas are accessed. For the other operations, softc locking should ensure enough protection to avoid races.
Newbus lock is automatically held when virtual operations on the device and bus are invoked when loading the driver or when the suspend/resume take place. For other 'spourious' operations trying to access/modify the newbus topology, newbus lock needs to be automatically acquired and dropped.
For the moment Giant is also acquired in some key point (modules subsystem) in order to avoid problems before the 8.0 release as module handlers could make assumptions about it. This Giant locking should go just after the release happens.
Please keep in mind that the public interface can be expanded in order to provide more support, if there are really necessities at some point and also some bugs could arise as long as the patch needs a bit of further testing.
Bump __FreeBSD_version in order to reflect the newbus lock introduction.
Reviewed by: ed, hps, jhb, imp, mav, scottl No answer by: ariff, thompsa, yongari Tested by: pho, G. Trematerra <giovanni dot trematerra at gmail dot com>, Brandon Gooch <jamesbrandongooch at gmail dot com> Sponsored by: Yahoo! Incorporated Approved by: re (ksmith)
|
195893 |
26-Jul-2009 |
mav |
Restore PATA device probe order, broken by PMP support implementation, requesting IDENTIFY from slave device first. This order is important for proper cable type detection by master device.
PR: kern/136438 Approved by: re (kib)
|
195724 |
16-Jul-2009 |
mav |
Limit IOCATAREQUEST ioctl data size to controller's maximum I/O size. It fixes kernel panic when requested size is too large (0xffffffff),
PR: kern/136726 Approved by: re (kib) MFC after: 2 weeks
|
195659 |
13-Jul-2009 |
mav |
Fix Marvel SATA controllers operation, broken by rev. 188765, by using uninitialized variable.
Tested by: Chris Hedley Approved by: re (kensmith)
|
195534 |
10-Jul-2009 |
scottl |
Separate the parallel scsi knowledge out of the core of the XPT, and modularize it so that new transports can be created.
Add a transport for SATA
Add a periph+protocol layer for ATA
Add a driver for AHCI-compliant hardware.
Add a maxio field to CAM so that drivers can advertise their max I/O capability. Modify various drivers so that they are insulated from the value of MAXPHYS.
The new ATA/SATA code supports AHCI-compliant hardware, and will override the classic ATA driver if it is loaded as a module at boot time or compiled into the kernel. The stack now support NCQ (tagged queueing) for increased performance on modern SATA drives. It also supports port multipliers.
ATA drives are accessed via 'ada' device nodes. ATAPI drives are accessed via 'cd' device nodes. They can all be enumerated and manipulated via camcontrol, just like SCSI drives. SCSI commands are not translated to their ATA equivalents; ATA native commands are used throughout the entire stack, including camcontrol. See the camcontrol manpage for further details. Testing this code may require that you update your fstab, and possibly modify your BIOS to enable AHCI functionality, if available.
This code is very experimental at the moment. The userland ABI/API has changed, so applications will need to be recompiled. It may change further in the near future. The 'ada' device name may also change as more infrastructure is completed in this project. The goal is to eventually put all CAM busses and devices until newbus, allowing for interesting topology and management options.
Few functional changes will be seen with existing SCSI/SAS/FC drivers, though the userland ABI has still changed. In the future, transports specific modules for SAS and FC may appear in order to better support the topologies and capabilities of these technologies.
The modularization of CAM and the addition of the ATA/SATA modules is meant to break CAM out of the mold of being specific to SCSI, letting it grow to be a framework for arbitrary transports and protocols. It also allows drivers to be written to support discrete hardware without jeopardizing the stability of non-related hardware. While only an AHCI driver is provided now, a Silicon Image driver is also in the works. Drivers for ICH1-4, ICH5-6, PIIX, classic IDE, and any other hardware is possible and encouraged. Help with new transports is also encouraged.
Submitted by: scottl, mav Approved by: re
|
195439 |
08-Jul-2009 |
mav |
Fix kernel panic, when ataahci driver is used on system with increased MAXPHYS. Current ataahci driver memory allocation scheme includes only 64 items in DMA S/G table, and so not guarantied to support transactions with more then 252K data.
Approved by: re (kensmith) MFC after: 2 weeks
|
195436 |
08-Jul-2009 |
marcel |
Revert revisions 188839 and 188868. Use of the ioctl in geom_dev.c is invalid because the ioctl happens without prior open. The ioctl got introduced to provide backward compatibility for extended partitions, but it ended up not being used because it didn't work as expected. Since there are no consumers of the ioctl and the implementation is broken, the best fix is to remove the code entirely.
Spotted by: phk Approved by: re (kensmith)
|
195363 |
05-Jul-2009 |
mav |
Mark atanvidia depending on ataahci since rev.188846.
Approved by: re (kib)
|
194893 |
24-Jun-2009 |
mav |
MFp4: Reduce default PCI ATA drivers priorities from absolute to default, to allow them been overriden. It was so before modularization.
|
194844 |
24-Jun-2009 |
raj |
Move non-PCI prototypes from ata-pci.h -> ata-all.h.
This removes unnecessary PCI #includes dependency for systems with ATA controllers living at non-PCI buses.
Submitted by: Piotr Ziecik Obtained from: Semihalf
|
194677 |
23-Jun-2009 |
thompsa |
- Make struct usb_xfer opaque so that drivers can not access the internals - Reduce the number of headers needed for a usb driver, the common case is just usb.h and usbdi.h
|
194229 |
15-Jun-2009 |
thompsa |
Fix compile with changes to the usb_config struct.
|
194228 |
15-Jun-2009 |
thompsa |
s/usb2_/usb_|usbd_/ on all function names for the USB stack.
|
193918 |
10-Jun-2009 |
jhb |
Preallocate the four BARs in ALI SATA controllers during the chipinit routine and save the resources using a chipset-data structure. Use these preallocated resources to setup resources for the SATA channels to avoid asking the PCI bus to allocate the same BAR multiple times.
Tested by: bms MFC after: 1 week
|
193716 |
08-Jun-2009 |
ariff |
Add another PCI id for Nvidia nForce MCP67, found in several Acer laptops.
|
193277 |
01-Jun-2009 |
mav |
MFp4.
Log supported AHCI controller capabilities.
|
193205 |
01-Jun-2009 |
delphij |
According to Intel documentation (307013), 3Gbps mode is supported on Desktop chipsets only for ICH7 series, so mark all ICH7M as ATA_SA150 instead of ATA_SA300.
|
193045 |
29-May-2009 |
thompsa |
s/usb2_/usb_/ on all typedefs for the USB stack.
|
192984 |
28-May-2009 |
thompsa |
s/usb2_/usb_/ on all C structs for the USB stack.
|
192505 |
21-May-2009 |
thompsa |
Fix a few variable renames of usb2_mode outside dev/usb.
|
192479 |
20-May-2009 |
imp |
Last commit was in error, revert.
|
192450 |
20-May-2009 |
imp |
We no longer need to use d_thread_t, migrate to struct thread *.
|
192433 |
20-May-2009 |
mav |
Fix NULL dereference on Promise SX4 controllers, while executing commands that do not require data transfer (FLUSHCACHE).
Tested by: Magnus Kling <klingfon@gmail.com> MFC after: 1 week
|
192105 |
14-May-2009 |
jhb |
- Add a void pointer to the ata-pci controller softc to allow chipset-specific code to attach chipset-specific data. - Use chipset-specific data in the acard and promise chipsets rather than changing the ivars of ATA PCI devices. ivars are reserved for use by the parent bus driver and are _not_ available for use by devices directly. This fixes a panic during sysctl -a with certain Promise controllers with ACPI enabled.
Reviewed by: mav Tested by: Magnus Kling (kingfon @ gmail) (on 7) MFC after: 3 days
|
192020 |
12-May-2009 |
trasz |
Remove dead code.
Found with: Coverity Prevent(tm) CID: 556
|
191897 |
07-May-2009 |
mav |
Add ID of one more SII3132 revision found on adaptec aar-1225sa rev a2.
PR: kern/127289
|
191717 |
01-May-2009 |
mav |
Improve kernel dumping reliability for busy ATA channels: - Generate fake channel interrupts even if channel busy with previous request to let it finish. Without this, dumping requests were just queued and never processed. - Drop pre-dump requests queue on dumping. ATA code, working in dumping (interruptless) mode, unable to handle long request queue. Actually, to get coherent dump we anyway should do as few unrelated actions as possible.
|
191674 |
29-Apr-2009 |
mav |
Add experimental support for SATA interface power management. Feature is controlled by hint.ata.X.pm_level tunable: 0 - PM disabled, old behaviour, default. 1 - device is allowed to initiate PM state change, host is passive. 2 - host initiates PARTIAL state transition every time port is idle. 3 - host initiates SLUMBER state transition every time port is idle.
PARTIAL state has up to 100us (50us for me) wakeup latency, but for my ICH8M saves 0.5W of power per drive. SLUMBER state has up to 10ms (3.5ms for me) wakeup latency, but saves 0.8W of power.
Modes 2 and 3 are implemented only for AHCI driver now.
Interface power management is incompatible with device presence detection (host receives no signal from drive, so unable to monitor it), so later is disabled when PM is used.
|
191601 |
27-Apr-2009 |
jkim |
Use cached progif instead of reading it again.
|
191600 |
27-Apr-2009 |
jkim |
- Give generic AHCI driver lower priority than device-specific drivers. - Consistently use BUS_PROBE_GENERIC instead of -100.
|
191593 |
27-Apr-2009 |
jkim |
Reduce code duplication and excessive pci_get_slot() calls.
Reviewed by: mav
|
191573 |
27-Apr-2009 |
jkim |
Reduce excessive pci_get_devid() and pci_get_revid() calls on the same PCI device while device probing.
|
191568 |
27-Apr-2009 |
jkim |
- Always force AHCI mode on a ATI/AMD SB600/700/800 SATA controller. These controllers may be configured as legacy IDE mode by modifying subclass and progif without actually changing PCI device IDs. Instead of complicating code, we always force AHCI mode while probing. Also we restore AHCI mode while resuming per ATI/AMD register programming/requirement guides. - Fix SB700/800 "combined" mode. Unlike SB600, this PATA controller can combine two SATA ports and emulate one PATA channel as primary or secondary depending on BIOS configuration. When the combined mode is disabled, this channel disappears and it works just like SB600 PATA controller, however. - Add more PCI device IDs for SB700/800 and adjust device descriptions. SB800 shares the same PCI device IDs and added two more SATA IDs.
|
191516 |
26-Apr-2009 |
ed |
Remove unneeded device index from unit number.
We only use the unit number to determine whether we should rewind the device upon closure.
|
190820 |
07-Apr-2009 |
ed |
Improve clarity: if (a && (b ? b : c)) -> if (a && (b || c))
Submitted by: Christoph Mallon <christoph.mallon@gmx.de>
|
190749 |
05-Apr-2009 |
piso |
Remove pointeless mergeinfo that crept in from r190633.
|
190682 |
04-Apr-2009 |
nwhitehorn |
The Serverworks SATA chipsets used in Apple G5 systems require requiring the ATA status register with a 4-byte read request. This updates it, and subsequent 1-byte reads will return the correct result.
This commit adds a hack to do this, which is currently ifdef'd powerpc, although Linux and Darwin do this unconditionally on all platforms.
|
190633 |
01-Apr-2009 |
piso |
Implement an ipfw action to reassemble ip packets: reass.
|
190581 |
30-Mar-2009 |
mav |
Integrate user/mav/ata branch:
Add ch_suspend/ch_resume methods for PCI controllers and implement them for AHCI. Refactor AHCI channel initialization according to it.
Fix Port Multipliers operation. It is far from perfect yet, but works now. Tested with JMicron JMB363 AHCI + SiI 3726 PMP pair. Previous version was also tested with SiI 4726 PMP.
Hardware sponsored by: Vitsch Electronics / VEHosting.nl
|
189724 |
12-Mar-2009 |
imp |
Check the Disk FUNCE recorded in the CIS to see if we should probe for both disks, or if we should suppress the slave drive. Default to suppressing the slave, in the case that this REQIURED tuple turns out to not actually be present...
|
189699 |
11-Mar-2009 |
dfr |
Merge in support for Xen HVM on amd64 architecture.
|
189600 |
09-Mar-2009 |
mav |
Add type specific suspend/resume ata channel functions. Add checks to avoid crash on detached channel resume. Add placeholder for possible type-specific suspend/resume routines.
|
189368 |
04-Mar-2009 |
rnoland |
Remove the local management of INTx as this is now taken care of by pci.
Reviewed by: jhb MFC after: 3 days
|
189295 |
03-Mar-2009 |
mav |
Set PortMultiplier port only for SATA2 channels, where it is applicable. Doing it on old SATA controllers like Promise PDC20375 SATA150 breaks their operation.
Tested by: marcus on PDC20375
|
189275 |
02-Mar-2009 |
thompsa |
Rename the ushub device class back to uhub as it was in the old usb stack, moused(8) looks for "uhub/ums" to decide if needs to load the module.
Reported by: Garrett Cooper
|
189256 |
01-Mar-2009 |
mav |
Give controller a chance to issue Soft Reset clear command before checking ready status. Most of controllers managed to issue coommand and set BUSY bit almost simultaneously, before we will read it, but at least JMicron JMB363 don't. Ignore timeout errors to keep old behavior when error there was impossible.
For me this fixes timeout errors on the first command after channel attach or reinit. Boot in my case is not affected, as there is much time passing between reset and next command giving reset time to complete.
|
189245 |
01-Mar-2009 |
mav |
Comment out enabling FIS Based Switching inside ata_ahci_issue_cmd() as it done in other places. Until we have no support for command queueing we have no any benefit from FBS, while enabling it only here somehow leads to "port not ready" errors on Intel 63XXESB2 controller.
Tested by: Larry Rosenman <ler AT lerctr.org>
|
189195 |
28-Feb-2009 |
mav |
Revert my ata_identify()/ata_reinit() related changes: r189166, r189091 and partially r188903. Revert breaks new drives detection on reinit to the state as it was before me, but fixes series of new bugs reported by some people.
Unconditional queueing of ata_completed() calls can lead to deadlock if due to timeout ata_reinit() was called at the same thread by previous ata_completed(). Calling of ata_identify() on ata_reinit() in current implementation opens numerous races and deadlocks.
Problems I was touching here are still exist and should be addresed, but probably in different way.
|
189166 |
28-Feb-2009 |
mav |
Rework device probing by moving ata_getparam() call from ata_identify() to drivers' probe routines. It allows not to sleep and so not drop Giant inside ata_identify() critical section and so avoid crash if it reentered on request timeout. Reentering of probe call checked inside of it.
Give device own knowledge about it's type (ata/atapi/atapicam). It is not a good idea to ask channel status for device type inside ata_getparam().
Add softc memory deallocation on device destruction.
|
189119 |
27-Feb-2009 |
mav |
Merge rev. 188615, 188812 changes from old-USB to USB2 driver.
|
189095 |
26-Feb-2009 |
mav |
Rollback rev. 189093.
mtx_lock() is not needed there as callout initialized with callout_init_mtx(). Sorry.
Submitted by: Ian Dowse
|
189094 |
26-Feb-2009 |
mav |
Unhide IDENTIFY command timeouts when verbose messages enabled. I think it should be suitable for debugging.
|
189093 |
26-Feb-2009 |
mav |
Restore mtx_lock() call on ata_timeout(), dropped (I think accidentally) during commit 3 years ago.
|
189091 |
26-Feb-2009 |
mav |
Remove direct ata_completed() call options from ata_finish(), except for the kernel dumping case.
ata_completed() may initiate ata_reinit() on error, that may lead to drives attach or detach. Attach and detach are sending requests to drives and sleep waiting for results. But ata_finish() can be called directly from interrupt handler where sleeping is prohibited, so we must break this chain somewhere. This place seems to fit best.
|
188958 |
23-Feb-2009 |
mav |
Fix non-AHCI channels detection on combined JMicron controllers, broken by r188694.
|
188957 |
23-Feb-2009 |
thompsa |
Move the uaudio and ata-usb drivers into their correct locations.
|
188955 |
23-Feb-2009 |
thompsa |
Move two missed usb drivers out to the graveyard location under sys/legacy/dev.
|
188936 |
23-Feb-2009 |
mav |
Do not call devices probe/attach if there is nothing new was found.
|
188935 |
23-Feb-2009 |
mav |
Fix spelling.
Submitted by: gavin
|
188918 |
22-Feb-2009 |
mav |
Tune AHCI verbose messages to make log more readable.
|
188912 |
22-Feb-2009 |
mav |
Remove one more place of master/slave terms usage.
|
188906 |
21-Feb-2009 |
mav |
Use only higher half of device signature to identify device type. Some devices return incorrect values in lower part confusing detection, while higher part itself gives enough information for proper detetion.
|
188905 |
21-Feb-2009 |
mav |
Increase initial busy waiting time. If drive was hot-plugged, it may need much time to spin-up.
|
188903 |
21-Feb-2009 |
mav |
Improve ata_reinit(): - protect againtst recursions, - add new devices detection using ata_identify().
Improve ata_identify(): - do not add duplicate device if device already exist.
Rework SATA hot-plug events handling. Instead of unsafe duplicate implementation use common ata_reinit() to handle all state changes.
All together this gives quite stable and robust cold- and hot-plug operation, invariant to false, lost and duplicate events.
|
188897 |
21-Feb-2009 |
mav |
Teach device drivers' ata_reinit() methods, that there can be more then two devices per channel.
|
188877 |
20-Feb-2009 |
mav |
Disable port hardware on detach. First switch it to slumber mode to power-down peer transmitter, then disable completely. Side effect of this is saving about 0.5W of power per detached device.
|
188868 |
20-Feb-2009 |
marcel |
Don't read the TOC for DIOCGPROVIDERALIAS. This causes the acd code to create new provider (?), but not from an expected context, which results in a panic (GEOM topology not held).
|
188867 |
20-Feb-2009 |
mav |
Fix typo: s/SLUMPER/SLUMBER/
|
188862 |
20-Feb-2009 |
mav |
Reduce soft-reset assertion time from 5ms to 50us. ATA specification declares minimal reset time of 5us. SATA keeps it, but requires devices to handle commands transmitted even one by one without any gap.
|
188861 |
20-Feb-2009 |
mav |
Disable port interrupts before doing PHY reset. PHY reset causes drive connect/disconnect events, unwanted at this moment.
|
188850 |
20-Feb-2009 |
mav |
Fix pc98 build error due to missing variable.
Submitted by: avg
|
188846 |
20-Feb-2009 |
mav |
Handle nForce MCP67 and MCP73 SATA controllers as AHCI. They report itself as ATA RAID, but generic ATAPCI driver unable to detect drives there. AHCI driver reported to handle them fine. Linux does the same.
Submitted by: Andrey V. Elsukov on stable@
|
188840 |
20-Feb-2009 |
scottl |
Add basic support for DDF, often found on Adaptec HostRAID controllers. Spares and rebuilds are not supported, so this code should be considered for entertainment purposes only.
|
188812 |
19-Feb-2009 |
mav |
Use channel driver's attach/detach routines instead of ata_attach()/ ata_detach() to implement IOCATAATTACH/IOCATADETACH ioctls. This will permit channel drivers to properly shutdown port hardware on channel detach and init it on attach.
|
188769 |
19-Feb-2009 |
mav |
Quite mechanical ch_detach implementations for all atapci subdrivers. Some dmainit call fixes for previous commit.
|
188765 |
18-Feb-2009 |
mav |
As soon as they called in only same one place (ata_pcichannel_attach()), join allocate() and dmainit() atapci subdriver's channel initialization methods into single ch_attach() method.
As opposite to ch_attach() add new ch_detach() method to deallocate/disable channel.
|
188763 |
18-Feb-2009 |
mav |
Make ch->dma.free() called symmetrically to ch->dma.alloc().
|
188762 |
18-Feb-2009 |
mav |
Implement proper attach/detach routines for ISA driver.
|
188755 |
18-Feb-2009 |
mav |
Remove unused variable.
Submitted by: ganbold
|
188740 |
17-Feb-2009 |
mav |
Adaptively increase control command timeout when drive is spun down. This should fix, for example, cache flush timeout error on shutdown, if some drives are not mounted.
PR: kern/111023
|
188733 |
17-Feb-2009 |
mav |
Remove useless return, that left from previous commit.
|
188731 |
17-Feb-2009 |
mav |
ata_interrupt() does not need to return anything. It is not it's business to report request completion, expecially when it is not reliable.
|
188700 |
16-Feb-2009 |
mav |
Make core dumping to ad not to freeze even if interrupts, not disabled for some reason, stealing our events.
|
188694 |
16-Feb-2009 |
mav |
Give atapci knowledge about set of implemented AHCI ports. It is possible to not allocate them after the recent ata channels enumeration changes. It allows to save some resources, not bother user with unexisting hardware and not check unimplemented ports status on every interrupt.
|
188658 |
15-Feb-2009 |
mav |
Remove unneeded AND operation. We have already checked that bit is set.
|
188655 |
15-Feb-2009 |
mav |
Add initial single-vector MSI support into atapci driver. Works fine with AHCI and theoretically other MSI capable devices.
At this moment support disabled by default. To enable it, set "hint.atapci.X.msi=1" device hint.
|
188648 |
15-Feb-2009 |
mav |
Add workaround for some ATI chips, failing to soft-reset when port multiplicator supported, but absent.
|
188621 |
14-Feb-2009 |
mav |
Tunes to AHCI reset sequences: - specification claims that 1 second is just a maximum controller reset time; implement controller reset properly to save almost 1 second of boot, and about half second of resume time; - enable channel interrupts only after channel status reset to fix duplicate device creation on resume due to unwanted device connection event; - as described in specification, wait for disk ready status after channel power-up; it is not so important when disk already touched by BIOS, but solves device not ready problems on resume and probably some other cases. - uncomment channel stop/start on soft-reset as it is declared mandatory by specification; it was commented due to some random drive detection problems on VIA and JMicron controllers, but I hope it is fixed by previous point.
|
188615 |
14-Feb-2009 |
mav |
DEVICE_PROBE(9) claims that we must not initialize softc on probe stage. Move channel softc initialization from ata_XXX_probe() to ata_XXX_attach().
Instead of calculating ata channel number as position in child device list, pass it's real number directly from controller probe routine using ivars. It is simpler and IMHO more correct.
|
188126 |
04-Feb-2009 |
imp |
Fix shutdown routine to return 0 and change signature from void return to int.
|
188125 |
04-Feb-2009 |
imp |
Correct signature for the identify routine. The bad parameter wasn't used at all, so this is just a tidiness excersize.
|
187105 |
12-Jan-2009 |
obrien |
Fix issue where ata_atapicmd() can never really return EBUSY which is expected in acd_fixate().
This should fix various problems folks are having with 'burncd' reporting "burncd: ioctl(CDRIOCFIXATE): Input/output error" during the fixate phase when "fixate" is issued together with the "data" command.
PR: 95979 Submitted by: Jaakko Heinonen <jh@saunalahti.fi>
|
186905 |
08-Jan-2009 |
trasz |
Make "kldunload atapicam" return EBUSY instead of deadlocking when a device created by atapicam is being kept opened or mounted. This is probably just a temporary solution until we invent something better.
Reviewed by: scottl Approved by: rwatson (mentor) Sponsored by: FreeBSD Foundation Reported by: Jaakko Heinonen
|
186296 |
18-Dec-2008 |
mav |
Before modularization commit, atapci driver was attaching only to devices of storage class. This check was lost. It is not important for the most cases, but as it was reported on current@, it does important for sis driver and surely inportant for AHCI driver. So restore it there.
Submitted by: Toshikazu ICHINOSEKI, Andrey V. Elsukov Discussed on: current@
|
186250 |
17-Dec-2008 |
mav |
Improve error handling at ata_ahci_chipinit().
Submitted by: Andrey V. Elsukov
|
186182 |
16-Dec-2008 |
mav |
Call ata_legacy() only once on attach and save it's result. Scanning PCI configuration registers (which are not going to change) on every interrupt looks expensive, especially when interrupt is shared. Profiling shows me 3% of time spent by atapci0 on pure network load due to IRQ sharing with em0.
|
185500 |
01-Dec-2008 |
mav |
Restore AHCI suspend/resume support, broken with modularization commit (rev 183724).
|
185357 |
27-Nov-2008 |
peter |
Don't let ata_completed() dereference a null request->dma pointer to print dma status after a media error.
|
185268 |
25-Nov-2008 |
rpaulo |
Add support for Marvell PATA M88SX6121.
PR: 129154 Submitted by: João Barros <joao.barros at gmail.com> MFC after: 1 month
|
184328 |
27-Oct-2008 |
sos |
Only call dma.unload() if initialized.
Reported by: Stanislav Sedov
|
184135 |
21-Oct-2008 |
jhb |
Restore the default maximum segment size for the bus dma tag to 64k as it is in 6.x and 7.x. The typo caused 64k transactions to be unnecessarily split up into two PRD entries.
|
183981 |
17-Oct-2008 |
jhb |
- For chipsets that can't do 64k transfers, fall back to 32k transfers (still a power of 2) rather than 63k transfers. Even with 63k transfers some machines (such as Dell SC1435's) were experiencing chronic data corruption. - Use the MIO method to talk to the Serverworks HT1000_S1 SATA controller like all the other SATA controllers rather than the compat PATA method. This lets the controller see all 4 SATA ports and also matches the behavior of the Linux driver.
Silence from: sos MFC after: 3 days
|
183724 |
09-Oct-2008 |
sos |
This is the roumored ATA modulerisation works, and it needs a little explanation.
If you just config KERNEL as usual there should be no apparent changes, you'll get all chipset support code compiled in.
However there is now a way to only compile in code for chipsets needed on a pr vendor basis. ATA now has the following "device" entries:
atacore: ATA core functionality, always needed for any ATA setup
atacard: CARDBUS support atacbus: PC98 cbus support ataisa: ISA bus support atapci: PCI bus support only generic chipset support.
ataahci: AHCI support, also pulled in by some vendor modules.
ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek, atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron, atamarvell, atamicron, atanational, atanetcell, atanvidia, atapromise, ataserverworks, atasiliconimage, atasis, atavia; Vendor support, ie atavia for VIA chipsets
atadisk: ATA disk driver ataraid: ATA softraid driver
atapicd: ATAPI cd/dvd driver atapifd: ATAPI floppy/flashdisk driver atapist: ATAPI tape driver
atausb: ATA<>USB bridge atapicam: ATA<>CAM bridge
This makes it possible to config a kernel with just VIA chipset support by having the following ATA lines in the kernel config file:
device atacore device atapci device atavia
And then you need the atadisk, atapicd etc lines in there just as usual.
If you use ATA as modules loaded at boot there is few changes except the rename of the "ata" module to "atacore", things looks just as usual. However under atapci you now have a whole bunch of vendor specific drivers, that you can kldload individually depending on you needs. Drivers have the same names as used in the kernel config explained above.
|
183552 |
02-Oct-2008 |
sos |
Add ICH10 PCI id's. Submitted by: Xin Li
Fix the number of PATA ports on newer ICHX chips, they have just 1 port not 2.
|
183397 |
27-Sep-2008 |
ed |
Replace all calls to minor() with dev2unit().
After I removed all the unit2minor()/minor2unit() calls from the kernel yesterday, I realised calling minor() everywhere is quite confusing. Character devices now only have the ability to store a unit number, not a minor number. Remove the confusion by using dev2unit() everywhere.
This commit could also be considered as a bug fix. A lot of drivers call minor(), while they should actually be calling dev2unit(). In -CURRENT this isn't a problem, but it turns out we never had any problem reports related to that issue in the past. I suspect not many people connect more than 256 pieces of the same hardware.
Reviewed by: kib
|
183380 |
26-Sep-2008 |
sos |
Add support for the ITE 8213 controller. Thanks goes to ITE who provided docs and feedback and made this possible.
Minor fixups to the Intel ICH code for bugs found while doing this. (ITE8213 is very semilar to an Intel ICH)
MFC after: 1 week
|
183141 |
18-Sep-2008 |
sos |
Cleanup the AHCI code a bit. Add suspend/resume for AHCI, general methods added.
Inspired by: Andrey V. Elsukov
|
182749 |
04-Sep-2008 |
mav |
Add one more SII3132 chip PCI ID found on Adaptec Serial ATA II RAID 1220SA.
Submitted by: Dmitry S. Luhtionov <mitya@cabletv.dp.ua>
|
181753 |
15-Aug-2008 |
philip |
Introduce a new loader tunable "hw.ata.ata_dma_check_80pin", defaulting to 1. This can be used to disable the 80pin cable check on systems which forget to set the bit -- such as certain laptops and Soekris boards.
PR: kern/114605 (somewhat reworked) Submitted by: marck MFC after: 1 week
|
180437 |
10-Jul-2008 |
remko |
Detect ATA controllers in the Macbook3.
PR: 118135 Submitted by: ed Approved by: imp (mentor, implicit) MFC after: 1 week
|
180384 |
09-Jul-2008 |
remko |
Driver failed to allocate MMIO resources. Attached patch adds a fallback path. It uses generic IDE facilities if sii-specific allocations failed
PR: 125421 Submitted by: Andrey V. Elsukov <bu7cher at yandex dot ru> Approved by: imp (mentor, implicit) MFC after: 1 week
|
180383 |
09-Jul-2008 |
remko |
Add new device id for ICH8M, which supports greater than UDMA33 mode when it worked as generic IDE.
PR: 125422 Submitted by: Andrey V. Elsukov <bu7cher at yandex dot ru> Approved by: imp (mentor, implicit) MFC after: 1 week
|
180382 |
09-Jul-2008 |
remko |
Add support for the ICH9 in non AHCI mode (RAID mode).
Submitted by: Andrey V. Elsukov <bu7cher at yandex dot ru> Tested by: Vitalij L. Fadeev <fvl at mail dot ru> Approved by: imp (mentor, implicit) MFC after: 1 week
|
179721 |
11-Jun-2008 |
sos |
Wait up to 1S for the TFD data to signal un-busy before fetching the signature. This at least helps a few slow devices out there.
Submitted by: Andrey V. Elsukov
|
179717 |
11-Jun-2008 |
sos |
Rearrange how to call dma.alloc() so that we have resources alloc'd when need but also late enough to know how many to create.
|
179312 |
26-May-2008 |
sos |
Dont call ata_start() when ata_reinit fails in the ioctl path.
|
178856 |
08-May-2008 |
grehan |
Fix panic and breakage for non-DMA ATA devices e.g. powermac macio cells. Handle cases where dma function pointers may be NULL, and where the max_iosize can't be derived from a DMA data structure. For the latter, revert to the prior behaviour of using DFLTPHYS for the max i/o size when there is no other data.
Reviewed by: marcel No objection by: sos
|
178375 |
21-Apr-2008 |
sos |
Add HW level support for the Adaptec 1420SA controller.
|
178374 |
21-Apr-2008 |
sos |
Unload DMA slot on device timeouts.
|
178373 |
21-Apr-2008 |
sos |
Do not enable FIS based PM switching, even if not used some controllers barf.
|
178339 |
20-Apr-2008 |
bz |
devclass_get_maxunit() returns n+1 with n starting at 0. So if we have channel 0..3 devclass_get_maxunit is 4.
It's never been a problem as devclass_get_device() has catched a possibly bad input.
Discussed with: scottl
|
178300 |
18-Apr-2008 |
sos |
Fix the breakage that caused AHCI devices to vanish. Editor droppings :(
Put the ATAPI device numbering back to the old ways.
|
178281 |
17-Apr-2008 |
sos |
Alloc two DMA slots pr default, silly me forgot that slaves still exists.
|
178278 |
17-Apr-2008 |
sos |
Go back to preallocating everything possible on init. This avoids calling busdma in the request processing path which caused a traumatic performance degradation. Allocation has be postponed to after we know how many devices we possible can have on portmulitpliers to save some space.
|
178203 |
14-Apr-2008 |
sos |
Fix problem with slave devices. Fix or rather bring ENOMEM problems back to the state it was before. Temporarily disable PortMultipliers on AHCI devices.
|
178179 |
13-Apr-2008 |
sos |
Fix identify of slave devices.
|
178156 |
12-Apr-2008 |
sos |
Dont call hw.status recursively.
Spotted by: Marcel Moolenaar
|
178128 |
11-Apr-2008 |
sos |
Fix badly placed '{' Dont leak requests on busdma failure (not that we'd get anywhere anyhow).
Reported by: antoine@
|
178114 |
11-Apr-2008 |
sos |
Fix the brokenness in the former commit, sorry for the mess. The problem is that the PM support is part of a much larger WIP here, but due to popular demand I decided to get some of it imported.
Also I forgot the mention:
HW sponsored by: Vitsch Electronics / VEHosting
|
178077 |
10-Apr-2008 |
sos |
Fix clearing of nVidia interrupts.
|
178067 |
10-Apr-2008 |
sos |
Add experimental support for SATA Port Multipliers
Support is working on the Silicon Image SiI3124/3132. Support is working on some AHCI chips but far from all.
Remember this is WIP, so test reports and (constructive) suggestions are welcome!
|
177466 |
20-Mar-2008 |
sos |
Unbreak the last commit. Changes from the PM WIP sneaked in and caused compile errors.
|
177452 |
20-Mar-2008 |
sos |
Fix Problem with Intel Matrix RAID.
Fix from PR/121899.
|
177298 |
17-Mar-2008 |
phk |
Add a "spindown" facility to ata-disks: If no requests have been received for a configurable number of seconds, spin the disk down. Spin it back up on the next request.
Notice that the timeout is only armed by a request, so to spin down a disk you may have to do:
atacontrol spindown ad10 5 dd if=/dev/ad10 of=/dev/null count=1
To disable spindown, set timeout to zero:
atacontrol spindown ad10 0
In order to debug any trouble caused, this code is somewhat noisy on the console.
Enabling spindown on a disk containing / or /var/log/messages is not going to do anything sensible.
Spinning a disk up and down all the time will wear it out, use sensibly.
Approved by: sos
|
176891 |
07-Mar-2008 |
sos |
Add proper support for the SATA/AHCI part of IXP[67]00
|
175060 |
02-Jan-2008 |
phk |
If the disk reports that it support the Compact Flash Association command set, announce BIO_DELETE capability and issue ATA_CFA_ERASE when we get one.
Once we issue more BIO_DELETE, this will improve lifetime, and possibly write speed of Flash based devices which have usable flash adaptation layers.
For now, about the only usage is the newfs(1) -E flag.
Approved by: sos
|
175059 |
02-Jan-2008 |
phk |
Follow the current fashion of gratuitously stomping into other peoples code with irrelevant changes[1]:
Use bus_{read|write_*() instead of bus_space_{read|write}_*() for purely stylistic reasons.
Due to compiler optimizations and inlining, this is for all practical purposes without effect in the compiled code.
[1] NB: Approved by: sos
|
174576 |
13-Dec-2007 |
sos |
Implement a workaround of the datacorruption problem on serverworks HT1000 chipsets. The HT1000 DMA engine seems to not always like 64K transfers and sometimes barfs data all over memory leading to instant chrash and burn. Also fix 48bit adressing issues, apparently newer chips needs 16bit writes and not the usual fifo thing.
HW donated by: Travis Mikalson at TerraNovaNet
|
174404 |
07-Dec-2007 |
sos |
Fix speed report on Intel SATA chips in compat mode. Fix broken detect of JMicron 368.
|
173950 |
26-Nov-2007 |
sos |
Use device_set_desc_copy in the generic ident as its used on a temp buffer.
|
173868 |
23-Nov-2007 |
sos |
Add preliminary SATA ATAPI support for sii 3132/3124 chips.
|
173768 |
20-Nov-2007 |
kevlo |
Fix KASSERT messages.
|
173756 |
19-Nov-2007 |
sos |
Dont fumble the ivars on reinit, avoids panic on suspend/resume om some systems that looses thier devices.
Patch by: jhb@
|
173754 |
19-Nov-2007 |
sos |
Try to workaound silicon bugs in Promise gen2 (ie TX4) chips
Initial patch by Alexander Sabourenkov who found it in Promise's own driver.
Further fixes and sanity checks by yours truely.
|
173753 |
19-Nov-2007 |
sos |
Fix the problem with certain ATAPI commands on AHCI devices. Revert the probe in atapi-cd.c to the old usage now its fixed on AHCI. THis change also fixes using virtual CD's om fx parallels.
Still leaves the GEOM problem of telling media vs device access apart in the access function.
|
173734 |
18-Nov-2007 |
sos |
Add generic support for chipsets that say they support AHCI. This should catch new chipsets that we dont know but that we should support. Add a few new PCI id's. Misc cleanups.
|
173012 |
26-Oct-2007 |
sos |
Fix the signature matching code on AHCI controllers. Add SATA ATAPI support for AHCI controllers.
|
173011 |
26-Oct-2007 |
sos |
Update the way we get the mode pages on probe.
|
173010 |
26-Oct-2007 |
sos |
Fix treating some modern chips (mem mapped) as legacy devices.
|
172499 |
09-Oct-2007 |
delphij |
Add PCI ID for ICH9 AHCI w/ two adapters.
Tested by: Abdullah Ibn Hamad Al-Marri <almarrie gmail com> Approved by: sos Approved by: re (kensmith)
|
172446 |
04-Oct-2007 |
sos |
Add support for the VIA 8237S Fix the LBA28/LBA48 crossover bug.
Approved by: re@
|
172436 |
04-Oct-2007 |
phk |
Recognize the CS5536 support chip for the AMD Geode LX CPU to enable UDMA modes.
Please notice that Soekris NET5501 bios versions before 1.32f has a bug that prevents this from working.
Approved by: re (gnn) MFC: 2 weeks
|
172134 |
10-Sep-2007 |
simon |
Add PCI IDs for Intel ICH9.
PR: kern/114473 Submitted by: Michael Fuckner <michael@fuckner.net> MFC after: 2 weeks OK'ed by: sos Approved by: re (bmah)
|
171819 |
13-Aug-2007 |
jhb |
Expand the data structure returned by the ATA RAID status ioctl to include detailed status on each of the backing subdisks. This allows userland to see which subdisks are online, failed, missing, or a hot spare.
MFC after: 1 week Approved by: re (bmah) Reviewed by: sos
|
171054 |
26-Jun-2007 |
remko |
Add Viking Interworks 256MB as an ata device; this might give some false positives but at this moment it is better to add support then to dont have it at all (comment from Soren).
PR: kern/111516 Submitted by: Thomas Nystrom <thn at saeab dot se> Approved by: re (kensmith) Approved by: imp (mentor) OK'ed by: sos (With the comment noted above about false positives).
|
171025 |
25-Jun-2007 |
sos |
Add support for the nVidia MCP61 series chipset.
Approved by: re (mux@)
|
171013 |
23-Jun-2007 |
imp |
Include usb_port.h
Approved by: re@ (blanket and/or cleanup commit approval)
|
170872 |
17-Jun-2007 |
scottl |
Prepare for future integration between CAM and newbus. xpt_bus_register now takes a device_t to be the parent of the bus that is being created. Most SIMs have been updated with a reasonable argument, but a few exceptions just pass NULL for now. This argument isn't used yet and the newbus integration likely won't be ready until after 7.0-RELEASE.
|
170678 |
13-Jun-2007 |
bms |
Do not attempt to enable AHCI mode on ALi SATA controllers other than the 5288.
It is not correctly implemented in earlier silicon, and the BIOS often lies about AHCI capability on platforms where these chips are deployed. With this change I am able to boot FreeBSD on the ASUS Vintage AH-1 barebones system.
Approved by: sos
|
169300 |
06-May-2007 |
pjd |
File d_ident field with disk's serial number.
No answer from: sos
|
169214 |
02-May-2007 |
scottl |
MPSAFE atapi-cam
|
169116 |
30-Apr-2007 |
thomas |
(atapi_action, case XPT_SCSI_IO): Enable DMA only for READ and WRITE commands as some combinations of chipset, controller and target do not behave correctly when DMA is enabled for other commands.
PR: kern/103602 MFC after: 2 weeks
|
169115 |
30-Apr-2007 |
thomas |
(atapi_cb): Fix test for the presence of sense data. An incorrect condition was being tested, which would result in a system hang in some configurations.
PR: kern/112119 Reviewed by: scottl MFC after: 3 days
|
169058 |
26-Apr-2007 |
roberto |
Use the same timeout parameters for BIO_FLUSH as with the other commands.
This workaround the problem in Parallels/VMWare where the emulated drivers are slower, especially with ATA_FLUSHCACHE. The problem appears much more frequently with ZFS which use it a lot more.
Approved: sos, pjd
|
168752 |
15-Apr-2007 |
scottl |
Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM will use to synchornize and protect all data objects that are used for that SIM. Drivers that are not yet MPSAFE register Giant and operate as usual. RIght now, no drivers are MPSAFE, though a few will be changed in the coming week as this work settles down.
The driver API has changed, so all CAM drivers will need to be recompiled. The userland API has not changed, so tools like camcontrol do not need to be recompiled.
|
168503 |
08-Apr-2007 |
sos |
OK, this is not my day, fix the former fix :/
|
168500 |
08-Apr-2007 |
sos |
Hopefully unbreak the 64bit DMA support this time.
|
168493 |
08-Apr-2007 |
sos |
Dont zero out 64BIT flag on DMA ops.
|
168432 |
06-Apr-2007 |
sos |
Add 64bit addressing support to SiI 3132/3124
|
168431 |
06-Apr-2007 |
sos |
Remove debug gunk.
|
168430 |
06-Apr-2007 |
sos |
Add support for 64bit addressing to AHCI and Marvell controllers. Munged into ATA shape and Marvell specifics my yours truely.
Submitted by: jhb
|
167513 |
14-Mar-2007 |
kevlo |
Make it compile
|
167508 |
13-Mar-2007 |
thomas |
(atapi_action): Improve error reporting by removing ATA_R_QUIET flag from ATAPI requests. If CAM debugging is enabled, also mark ATAPI requests with ATA_R_DEBUG flag.
(atapi_cb): Report ATAPI timeouts to the CAM layer. Fix incorrect debugging traces in the presence of ATAPI errors.
PR: kern/103602 MFC after: 2 weeks
|
167507 |
13-Mar-2007 |
thomas |
(reinit_bus): When the ATAPI bus is reset, do not schedule an automated CAM rescan if the ATAPI device entries have not changed.
The ATAPI bus may be reset for a variety of reasons, including any time an ATAPI request times out. It is not necessary to rescan at the CAM level in such a case, unless a device has appeared or disappeared, or has otherwise changed.
PR: kern/103602 MFC after: 2 weeks
|
167506 |
13-Mar-2007 |
thomas |
(ata_completed): When REQUEST SENSE is automatically issued after a failed ATAPI request, do not clear the ATA_R_DEBUG flag. This allows a request marked as requiring debug traces to produce these traces also during the completion of the autosense processing.
Reviewed by: sos MFC after: 2 weeks
|
167488 |
12-Mar-2007 |
sos |
Fix writes on siiprb type chips.
|
167479 |
12-Mar-2007 |
sos |
Fix support for the VIA8237A SATA part.
HW sponsored by: Bob Bishop
|
167386 |
09-Mar-2007 |
sos |
Add support for the Silicon Image SiI 3124 and SiI 3132.
HW donated by: Adriaan de Groot
|
167378 |
09-Mar-2007 |
sos |
More SATA phy/reset cleanup and simplification. Fix a long standing bogon in the sii_reset code.
|
167347 |
08-Mar-2007 |
sos |
Refine ahci_status to be more simple.
|
167344 |
08-Mar-2007 |
sos |
Cleanup the channel/phy reset code.
|
167153 |
01-Mar-2007 |
sos |
Add support for the 3 (PATA) channel on the VIA 6421 chip.
HW donated by: Fabian Peters
|
167061 |
27-Feb-2007 |
thomas |
(cam_rescan): Do not reference ccb->ccb_h.path in CAM_DEBUG call before it is initialized; use path instead.
This change fixes a panic when using atapicam in conjunction with CAMDEBUG, which has been described under kern/103602.
Thanks to Josh Carroll <josh.carroll@gmail.com> for providing the traces that allowed identifying this problem.
PR: kern/103602 MFC after: 1 week
|
166909 |
23-Feb-2007 |
jhb |
Use 'pause' in several places rather than trying to tsleep() on NULL (which triggers a KASSERT) or local variables. In the case of kern_ndis, the tsleep() actually used a common sleep address (curproc) making it susceptible to a premature wakeup.
|
166901 |
23-Feb-2007 |
piso |
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()
o add an int return code to all fast handlers
o retire INTR_FAST/IH_FAST
For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current
Reviewed by: many Approved by: re@
|
166878 |
21-Feb-2007 |
sos |
Update copyright headers.
|
166877 |
21-Feb-2007 |
sos |
Try again with supporting AHCI chipsets with partly implemented ports.
|
166872 |
21-Feb-2007 |
sos |
Be a little less stringent in getting progress report data.
|
166871 |
21-Feb-2007 |
sos |
Temporarily disable the support for some incarnations of the ICH8 chip that has non consecutively numbered ports. This should fix current SATA problems. Support AHCI chips where the ports are not consecutively numbered as in some incarnations of the ICH8 chip.
|
166802 |
17-Feb-2007 |
sos |
Add support for chipsets that has NULL'd BAR's for legacy ports. This allows DMA to be used on a fine little geode system I got here and most like on lots of older systems like that.
HW donated by: Paul Ghering
|
166773 |
15-Feb-2007 |
sos |
Support AHCI chips where the ports are not consecutively numbered as in some incarnations of the ICH8 chip. Also fix the panic introduced by the last commit.
|
166661 |
12-Feb-2007 |
sos |
Rearrange the SATA connect logic so that we so that we pickup ATAPI devices. The rest of the logic should be in place for most supporting chipsets.
|
166477 |
03-Feb-2007 |
rink |
Add support for the NetCell NC3000/5000 series SATA RAID cards.
Reviewed by: sos Approved by: imp (mentor) MFC after: 1 week
|
166287 |
27-Jan-2007 |
remko |
Add the SMART command to the ATA instruction set. When the disk has an error, it will now print SMART instead of 'Unknown CMD'.
PR: kern/93368 Submitted by: Garry Belka <garry at NetworkPhysics dot COM> Approved by: sos
|
165768 |
04-Jan-2007 |
sos |
Add support for the Marvell 6101/6145 PATA chips used on many new Intel boards.
HW donated by: Sentex
|
165759 |
04-Jan-2007 |
sos |
Add new PATA only JMicron chip.
|
165487 |
23-Dec-2006 |
remko |
Fix a typo in ata-queue.c
PR: kern/107100 Submitted by: Stephen J. Roznowski <sjr at comcast dot net> Approved by: sos
|
165286 |
16-Dec-2006 |
cognet |
Do not special-case __ARMEB__, we handle that in the arm code.
Approved by: sos
|
164354 |
17-Nov-2006 |
sos |
Deal more generically with the byteswap needed on !littleendian HW. Account for the odd layout on ARM bigendian HW.
|
164033 |
06-Nov-2006 |
rwatson |
Sweep kernel replacing suser(9) calls with priv(9) calls, assigning specific privilege names to a broad range of privileges. These may require some future tweaking.
Sponsored by: nCircle Network Security, Inc. Obtained from: TrustedBSD Project Discussed on: arch@ Reviewed (at least in part) by: mlaier, jmg, pjd, bde, ceri, Alex Lyashkov <umka at sevcity dot net>, Skip Ford <skip dot ford at verizon dot net>, Antoine Brodin <antoine dot brodin at laposte dot net>
|
163896 |
02-Nov-2006 |
mjacob |
2nd and final commit that moves us to CAM_NEW_TRAN_CODE as the default.
Reviewed by multitudes.
|
163834 |
31-Oct-2006 |
pjd |
Implement BIO_FLUSH handling for da(4), amr(4), ata(4) and ataraid(4).
Sponsored by: home.pl
|
163816 |
31-Oct-2006 |
mjacob |
The first of 3 major steps to move the CAM layer forward to using the CAM_NEW_TRAN_CODE that has been in the tree for some years now.
This first step consists solely of adding to or correcting CAM_NEW_TRAN_CODE pieces in the kernel source tree such that a both a GENERIC (at least on i386) and a LINT build with CAM_NEW_TRAN_CODE as an option will compile correctly and run (at least with some the h/w I have).
After a short settle time, the other pieces (making CAM_NEW_TRAN_CODE the default and updating libcam and camcontrol) will be brought in.
This will be an incompatible change in that the size of structures related to XPT_PATH_INQ and XPT_{GET,SET}_TRAN_SETTINGS change in both size and content. However, basic system operation and basic system utilities work well enough with this change.
Reviewed by: freebsd-scsi and specific stakeholders
|
163124 |
08-Oct-2006 |
sos |
Add missing PCI ID for the acer m5288
|
162618 |
25-Sep-2006 |
sos |
add support for the ALI/ULI M5288 AHCI part.
patch by: Sven Petai
|
162311 |
14-Sep-2006 |
sos |
If current_heads or current_sectors in the disk cap page are zero, dont try to use the current_ geometry. This avoids a panic with BIOS'n that sets these to zero.
|
162259 |
12-Sep-2006 |
sos |
Busmaster DMA address fix in VIA 6421 case.
|
162257 |
12-Sep-2006 |
sos |
Format mask lacks one bit.
Reported by: jkim
|
162230 |
11-Sep-2006 |
sos |
Add support for a few more Serverworks and lookalikes chips.
|
162229 |
11-Sep-2006 |
sos |
Update to fit latest USB cleanup crusade.
|
162221 |
11-Sep-2006 |
sos |
CF devices are ATA not ATAPI.
|
161928 |
03-Sep-2006 |
jmg |
add a newbus method for obtaining the bus's bus_dma_tag_t... This is required by arches like sparc64 (not yet implemented) and sun4v where there are seperate IOMMU's for each PCI bus... For all other arches, it will end up returning NULL, which makes it a no-op...
Convert a few drivers (the ones we've been working w/ on sun4v) to the new convection... Eventually all drivers will need to replace the parent tag of NULL, w/ bus_get_dma_tag(dev), though dev is usually different for each driver, and will require hand inspection...
Reviewed by: scottl (earlier version)
|
161883 |
02-Sep-2006 |
sos |
Add support for VIA 8237A.
|
161736 |
30-Aug-2006 |
sos |
Properly initialize the nVidia MCP5X interrupts etc.
Suggested by: nVidia
|
161606 |
25-Aug-2006 |
sos |
Properly initialize and destroy the RAID lock. Also dont mess with RAID's thats not attached yet and avoid panic.
|
161430 |
18-Aug-2006 |
sos |
Update JMicron support to also work with chips where the PATA and SATA parts are on individual PCI functions.
HW donated by: JMicron
|
161428 |
18-Aug-2006 |
imp |
Appened ull to a really large integer constant to fix build on i386
|
161291 |
14-Aug-2006 |
sos |
Add support for the ICH8 and ESB2 chips, also add a few other missing ICH7 parts.
HW donated by: JMicron
|
161227 |
11-Aug-2006 |
sos |
Unbreak nForce4 SATA support. Hopefully I dont break something else this time.....
|
161128 |
09-Aug-2006 |
imp |
Most platforms map the actual drive geometry to the firmware's notion of geometry. However, some platforms have a more complicated mapping of the firmware values to the actual values. pc98 is the only platform that currently does this. This mapping is necessary for large disks connected to pc98 boxes, as the firmware labels require do special hacks to the actual geometry for interoperability. We cannot do this all in the geom layer because of initialization issues (geom looks for an already initialized pc98 label, but we need the geometry information prior to initialization, classic chicken and egg problem). We pass the disk and the device_t to this function because the geometry mapping depends on what kind of controller is used.
This hook allows platforms that want to override things to do so, and has 0 overhead on all other platforms. These patches have been in use locally for a long time, and received good feedback from the pc98 community and sos@ at various times during their development.
MFC After: 1 week
|
160999 |
05-Aug-2006 |
sos |
Unbreak nForce3 SATA support.
|
160616 |
24-Jul-2006 |
sos |
Finally fix support for the newer MCP51/MCP55 nVidia chipsets. The register layout has changed since the original NV4 - sigh. Hotplug support has been fixed for all nVidia chipsets that supports it (including the MCP51/55).
HW donated by: Kingsley College
|
160554 |
21-Jul-2006 |
imp |
If we get an error w/o atapi sense information, just print a newline to terminate the message we started. I get non-terminated messages when reading audio tracks w/o this patch.
|
160096 |
04-Jul-2006 |
sos |
Add preliminary support for the Serverworks HT1000 chip.
HW sponsored by: Yahoo!
|
160007 |
28-Jun-2006 |
sos |
Dont call free on non-alloc'd items.
|
160000 |
28-Jun-2006 |
sos |
Update AHCI support to be more generic. Add support for AHCI on the VIA VT8251.
|
159771 |
19-Jun-2006 |
sos |
Fix type casts so that we get at the right response queue.
Submitted by: glebius+ru
|
158471 |
12-May-2006 |
jhb |
Remove various bits of conditional Alpha code and fixup a few comments.
|
158427 |
11-May-2006 |
sos |
Fix probe printing of highpoint and promise controllers.
|
157807 |
17-Apr-2006 |
sos |
Add missing ";"
found by: jmg
|
157771 |
15-Apr-2006 |
maxim |
o s/PsuedoRAID/PseudoRAID/.
PR: kern/94306 Submitted by: Esa Karkkainen
|
157756 |
14-Apr-2006 |
sos |
Dont poll for ATA_IDLE on a detached channel in suspend.
|
157329 |
31-Mar-2006 |
sos |
Make the ATAPI sense data accessible when using the ioctl interface
MFC candidate.
|
157283 |
30-Mar-2006 |
marcel |
In afd_describe(), don't initialize sizestring. On ia64, gcc(1) will generate code that calls memset, which we don't have in the kernel.
MFC after: 3 days
|
156838 |
18-Mar-2006 |
sos |
Properly use the sense key info
|
156683 |
13-Mar-2006 |
sos |
Add support for the JMicron JMB361, 365 and 366 chips.
HW and documentation kindly provided by JMicron.
|
156682 |
13-Mar-2006 |
sos |
Put autosense data in the right place (needs a 4pos left shift).
|
156540 |
10-Mar-2006 |
sos |
Module that adds support for using USB storage devices through the ATA framework. Mainly written to be able to use USB Flash keys. This is work in progress so use with care :) Doesn't need CAM and cannot coexist with umass.c
|
156534 |
10-Mar-2006 |
sos |
write the right unit # on verbose output.
|
156487 |
09-Mar-2006 |
sos |
Only use the channel in the request given to ata_completed if its still present.
|
156486 |
09-Mar-2006 |
sos |
typo.
|
156473 |
09-Mar-2006 |
sos |
Get rid of all the "long long"/"maxint" casting around in printf's. On all our platforms intmax == int64_t so simply using %j to print int64_t's is safe all over, and doesn't pullute the code.
|
156434 |
08-Mar-2006 |
sos |
ATA_USB will need to hook into the delayed boot identify to have interrupts running, so externalize it.
|
156426 |
08-Mar-2006 |
sos |
Always read the TOC in acd_read_toc even if MEDIA_CHANGED wasn't set. Since we cannot (reliably) detect when media has been removed before we try to touch it, this could leave stale TOC's around.
|
156425 |
08-Mar-2006 |
sos |
Bail out of afd_sense if ENODEV.
|
156396 |
07-Mar-2006 |
sos |
Poll device for readiness before trying to get geometry etc.
|
156392 |
07-Mar-2006 |
sos |
Only look for ICRC and CORR errors on ATA devices not ATAPI.
|
156355 |
06-Mar-2006 |
mlaier |
Fix the build. %ju prints uintmax_t not unsigned long long (which is actually "longer" than uintmax_t for the understanding of printf).
|
156325 |
05-Mar-2006 |
sos |
Add USB modes.
|
156320 |
05-Mar-2006 |
sos |
Update atapi-fd to support direct devices such as disks.
|
156140 |
01-Mar-2006 |
sos |
Work around the deadlock that occours when ATA waits for the taskqueue to call back for completition and something else is holding the taskqueue waiting for ATA to return data. This should clear up the "semaphore timeout !! DANGER Will Robinson !!" in most situations, and log "taskqueue timeout - completing request directly" instead, with a delayed "WARNING - freeing taskqueue zombie request" when the taskqueue finally calls us back with the now stale request. (It would have been nice if there was a way to remove a scheduled item from a taskqueue, but that is not currently implemented in the kernel).
A real fix for this is in the works but wont make it to 6.1RELEASE
definite MFC candidate.
|
156003 |
25-Feb-2006 |
sos |
Fix ata_reinit so it does things in the right order to prevent panic's. Lock the channel so master/slave setups wont trash during reinit.
|
155959 |
23-Feb-2006 |
sos |
Keep the parent device (in this case the channel) around in ata_request, so we dont panic device removal or failure. Clean up ata_fail_requests to prevent the queue munging to fail.
|
155955 |
23-Feb-2006 |
sos |
In ata_cmd_allocate() only call ata_pci_allocate once.
found by: jhb@
|
155779 |
17-Feb-2006 |
sos |
Add r/w support for JMicron ATA RAID metadata. Acknowledgement should definitly go to JMicron Technology for providing full docs on the metadata format as the only vendor so far, big thanks from here.
|
155761 |
16-Feb-2006 |
sos |
Add support for the JMicron JMB363 dual SATA + single PATA controller. Documentation and HW kindly provided by JMicron.
|
155601 |
13-Feb-2006 |
sos |
Add a reset of the AHCI machinery to the ICH6/ICH7 support. This should fix the missed devices on some systems.
|
155479 |
09-Feb-2006 |
sos |
Unbreak Promise SATAII/150 controllers caused by the DMA dump changes.
|
155478 |
09-Feb-2006 |
sos |
Unbreak dump on legacy systems. Needs a more clean solution but that is more intrusive and can wait 'til after 6.1
|
155393 |
06-Feb-2006 |
sos |
Unbreak DMA dumo on Intel 31224.
|
154829 |
25-Jan-2006 |
sos |
Add support for the JMicron JMB360 SATAII controller. Thanks to JMicron for providing needed info.
HW donated by: Ralf Folkerts
|
154768 |
24-Jan-2006 |
sos |
Do not test for DMA status on legacy ATA devices. This has the unfortunate side effect that legacy ATA controllers at irq14 and irq15 cannot share interrupts with anything else without major problems. This fixes the ATAPI DMA problems some systems/devices have seen.
|
154644 |
21-Jan-2006 |
sos |
Fix panic on boot due to not all SATA chipsets having SSTATUS registeri resources set.
|
154517 |
18-Jan-2006 |
sos |
Correct two promise entries, these are only 2port SATA.
|
154515 |
18-Jan-2006 |
sos |
Whitespace cleanup.
|
154511 |
18-Jan-2006 |
sos |
Properly report SATA connection speed.
|
154507 |
18-Jan-2006 |
sos |
Add support for using DMA on dump, greatly speeds up the dump process. Add dump support in ataraid.
|
154063 |
05-Jan-2006 |
sos |
Get rid of the advertising clause in the copyright.
|
154040 |
04-Jan-2006 |
sos |
Return the proper rmi field in DVDIOCREADSTRUCTURE.
PR: 89650
|
154019 |
04-Jan-2006 |
sos |
Fix the promise modesetting for old chips.
Pointy hat to: sos
|
154012 |
04-Jan-2006 |
sos |
Fix promise probe printing.
|
153916 |
30-Dec-2005 |
sos |
Add hotplug support for Marvell chips.
|
153789 |
28-Dec-2005 |
sos |
Further updates to the Marvell support code. Should be reliable enough for actual use by now.
|
153755 |
27-Dec-2005 |
sos |
Change the probes in ATA to return a negative value on success. This allows other driver to take over if needed during probe, and allows me to distribute new drivers as modules.
|
153754 |
27-Dec-2005 |
sos |
Update the last commit to also take 48Bit access functions.
|
153753 |
27-Dec-2005 |
sos |
Add initial support for the Marvell 88SX[56]0[48][01] series of SATA chips.
Hardware donated by: Matthew Jacob Hardware donated by: Y!
|
153752 |
27-Dec-2005 |
sos |
Fix rebuilds of arrays that got stuck. Misc minor fixes.
Bughunting and initial fixes by Pav@ and Anton.
|
153473 |
16-Dec-2005 |
sos |
Cleanup the strings for printing chipset names, saves quite some space.
Add a couble new nVidia chips now we are here.
|
153471 |
16-Dec-2005 |
scottl |
Make this compile on 64bit systems. It likely isn't correct, but that can be sorted out later.
|
153446 |
15-Dec-2005 |
sos |
Add support for writing VIA metadata.
Null out the metadata on disks when array is deleted.
|
153416 |
14-Dec-2005 |
sos |
Add RAID0+1 and RAID5 support to VIA RAID code. Fix support for multiple arrays.
|
153415 |
14-Dec-2005 |
sos |
Add support for VIA VT8251 southbridge. SATA support for now in compat mode, but all 4 channels usable.
|
153414 |
14-Dec-2005 |
sos |
Correct calculation of RAID0 sizes on VIA RAID arrays.
|
153338 |
12-Dec-2005 |
sos |
Add support for writing SiS metadata.
|
153269 |
09-Dec-2005 |
sos |
Unbreak hotplug support on the ICH6 and ICH7 chipsets.
|
153142 |
05-Dec-2005 |
sos |
Dont use the BUS_DMA_ALLOCNOW flag. Instead use BUS_DMA_NOWAIT and return ENOMEM to the upper layers if we run out of memory.
This solves part of the trouble with running on >4GB memory systems.
|
153118 |
05-Dec-2005 |
sos |
Switch off debugging that was left on in last commit.
|
153117 |
05-Dec-2005 |
sos |
Add support for writing Intel MatrixRAID arrays. Do a little better on handling volumes as well, however we cant create multiple volumes from FreeBSD yet.
HW sponsored by: Mullet Scandinavia AB
|
153015 |
02-Dec-2005 |
sos |
Update the ICH7 support so it deals better with chips without AHCI.
Update Intel MatrixRAID support to be able to pick up RAID0+1 (RAID10) and RAID5 arrays without panic'ing. This has the side effect of now also supporting multiple volumes on MatrixRAID's now I have the metadata better understood..
HW sponsored by: Mullet Scandinavia AB
|
152931 |
29-Nov-2005 |
sos |
Fix the ata_composite/ata_request leak when using RAID0+1.
Submitted by: Michael Butler
Minor changes to fit ATA style by me.
|
152908 |
28-Nov-2005 |
sos |
Fix SiS SATA support, the SATA registers was off. Add support for SiS metadata.
HW donated by: obrien
|
152883 |
28-Nov-2005 |
keramida |
Fix two identical harmless typos in ata error messages: s/issueing/issuing/
PR: kern/89481 Submitted by: John Nielsen Approved by: sos MFC after: 1 week
|
152783 |
25-Nov-2005 |
sos |
When IOCATAGPARM is called, update the capabilities page that is stored in the kernel and return the new values.
|
151897 |
31-Oct-2005 |
rwatson |
Normalize a significant number of kernel malloc type names:
- Prefer '_' to ' ', as it results in more easily parsed results in memory monitoring tools such as vmstat.
- Remove punctuation that is incompatible with using memory type names as file names, such as '/' characters.
- Disambiguate some collisions by adding subsystem prefixes to some memory types.
- Generally prefer lower case to upper case.
- If the same type is defined in multiple architecture directories, attempt to use the same name in additional cases.
Not all instances were caught in this change, so more work is required to finish this conversion. Similar changes are required for UMA zone names.
|
151826 |
28-Oct-2005 |
sos |
Return the right format (LBA/MSF) in TOC entries. Null the TOC on media change even if no media present.
Reported by: des
|
151736 |
27-Oct-2005 |
sos |
Enclose the delayed attach in Giant so we dont loose the race with other drivers trying to attach ATA devices like pccard. Dont clear the delayed flag before we are acutally finished.
Spotted by: imp
|
151276 |
13-Oct-2005 |
sos |
Minor cleanups, no functional changes
|
151267 |
12-Oct-2005 |
sos |
Add support for the ATI IXP[234]00 series chipsets.
HW donated by: sentex
|
151220 |
10-Oct-2005 |
sos |
Correct the former patch to the way it would have looked after review.
|
151219 |
10-Oct-2005 |
sos |
Properly react to allocation failures.
Found by: imp@
|
151183 |
09-Oct-2005 |
peadar |
When breaking up a large request into smaller ones for the strategy routine, create all the child bio objects before starting the requests, rather than starting them as created. This closes a race whereby some number of child operations could complete before the rest were ever created, and prematurely freeing the parent bio. This fixes the panics installing in VMWare and qemu
|
151002 |
06-Oct-2005 |
sos |
Add support for setting the SG list segment size. Use this for the SiI3112 workaround to get rid of the "oversized DMA" errors.
MFC to 6.0 candidate.
|
150481 |
22-Sep-2005 |
imp |
Forgot to commit ata-card fixes last night. Fix gleb's attempt to do the right thing by merging in the changes I neglected to commit last night.
|
150480 |
22-Sep-2005 |
glebius |
Fix build.
|
150311 |
19-Sep-2005 |
sos |
Dont wait for READY on ATAPI_IDENTIFY. Fixes the losage of some ATAPI device that reported failed probing with "timeout waiting for read DRQ".
|
150129 |
14-Sep-2005 |
sos |
Harden the hotplug support for SATA devices. This also fixes a few races that was present in the timeout/detach code.
Sponsored by: pair.com
|
149823 |
06-Sep-2005 |
sos |
Fix problem with finding the still working disk in a broken mirror on VIA.
|
149594 |
29-Aug-2005 |
sos |
In ata_mode2str() properly list -1 as UNSUPPORTED.
|
149565 |
29-Aug-2005 |
sos |
Fix support for the VIA 6421 controller.
|
149457 |
25-Aug-2005 |
sos |
Dont set default mode to ATA_DMA_MAX on devices not capable of DMA.
|
149387 |
23-Aug-2005 |
sos |
Apply fix for "pr82261 DMA-support on Sparc64 broken" The Acer chip or wiring that SUN uses has problems that this patch tries to work around. Original patch by Marius Strobl, hacked into shape by me..
|
149368 |
22-Aug-2005 |
sos |
Fix problem on Promise "mio" controllers and 48bit mode caused by last commit
|
149191 |
17-Aug-2005 |
sos |
Add support for working around controllers that cannot do DMA in 48bit mode. The workaround use PIO mode above ~137GB to allow using the disk. Add the Acer chips with rev < 0xc4 as first candidate.
|
149190 |
17-Aug-2005 |
sos |
Use the bio field instead of the driver field as intended.
|
148992 |
12-Aug-2005 |
sos |
Add support for the Promise PDC4071[89] chips used on fx the Fasttrak TX4300. Docs kindly provided by Promise.
|
148731 |
05-Aug-2005 |
sos |
Add support for the ITE IT8211F controller.
|
148704 |
04-Aug-2005 |
sos |
Dont limit all transfers to DEV_BSIZE (stale dbug code) Hide the loaded/unloaded message behind bootverbose
|
148536 |
29-Jul-2005 |
sos |
Remove stale struct ata_channel declaration.
Reported by: rodrigc
|
147644 |
28-Jun-2005 |
sos |
Zero donecount on auto request sense.
PR: 81450 Approved by: re@ (scottl)
|
147627 |
27-Jun-2005 |
sos |
Dont call ata_finish in ad_dump as that is no longer needed and causes panic. Dont try to enable read/write caching on devices that doesn't support it, this reduces the noise from ATA on flash devices and the like.
Approved by: re@ (scottl)
|
147580 |
24-Jun-2005 |
imp |
Eliminate unused argument in PCMCIA_CARD macro.
Provide a backwards compatible way to have the extra macro by defining PCCARD_API_LEVEL 5 before including pccarddevs for driver writers that want/need to have the same driver on 5 and 6 with pccard attachments.
Approved by: re (dwhite)
|
147292 |
11-Jun-2005 |
marcel |
Avoid GCC optimizations from injecting a call to memset(?) in order to initialize the buffer array in ata_raid_attach() by removing the initializer. There's no memset(?) in the kernel. Instead, assign '\0' to the first element. The buffer array holds strings only, so this is functionally equivalent.
Applies to: ia64 Tripped over by: tinderbox
|
147230 |
10-Jun-2005 |
sos |
Enable SATA hotplug support.
Submitted by: Olivier Houchard
|
147201 |
09-Jun-2005 |
sos |
Fix the long standing problem with poor transferrates on Intel ICHH type chips. The DMA timing value was set on device 0 for all devices :/
Prodded by: Harald Schmalzbauer
|
147187 |
09-Jun-2005 |
sos |
Fix the register offset for the ATAPI count register thats used to wrestle the older Promise chips to do 48bit addressing.
Spotted by: Martin Birgmeier
|
147167 |
09-Jun-2005 |
sos |
Use the presence of ctlr->dmainit instead of r_res1 to find out when to initialise DMA.
|
147139 |
08-Jun-2005 |
sos |
Add support for the Intel 31244. Most code by the submitters, hammered upon to get the right ATA fell by me.
Submitted by: Olivier Houchard Submitted by: Jia-Shiun Li
|
147054 |
06-Jun-2005 |
sos |
Apply the usual woodoo for 64bitness.
|
147052 |
06-Jun-2005 |
sos |
Add support for nVidia's software RAID "MediaShield".
HW Sponsored by: Yahoo!
|
147019 |
05-Jun-2005 |
sos |
Make nVidia SATA hotplug support DTRT.
HW sponsored by: Yahoo!
|
147012 |
05-Jun-2005 |
sos |
Unbreak the ICH6 AHCI support in !48Bit mode.
|
146318 |
17-May-2005 |
sos |
Make certain the the 48bit flag is reset if we dont translate LBA.
|
146268 |
16-May-2005 |
sos |
longer used (contents added to sys/ata.h)
|
146266 |
16-May-2005 |
sos |
Change the way ioctls are issue to ATA. The most prominent part is that its now possible to issue ata_requests directly to say acd0, instead of going through the cumbersome /dev/ata device.
|
146178 |
13-May-2005 |
sos |
Cleanup comments
|
146176 |
13-May-2005 |
sos |
Fix more ATAPI breakage. Apparently some devices are very picky on details :)
|
146112 |
11-May-2005 |
sos |
Add new Intel PCI ID's for the ICH7 chips (untested).
|
146106 |
11-May-2005 |
sos |
Add support for AHCI compliant ATA devices. For now just support the Intel ICH6 as that the HW at hand.
Sponsored by: pair.com
|
146100 |
11-May-2005 |
sos |
Add back one line that got deleted in the last commit. Change the comment there so it better describes whats going on.
This should fix the boot problems of late.
|
146096 |
11-May-2005 |
sos |
Fix ATAPI DMA. We need to set the proper flags for DMA modes.
|
145818 |
03-May-2005 |
sos |
Reshape the dma code to be a bit more flexible so it can cope with new HW that has new and different demands. Fix a few nits in former commit in this cleanup crusade.
Sponsored by: pair.com
|
145789 |
02-May-2005 |
sos |
Always attach a subdisk even if no valid metadata found. This allows the disks to be used later in a raid create.
|
145769 |
01-May-2005 |
sos |
Update on the last commit, the dma* funciton needs to be called with a channel device, not an ata device, or we'll be out of luck in reset/timeout where we dont have a device.
|
145760 |
01-May-2005 |
sos |
Go back to the old way of finding the Promise metadata, the new way was too simple causing older controllers metadata to get lost.
|
145713 |
30-Apr-2005 |
sos |
Take newbusification one step further, ie use the device_t more consequently all way through the code down the layers, instead of the mix'n'match that resulted from the conversion done earlier.
Sponsored by: pair.com
|
145676 |
29-Apr-2005 |
sos |
Now that probing is working in the new fashion, we need to go back to having ata_getparm issue an ata_request and not fool around with the HW on its own. Needed for new HW support.
|
145642 |
28-Apr-2005 |
sos |
Provide a default setmode method. This shaves off multiple copies of the same setmode stub.
|
145641 |
28-Apr-2005 |
sos |
Rearrange the way the reset code is called. Prepare for different looking controllers.
|
145542 |
26-Apr-2005 |
sos |
Fix a bug introduced in r1.89 thats caused leak of requests, and possibly bogus data to be written.
|
145499 |
25-Apr-2005 |
sos |
Cosmetics
|
145498 |
25-Apr-2005 |
sos |
Only try to allocate and use the SATA resource if they are enabled by the BIOS. It seems some BIOS's doesn't get this right, and that would result in ATA panic'ing.
|
145354 |
21-Apr-2005 |
sos |
Rehash the timeout code to make it more simple. This also removes the warning timeout on the taskqueues stalling as I'm tired of getting ATA error reports for problems in other parts ;) Misc cosmetic and comment cleanups now we are here.
|
145329 |
20-Apr-2005 |
sos |
When a rebuild is done, properly mark the arrays as functional again.
|
145327 |
20-Apr-2005 |
sos |
Properly hook in devices found by SATA connect events. This broke on the changes done to get atapicam happy earlier.
|
145273 |
19-Apr-2005 |
sos |
CFA (Compact Flash) devices has a special config ID that fails the normal ATA device check in ata-disk.c. Add support for the CFA magic.
|
145257 |
19-Apr-2005 |
sos |
Fix indentation problem in the last commit
|
145250 |
18-Apr-2005 |
phk |
Add a named reference-count KPI to hold off mounting of the root filesystem.
While we wait for holds to be released, print a list of who holds us back once per second.
Use the new KPI from GEOM instead of vfs_mount.c calling g_waitidle().
Use the new KPI also from ata.
With ATAmkIII's newbusification, ata could narrowly miss the window and ad0 would not exist when we tried to mount root.
|
145239 |
18-Apr-2005 |
sos |
Add uma zone for composite ops.
Submitted by: des
|
145236 |
18-Apr-2005 |
sos |
Adjust the RAID type pickup code for the VIA, we dont actually care if the array is bootable or not (yet).
|
145191 |
17-Apr-2005 |
sos |
Add one more Promise SATAII/150 chip id.
|
145168 |
16-Apr-2005 |
sos |
Spell ATA_NFORCE4_S2 correctly.
|
145110 |
15-Apr-2005 |
sos |
Make things compile again with ATA_STATIC_ID.
|
145102 |
15-Apr-2005 |
sos |
Move the creation of ata_channel child devices to the channel code. This allows to attach to the children (ATA devices) even without a driver being attached. This allows atapi-cam to do its work both with and without the pure ATAPI driver being present.
ATA patches by /me ATAPI-cam pathes by Thomas
|
145064 |
14-Apr-2005 |
sos |
Read back the real taskfile register values when in 48BIT mode.
|
145000 |
13-Apr-2005 |
sos |
Add a ata_setmode method so we dont panic on setmode. Note that the mode is only set on the device, we (mostly) have no knowledge on how to set mode on the controller if at all possible.
|
144954 |
12-Apr-2005 |
sos |
On amd64 int64_t != long long.
|
144940 |
12-Apr-2005 |
sos |
Better use the right name for the VIA software RAID.
|
144936 |
12-Apr-2005 |
sos |
Add support for VIA Tech metadata as used on thier SATA parts.
|
144915 |
11-Apr-2005 |
sos |
Fix the same silly alloc mistake for nVidia and SiS as with VIA in the previous commit.
|
144914 |
11-Apr-2005 |
sos |
Fix the bug that caused SATA disks on VIA etc to fail attach.
|
144886 |
10-Apr-2005 |
sos |
Use the ata_suspend/resume functions instaead of the bus_generic ones. This should unbreak suspend/resume.
Contributed by: Wiktor Niesiobedzki
|
144885 |
10-Apr-2005 |
sos |
Fix FreeBSD native SPAN arrays.
Prodded by: Ian Dowse
|
144861 |
10-Apr-2005 |
sos |
Refine the SATA PHY code so the time consumed during probe is reduced.
Add the older nVidia nForce2 SATA chip to supported HW.
|
144822 |
08-Apr-2005 |
scottl |
Explicity make atapi-cam depend on CAM.
Submitted by: Michal Mertl
|
144808 |
08-Apr-2005 |
sos |
Add support for the PHY on nVidia, SiS and VIA chips This code is done blindfolded as I dont have such HW here, so reports of success/failure are most welcome.
More SATA PHY cleanups.
|
144800 |
08-Apr-2005 |
sos |
Put the BUS_DMASYNC_PREWRITE in the rigth position.
|
144790 |
08-Apr-2005 |
sos |
Generalise the SATA PHY handling code so it wont be duplicated for each SATA chip. Promise and Silicon Image are the current candidates for this.
|
144707 |
06-Apr-2005 |
sos |
Add support for controllers that doesn't have the usual taskfile layout. No functional changes.
|
144669 |
05-Apr-2005 |
scottl |
Fix a use-after-free problem in atapi_cb(). Add some necessary synchronization to the XPT_PATH_INQ op. Don't leak locks on failure in XPT_SCSIIO. Correctly fix the CAMDEBUG message.
|
144667 |
05-Apr-2005 |
sos |
Add firstshot support for Acer Labs Inc SATA parts Update ALi PATA support to handle ATA133 as well
|
144662 |
05-Apr-2005 |
phk |
Push some faulty debugging aside so LINT compiles.
|
144644 |
05-Apr-2005 |
scottl |
Commit ATAPI-CAM for ATAmkIII. Improvements and changes:
- newbus plumbing. Each atapicam bus is a child off of a parent ata channel bus. This is somewhat of a hack, but allows the ata core to be completely free of atapicam knowledge. - No more global lists of softc's and no more groping around in internal ata structures on each command. - Giant-free operation of the completion handler. - Per-bus mutex for protecting the busy list and synchronizing detach. - Lots of streamlining and dead code elimination, better adherence to the CAM locking protocol.
This feature still requires that the appropriate atapi-* driver be present for each atapi device that you want to talk to (i.e. atapi-cd for cdroms). It does work both compiled into the kernel and as a loadable module.
Reviewed by: thomas, sos
|
144591 |
03-Apr-2005 |
sos |
Fix a buglet that caused slaves to be nondetected.
|
144397 |
31-Mar-2005 |
sos |
Change the ata_* methods to use a channel device instead of a controller device. This helps when there is no controller parent to a channel (PPC port).
|
144382 |
31-Mar-2005 |
sos |
Correct the PCI ID for the SiS 965, and add support for the SATA part that was left our by accident.
Prodded by: Patrik Backlund
|
144331 |
30-Mar-2005 |
sos |
Whoops, this got left out from the megacommit
|
144330 |
30-Mar-2005 |
sos |
This is the much rumoured ATA mkIII update that I've been working on.
o ATA is now fully newbus'd and split into modules. This means that on a modern system you just load "atapci and ata" to get the base support, and then one or more of the device subdrivers "atadisk atapicd atapifd atapist ataraid". All can be loaded/unloaded anytime, but for obvious reasons you dont want to unload atadisk when you have mounted filesystems.
o The device identify part of the probe has been rewritten to fix the problems with odd devices the old had, and to try to remove so of the long delays some HW could provoke. Also probing is done without the need for interrupts, making earlier probing possible.
o SATA devices can be hot inserted/removed and devices will be created/ removed in /dev accordingly. NOTE: only supported on controllers that has this feature: Promise and Silicon Image for now. On other controllers the usual atacontrol detach/attach dance is still needed.
o Support for "atomic" composite ATA requests used for RAID.
o ATA RAID support has been rewritten and and now supports these metadata formats: "Adaptec HostRAID" "Highpoint V2 RocketRAID" "Highpoint V3 RocketRAID" "Intel MatrixRAID" "Integrated Technology Express" "LSILogic V2 MegaRAID" "LSILogic V3 MegaRAID" "Promise FastTrak" "Silicon Image Medley" "FreeBSD PseudoRAID"
o Update the ioctl API to match new RAID levels etc.
o Update atacontrol to know about the new RAID levels etc NOTE: you need to recompile atacontrol with the new sys/ata.h, make world will take care of that. NOTE2: that rebuild is done differently from the old system as the rebuild is now done piggybacked on read requests to the array, so atacontrol simply starts a background "dd" to rebuild the array.
o The reinit code has been worked over to be much more robust.
o The timeout code has been overhauled for races.
o Support of new chipsets.
o Lots of fixes for bugs found while doing the modulerization and reviewing the old code.
Missing or changed features from current ATA:
o atapi-cd no longer has support for ATAPI changers. Todays its much cheaper and alot faster to copy those CD images to disk and serve them from there. Besides they dont seem to be made anymore, maybe for that exact reason.
o ATA RAID can only read metadata from all the above metadata formats, not write all of them (Promise and Highpoint V2 so far). This means that arrays can be picked up from the BIOS, but they cannot be created from FreeBSD. There is more to it than just the missing write metadata support, those formats are not unique to a given controller like Promise and Highpoint formats, instead they exist for several types, and even worse, some controllers can have different formats and its impossible to tell which one. The outcome is that we cannot reliably create the metadata of those formats and be sure the controller BIOS will understand it. However write support is needed to update/fail/rebuild the arrays properly so it sits fairly high on the TODO list.
o So far atapicam is not supported with these changes. When/if this will change is up to the maintainer of atapi-cam so go there for questions.
HW donated by: Webveveriet AS HW donated by: Frode Nordahl HW donated by: Yahoo! HW donated by: Sentex Patience by: Vife and my boys (and even the cats)
|
143172 |
06-Mar-2005 |
njl |
Whitespace nit. Clarifies which body this line belongs to.
|
143163 |
05-Mar-2005 |
imp |
Use BUS_PROBE_DEFAULT for pci probe return value
|
142977 |
02-Mar-2005 |
mdodd |
When resubmitting a timed out request, reset donecount.
Submitted by: Nate Lawson <nate AT root.org>
|
142974 |
02-Mar-2005 |
mdodd |
Handle PIO timeouts in ata_end_transaction() by immediately returning. Failure to do this will result in following ata_pio_read() calls walking off the end of the read buffer.
This resolves the "memory modified after free" panics common with Thinkpads and CD/DVD drives.
Submitted by: Nate Lawson <nate AT root.org>
|
142972 |
02-Mar-2005 |
mdodd |
In ata_generic_reset() while waiting for both master & slave to become idle the 'mask' variable could be set to 0, resulting in the timeout loop running for the full 31 seconds.
Handling this case eliminates long hangs on resume on some systems.
Submitted by: Nate Lawson <nate AT root.org>
|
142720 |
27-Feb-2005 |
phk |
Use dynamic major number allocation.
|
141462 |
07-Feb-2005 |
mdodd |
Avoid using tsleep() in the resume path as it may result in the system hanging if timer interrupts aren't running yet.
This allows my Thinkpad to resume successfully with APM.
Approved by: sos MFC after: 2 weeks
|
141031 |
30-Jan-2005 |
sobomax |
Boot away another stackgap (one of the lest ones in linuxlator/i386) by providing special version of CDIOCREADSUBCHANNEL ioctl(), which assumes that result has to be placed into kernel space not user space. In the long run more generic solution has to be designed WRT emulating various ioctl()s that operate on userspace buffers, but right now there is only one such ioctl() is emulated, so that it makes little sense.
MFC after: 2 weeks
|
140846 |
26-Jan-2005 |
imp |
Catchup to the iodata renaming
|
139546 |
01-Jan-2005 |
sos |
Further update to the Promise code. Support should now cover all old and current products.
|
139261 |
24-Dec-2004 |
sos |
Loosen the probe a bit. Try to get out of probing as early as possible on (hopefully) vacant channels.
|
139260 |
24-Dec-2004 |
sos |
Update the Promise support for combo (SATA+PATA) controllers.
|
138732 |
12-Dec-2004 |
phk |
Pass the file->flags down to geom ioctl handlers.
Reject certain ioctls if write permission is not indicated.
Bump geom API version.
Reported by: Ruben de Groot <mail25@bzerk.org>
|
138617 |
09-Dec-2004 |
sos |
Compensate for off by one bugs in disk firmware for 48BIT addressing cutover.
|
138582 |
08-Dec-2004 |
sos |
Update the ICH6 support so all 4 SATA channels can be used. We still use "normal" mode, AHCI mode is in the works still.
HW donated by: Sentex HW donated by: Yahoo!
|
138555 |
08-Dec-2004 |
sos |
Add support for the ITE IT8212F controller.
HW donated by: Yahoo!
|
138554 |
08-Dec-2004 |
sos |
Reset timeout when we are back from interrupt.
|
138553 |
08-Dec-2004 |
sos |
Add first shot on support for the new Promise SATAII chips.
HW donated by: pil.dk
|
138552 |
08-Dec-2004 |
sos |
Correct logical error, result was that retries wasn't always made but failure reported instead.
|
138043 |
24-Nov-2004 |
sos |
Return ATA register values in the request struct when ATAREQUEST returns.
|
137809 |
17-Nov-2004 |
scottl |
Don't set the BUS_DMA_ALLOCNOW flag for the parent tag or the tags that are used for static memory allocations.
Discussed with: sos
|
137493 |
10-Nov-2004 |
imp |
Tweaks to the resource allocation to allow a few of my obscure cdrom/ata controller PC Card devices work better.
|
136722 |
20-Oct-2004 |
sos |
Do not retry on requests that has lost thier device during reinit.
Should fix hangs on IBM's etc with the fake slave problem.
MFC: asap
|
136707 |
19-Oct-2004 |
sos |
Idle the channel earlier in reinit(). Cosmetic change to suspend, dont call tsleep an extra time at exit.
|
136706 |
19-Oct-2004 |
sos |
Cosmetics
|
136688 |
19-Oct-2004 |
le |
Return the unit number of a channel instead of a hardcoded '1' from the ATA pccard locking function. This makes pccard devices like Compact Flash cards work again.
PR: kern/72805 Submitted by: James E. Flemer <jflemer@alum.rpi.edu> MFC in: 2 days
|
136486 |
13-Oct-2004 |
sos |
Refine locking so it covers the "running" variable as well. Adjust comments etc to fit the new locking system.
|
136350 |
10-Oct-2004 |
sos |
Dont sleep with lock held.
|
136324 |
09-Oct-2004 |
sos |
Add support for the ICH6 in legacy mode. The AHCI part is not supported yet, but is in the works.
5.3 RC1 candidate
|
136233 |
07-Oct-2004 |
sos |
Move the PC98 specific geometry "gunk" to geom_pc98.c where it belongs. This also adds support for bigger disks on the controller I have access to, and maybe others if I understood the adhoc methods used on those.
Those with more PC98 bigdrive controllers it is hereby invited to add/fix support for those in geom_pc98.c and not using #ifdef PC98 all over the place.
|
136215 |
07-Oct-2004 |
sos |
Add SHARP to the pool of drives that doesn not need byteswapping of the model etc fields from identify.
|
136198 |
06-Oct-2004 |
sos |
Fix the PC98 lockups on boot. The interchannel locking for PC98 needed to be updated to match the rest of the locking in ATA.
|
136022 |
01-Oct-2004 |
sos |
Always set half'n'half mode on ICH* chips.
|
136021 |
01-Oct-2004 |
sos |
Fix the serverworks modesetting code, of mask offset was wrong.
|
135992 |
30-Sep-2004 |
sos |
Resurrect dump that broke with the last update.
|
135819 |
26-Sep-2004 |
sos |
Remove the old ATA_*LOCK_CH macros that used atomic ops and use mutexes instead. This closes the last (known) race issues in ATA which should fix the various hangs etc seen on heavy loaded systems.
Change from using timeout functions to using callout functions in the timeout code. This together with above closes the race that could happen if timeout and device interrupt occured simultaniously.
Also fix the possible recursion in ata_reinit() on very dodgy devices that could take us down in the probe.
|
135818 |
26-Sep-2004 |
sos |
Rearrange the order of I/O's in dma-start/stop, some chipsets are very picky on the order of this, especially in error situations.
|
135296 |
16-Sep-2004 |
sos |
Ignore leading '_' in model name returned by devices.
This make "_NEC" devices appear as "NEC" which is more corrent. The reason is tha NEC originally screwed up on the byteorder in the model string, so now that they have realized that they prefixed the '_' so that not every ATA driver on the planet would call them "EN C" :)
|
135034 |
10-Sep-2004 |
sos |
Reduce the amount of memory reported to busdma. This made the requirements for bouncebuffers too big with PAE. Cleanup the way size defines for transfers are implemented.
|
134994 |
09-Sep-2004 |
sos |
Release the hold on ata_delayed_attach earlier so we can use tsleep in the boot probe as well.
Suggested by: gibbs
|
134698 |
03-Sep-2004 |
sos |
Introduce ata_udelay() that uses tsleep instead of DELAY if possible. In places where we have long delays that doesn't depend on too accurate timing, use ata_udelay() instead of DELAY() so we dont uselessly spin the CPU if not nessesary;
|
134690 |
03-Sep-2004 |
sos |
Sync promise_mio_command with WIP on the Promise line of SATA controllers.
|
134687 |
03-Sep-2004 |
sos |
Cleanup the defines used for various chipsets. Add new nVidia controllers.
|
134601 |
01-Sep-2004 |
sos |
Cleanup the storing and printing of the device transfermode for SATA.
|
134413 |
27-Aug-2004 |
sos |
remove unused prototype
|
134380 |
27-Aug-2004 |
sos |
Fix the handling of "inflight" requests when doing reinit's. Add missing untimeout that would get lost in handling of some error situations, and caused what looked like random timeouts afterwards when the timeout fired.
|
134377 |
27-Aug-2004 |
sos |
Set and reset the right bit for UDMA enable/disable on the ICH* chips.
|
134375 |
27-Aug-2004 |
sos |
Rearrange the call to disk_destroy.
Suggested by: phk
|
134265 |
24-Aug-2004 |
sos |
Sii_reset needs to wait up to 1 second to get slow disks with it so use tsleep instead of DELAY.
|
134248 |
24-Aug-2004 |
sos |
Always pick up giant before returning from an ioctl call.
|
134242 |
24-Aug-2004 |
sos |
Properly check malloc returns.
|
134167 |
22-Aug-2004 |
sos |
Workaround devices that responds with registers as *both* master & slave, but fail utterly when we try to talk to the "fake" device.
|
134090 |
20-Aug-2004 |
sos |
Correct the args to busdma, mostly cosmetic.
|
134071 |
20-Aug-2004 |
sos |
DONT PANIC
Only call dmainit() if there is a valid busmaster resource.
|
133834 |
16-Aug-2004 |
sos |
Improve (hopefully) on the workaround code for devices that doesn't interrupt when command is done, ie some ATAPI CD drives with no media loaded.
|
133832 |
16-Aug-2004 |
sos |
Fix Promise sx4/sx4000 support that broke on the latest race fixes.
|
133637 |
13-Aug-2004 |
sos |
Allow the use of a supplied function to set the PRD table. This is needed for new chips that supports 64bit addressing.
|
133556 |
12-Aug-2004 |
sos |
Change the order of ata_dmainit/ata_allocate in preparation of supporting new chipsets where this is needed.
|
133383 |
09-Aug-2004 |
sos |
Fix bad free() usage.
Submitted by: Pawel Jakub Dawidek
|
133377 |
09-Aug-2004 |
sos |
Close a race in ata_reinit().
|
133358 |
09-Aug-2004 |
jmg |
make sure that ioctl's to ata use the proper cmd IOCATA...
Reviewed by: sos
|
133318 |
08-Aug-2004 |
phk |
Tag all geom classes in the tree with a version number.
|
133266 |
07-Aug-2004 |
sos |
Correct the last commit so it works in error situations as well.
|
133235 |
06-Aug-2004 |
njl |
Fix a panic in ata_generic_transaction(). The DMA pointer of the channel was being unconditionally dereferenced but was NULL for PIO requests. Check the request flags for a DMA transaction before dereferencing.
Reported by: ceri Tested by: Radek Kozlowski <radek -at- raadradd.com>
|
133184 |
05-Aug-2004 |
sos |
Try to narrow down the race window on HW that does not have ways to poll for which channel actually pulled the irq line.
|
133183 |
05-Aug-2004 |
sos |
Add firmware revision to probe printf.
|
132958 |
01-Aug-2004 |
sos |
Change the default to switch on DMA on ATAPI devices if they can do UDMA2 (ATA33) mode and beyond.
|
132921 |
31-Jul-2004 |
sos |
Fix the panic (""memory modified after free") when ata_getparam() fails and retries.
Found by: Nate Lawson
|
132886 |
30-Jul-2004 |
sos |
Fix the reset sequence for sx4/sx4000 type controllers, it could hang the chip in an indefinite state.
|
132606 |
24-Jul-2004 |
sos |
Refine the wait for ATAPI_RESET. Properly wait for not busy and introduce a timeout for devices not setting busy (as they should). Leave a printf in there that states how long the wait was, as I'd like to get an idea of the variations here. The time needed seems also to be affected by whether a medium is present or not.
|
132582 |
23-Jul-2004 |
sos |
Dont expect interrupt from ATAPI_RESET, it doesn't deliver one.
|
132291 |
17-Jul-2004 |
sos |
Dont set "address setup timing" on newer VIA chips.
closes PR: 69180
|
132030 |
12-Jul-2004 |
sos |
Attempt to handle suspend/resume better.
|
131322 |
30-Jun-2004 |
sos |
Remove leftover debug output.
|
131113 |
25-Jun-2004 |
sos |
Add support for LSI type software RAID's.
Made possible by: John Cagle @ HP
|
130922 |
22-Jun-2004 |
sos |
Use the right ordering of args on mtx_init(). No functional changes since the args in question was all zero's.
Found by: Jimmy Olgeni <olgeni@FreeBSD.org>
|
130876 |
21-Jun-2004 |
green |
Call the detach function with g_waitfor_event() so that it can access the GEOM topology.
There are still issues with not detaching from cam correctly such that upon a device detach there's an invalid pointer dereference from the later call to cam_rescan().
|
130652 |
17-Jun-2004 |
sos |
Up SiI reset wait a bit, some devices got lost.
|
130627 |
17-Jun-2004 |
green |
atapicam(4) is currently off by three orders of magnitude regarding the timeout values in the CAM CCBs. Divide by 1000 to get values in seconds which are what ata(4) timeouts internally use.
This does lose granularity, though, and small values can now round down to zero. It's probably worth making all ata(4) timeouts in terms of hz/ticks/milliseconds/something.
|
130585 |
16-Jun-2004 |
phk |
Do the dreaded s/dev_t/struct cdev */ Bump __FreeBSD_version accordingly.
|
130523 |
15-Jun-2004 |
sos |
Oops, backout debug code..
|
130522 |
15-Jun-2004 |
sos |
Dont set prefetch etc on VIA chips, causes problems on newer chips and ATAPI devices.
|
130521 |
15-Jun-2004 |
sos |
Increase robustness of SATA handling.
|
130340 |
11-Jun-2004 |
sos |
Back out the last change as that broke some SATA devices. Now we are cleaing up remove a few lines of unused code.
|
130026 |
03-Jun-2004 |
phk |
Add missing <sys/module.h> includes currently relying on nested include in <sys/kernel.h>
|
129941 |
01-Jun-2004 |
sos |
When waiting for drive to become ready, reinit the request params as they might get trashed by autosensing.
|
129940 |
01-Jun-2004 |
sos |
Use the right cmd+errorcode if we are in autosense/not.
|
129936 |
01-Jun-2004 |
sos |
Only set and report error if not set already.
|
129935 |
01-Jun-2004 |
sos |
Dont retry on devices that left the system. Ignore "fake" devices that has 0x7f status.
|
129764 |
27-May-2004 |
imp |
Fix disordering of pccarddevs.h noticed by bde. Also remove a few redundant includes and fix some of the include disordering.
Submitted by: bde
|
129740 |
26-May-2004 |
imp |
Move to generating pccarddevs.h on the fly, both for the kernel and the modules.
Also generate usbdevs.h automatically now, but a non-kernel file is stopping that at the moment.
|
129493 |
20-May-2004 |
des |
Whitespace cleanup.
|
129347 |
17-May-2004 |
sos |
Rip out the too verbose "spurious interrupt" printf's, they dont serve a purpose any longer.
|
129100 |
10-May-2004 |
sos |
Fix Sii3114 support.
|
128774 |
30-Apr-2004 |
sos |
Do at better job at unit numbering.
|
128767 |
30-Apr-2004 |
sos |
Spring cleanup of macros
|
128686 |
27-Apr-2004 |
sos |
Reduce the time spent looking for devices on channels that return what looks like garbage.
|
128676 |
27-Apr-2004 |
sos |
Use pci_get_progif to decide if this is one of the primary/secondary channels. This also work when PCI native mode has been selected (patch for /sys/dev/pci/pci.c needed for that) since pci_get_progif uses the saved value for progif, not the one stored after we may have changed from legacy mode to native PCI mode.
|
128608 |
24-Apr-2004 |
sos |
Try the simplify determining what is ata0 and ata1.
Remove the PCI native addressing code, it eed to be run before we even have control in the ATA driver and should be moved to the pci code.
|
128606 |
24-Apr-2004 |
sos |
Change setup for SiS device to allow PCI native mode.
|
128530 |
21-Apr-2004 |
sos |
Make the test for ATA PCI legacy addressing mode more robust. Add code (currently ifdef'd out) to allow ATA PCI native addressing. Fix the altio offset for ATA PCI devices.
|
128498 |
20-Apr-2004 |
sos |
Do not pre-allocate resources for BAR's on ATA MASTERDEV's thats on the standard ATA primary and secondary addresses.
Reintroduce the size 1 ALTIO space so that we can have both ATA and floppies back working.
|
128437 |
19-Apr-2004 |
sos |
Move a verbose printf before the first exit so we get a chance to see what was there.
|
128183 |
13-Apr-2004 |
sos |
Add support for the Promise command sequencer present on all modern Promise controllers (PDC203** PDC206**).
This also adds preliminary support for the Promise SX4/SX4000 but *only* as a "normal" Promise ATA controller (ATA RAID's are supported though but only RAID0, RAID1 and RAID0+1).
This cuts off yet another 5-8% of the command overhead on promise controllers, making them the fastest we have ever had support for.
Work is now continuing to add support for this in ATA RAID, to accellerate ATA RAID quite a bit on these controllers, and especially the SX4/SX4000 series as they have quite a few tricks in there..
This commit also adds a few fixes to the SATA code needed for proper support.
|
127135 |
17-Mar-2004 |
njl |
Convert callers to the new bus_alloc_resource_any(9) API.
Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
|
127080 |
16-Mar-2004 |
sos |
Update the SiS support to distinguish older southbridges better.
|
127019 |
15-Mar-2004 |
sos |
Add support for detaching PCI controllers.
This adds support for cardbus ATA/SATA controllers. I get roughly the same transfer speeds as on true PCI controllers. Nice to be able to add a couble of "real" disks to a laptop :)
|
126848 |
11-Mar-2004 |
sos |
Add yet another VIA pci id.
|
126608 |
04-Mar-2004 |
sos |
Only setup sii_reset on sii311[24].
|
126604 |
04-Mar-2004 |
thomas |
Use auto-sense data provided by the lowlevel ATA code.
|
126490 |
02-Mar-2004 |
sos |
If being verbose in the autosense code, print the original error.
|
126483 |
02-Mar-2004 |
sos |
Report the original command on failures that causes auto sense. Keep the ATA_R_QUIET flag if set during autosense.
|
126482 |
02-Mar-2004 |
sos |
Fix getting progress data for some device in yet another way. Take advantage of the new autosense logic.
|
126442 |
01-Mar-2004 |
sos |
Remember to mtx_destroy mutexes.
|
126397 |
29-Feb-2004 |
sos |
Rearrange sense_key and sense_data to get alignment right.
Submitted by: Marcel
|
126356 |
28-Feb-2004 |
sos |
Issue a request sense command automagically when ATAPI commands fail with a valid sense key.
|
126223 |
25-Feb-2004 |
sos |
Add support for the sii3512 SATA chip.
|
126080 |
21-Feb-2004 |
phk |
Device megapatch 4/6:
Introduce d_version field in struct cdevsw, this must always be initialized to D_VERSION.
Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
|
126074 |
21-Feb-2004 |
sos |
Dont alloc size 0 buffers.
|
126073 |
21-Feb-2004 |
sos |
Check both PORTEN and MEMEN for enabled HW.
|
126072 |
21-Feb-2004 |
sos |
Only register interrupt as seen if it was a real HW interrupt.
|
125975 |
18-Feb-2004 |
phk |
Change the disk(9) API in order to make device removal more robust.
Previously the "struct disk" were owned by the device driver and this gave us problems when the device disappared and the users of that device were not immediately disappearing.
Now the struct disk is allocate with a new call, disk_alloc() and owned by geom_disk and just abandonned by the device driver when disk_create() is called.
Unfortunately, this results in a ton of "s/\./->/" changes to device drivers.
Since I'm doing the sweep anyway, a couple of other API improvements have been carried out at the same time:
The Giant awareness flag has been flipped from DISKFLAG_NOGIANT to DISKFLAG_NEEDSGIANT
A version number have been added to disk_create() so that we can detect, report and ignore binary drivers with old ABI in the future.
Manual page update to follow shortly.
|
125944 |
17-Feb-2004 |
sos |
Dont use the bio_taskqueue if we are in timeout. Use taskqueue_thread rather than taskqueue_swi (maybe we should have a taskqueue_ata).
|
125701 |
11-Feb-2004 |
thomas |
(atapi_cb): Reenable automatic retrieve of sense data on error, making it asynchronous to avoid incorrect use of ata_atapicmd within an ATAPI callback.
Tested by: harti
|
125515 |
06-Feb-2004 |
sos |
Commit simple workarounf for the "LiteOn" hang on boot problem.
This allows the system to boot so I can get the world out of my mailbox and get some work done to figure out what this mess is all about.
|
125328 |
02-Feb-2004 |
sos |
Move the enabling of interrupt back to where it was some time ago. This apparently was what broke the boot with some devices (liteon).
|
125326 |
02-Feb-2004 |
sos |
Fix support for the Promise TX4 on amd64. Somehow the bridge on there shows up with another PCI id than it does on x86, no idea why...
|
125251 |
30-Jan-2004 |
sos |
Be more robust in the probe. We dont want to get into a loop with reinitting when we try to identify devices. If they dont interrupt on identify we retry once. If this fails we simply ignore that device.
|
125199 |
29-Jan-2004 |
sos |
Cleanups/cosmetics.
|
125165 |
28-Jan-2004 |
sos |
Fix for those lost interrupts on probe on lots of controller types.
Note to self, just because an idea is good, it doesn't apply everywhere.
|
125159 |
28-Jan-2004 |
sos |
Use the biotask functionality in GEOM to put finished requests on instead of taskqueue_swi. This shaves from 1 to 10% of the overhead.
Overhaul the locking once more, there was a few possible races that are now closed.
|
124860 |
23-Jan-2004 |
sos |
Fix breakage in PIO multisector support.
|
124754 |
20-Jan-2004 |
sos |
Update the support for the VIA 8237 southbridge.
|
124720 |
19-Jan-2004 |
sos |
Fix breakage on timeout/retries. The bug cause a sema to be leaked so that the calling process would newer wakeup.
|
124679 |
18-Jan-2004 |
ru |
Fixed a memory leak.
|
124677 |
18-Jan-2004 |
sos |
Fix botch in last commit.
|
124668 |
18-Jan-2004 |
sos |
Add missing free's.
|
124643 |
17-Jan-2004 |
sos |
Add support for the Silicon Image 3114 4 channel SATA controller.
|
124534 |
14-Jan-2004 |
sos |
Use UMA instead of plain malloc for getting ATA request storage. This gives +10% performance on simple tests, so definitly worth it. A few percent more could be had by not using M_ZERO'd alloc's, but we then need to clear fields all over the place to be safe, and that was deemed not worth the trouble (and it makes life dangerous).
|
124521 |
14-Jan-2004 |
sos |
Fix potential cable detection problem on older CMD chips.
|
124498 |
13-Jan-2004 |
sos |
Fix ata_getparam to accept the fact that some crappy devices can pose as both master and slave at the same time confusing the probe code.
|
124419 |
12-Jan-2004 |
sos |
Always return ENOMEM if ata_request_alloc fails so GEOM can dtrt.
|
124416 |
12-Jan-2004 |
sos |
#include sema.h is now required.
|
124403 |
11-Jan-2004 |
sos |
Overhaul of the timeout/reinit framework. This should clear up most of the leftovers from the old version that really doesn't work anymore.
Add a reset function for host-end of the ATA channel. This is needed for the SiI3112 in order to whack it back to reality if a device locks up the SATA interface (thereby preventing that we can reset the device). The result is that ATA now recovers from the timeouts that happens with the SiI3112A and more or less all disks based on old PATA electronics with a Marvell PATA->SATA converter. This includes lots of the popular SATA dongles and the WDC Raptor disks..
|
124260 |
08-Jan-2004 |
sos |
Use the saved params for LBA-CHS conversion. Fixes PC98 bug.
|
123831 |
25-Dec-2003 |
sos |
Try to simplify the SiS probe. If SiS stays with the current schema for new nothbridges we should even find the southbridge and be able to use it (if its one we know that is).
|
123646 |
18-Dec-2003 |
sos |
Fix the register timings for AMD/VIA/nVidia chipsets.
|
123632 |
18-Dec-2003 |
sos |
Add support for the SiS 661 chipset (using SiS 963 south).
|
123574 |
16-Dec-2003 |
sos |
Fix compilation on 64bit archs.
|
123555 |
15-Dec-2003 |
sos |
Print the LBA on failing R/W commands.
|
123421 |
10-Dec-2003 |
sos |
Finetune last commit, we need to take care of empty channels.
|
123361 |
09-Dec-2003 |
sos |
Add back the national support, this was removed by accident earlier.
|
123294 |
08-Dec-2003 |
sos |
More errata fixing for the SiI3112A disaster chip:
Serialize access to the SATA channels, the chip messes up if both channels are used at the same time.
The SiI3112 hereby takes the price as the most crappy SATA chip in existance by a significant amount.
My advise to our userbase is to avoid this chip like the plague...
|
123292 |
08-Dec-2003 |
sos |
Fix more problems with the Silicon Image 3112A:
Setup decent transfer mode defaults as some BIOS's seem to put in things that it *knows* doesn't work. (Note to BIOS writers: stop doing that nonsense, we will get things working with your crappy HW anyways, and then recommend users to buy someone else's products that "just works", thankyou.. )
Limit the device transfer mode to ATA100/UDMA5 on generic SATA. Since we dont know if the user is using a pure SATA device or an old PATA drive with a SATA converter dongle, we need to limit the speed used here to cover up the problems with Marvell ATA-SATA bridges used in lots of SATA products.
This workaround is enabled for all detectable SATA controllers as they seem to have semilar problems here. One notable exception is all the Promise pdc2037x chips which just always work (cudos to Promise!).
|
123270 |
07-Dec-2003 |
sos |
Try a little harder to catch when fixate finishes. On the <QSI CD-RW/DVD-ROM SBW-242> that failed causing burncd to wait forever...
|
123153 |
05-Dec-2003 |
scottl |
Fix a potential problem with atapi-cam where an incorrect flag is passed into the ata queueing layer.
Approved by: re
|
123127 |
03-Dec-2003 |
sos |
Fix for the missing slave problem.
Approved by: re@
|
123124 |
03-Dec-2003 |
sos |
Fix modesetting on ISA only systems.
Approved by: re@
|
123066 |
30-Nov-2003 |
sos |
Fix ata-card. The altio resource magic no longer worked probably due to other changes in the kernel. Redo that part so it also fits better into ATAng. Fix detach so it doesn't panic the system when a pccard device is yanked.
Approved by: re@
|
123034 |
28-Nov-2003 |
sos |
Workaround for errata on early versions of the sii3112.
Approved by: re@
|
122975 |
24-Nov-2003 |
sos |
Correct the former patch, I accidently committed the wrong version.
Approved by: re@
|
122974 |
24-Nov-2003 |
sos |
Fix panic on certain failed configs.
Approved by: re@
|
122973 |
24-Nov-2003 |
sos |
Be less noisy when GEOM probes around during boot if drive contains invalid media (ie empty CD/DVD)
Approved by: re@
|
122948 |
21-Nov-2003 |
sos |
Fix support for the cmd646 chip.
Spotted by: tmm reviewed by: re@
|
122886 |
18-Nov-2003 |
sos |
Add support for the SiS964 ATA/SATA southbridge. This could not have been done without the support from kuriyama.
Approved by: re@
|
122885 |
18-Nov-2003 |
sos |
Work around the problem that some CDROM drives might return different TOC's for the same media!! that borks up GEOM. Although this looks like bad HW the following patch removes the chance for GEOM panic'ing.
Approved by: re@
|
122484 |
11-Nov-2003 |
sos |
Centralise mode setting. Instead of doing it in all subdrivers, do it in ata-all.c where it belongs.
Prime controller HW by always setting PIO mode first in attach.
|
122475 |
11-Nov-2003 |
sos |
Update the dump code to flush buffers at the end of the dump to avoid loosing evt cached data.
|
122366 |
09-Nov-2003 |
scottl |
Free the ata_request struct after we are done using it. This should stop the memory leak seen when using ATAPICAM.
|
122354 |
09-Nov-2003 |
sos |
Fix typo in breaking up requests to size limit.
Found by: Peter Edwards <pmedwards@eircom.net>
|
122305 |
08-Nov-2003 |
sos |
Remove the NOGIANT flag again, it was premature.
|
122203 |
07-Nov-2003 |
sos |
Better attempt at fooling GEOM into working with burnable media.
|
122121 |
05-Nov-2003 |
sos |
Pull ataraid out from under giant. Use the right bio_* fields for internal stuff.
|
121940 |
03-Nov-2003 |
des |
Move sysctl declarations next to the corresponding tunable declarations. Add a sysctl declaration for hw.ata.atapi_dma, which had gone MIA (though setting it in loader.conf still worked, it was not visible at runtime)
Approved by: sos
|
121912 |
02-Nov-2003 |
sos |
Fix burning of CD's that got broken by the GEOM'ification.
GEOM was not designed to handle media that does not have a size. Blank CD's are of that type, so cheat and set the media size to -1. This allows burning to work, but makes GEOM issue outofrange reads that makes the ATAPI subsystem spew out a few warnings. GEOM should be tought about this.
GEOM was not designed to handle changing the sectorsize between opens. Writing multitack CD's with both audio and data tracks needs to change sector size on the fly. We cheat here and stuff the current sectorsize into GEOM private internals. GEOM should grow some clean way for this.
|
121910 |
02-Nov-2003 |
sos |
On ATA control commands return the registers in the request.
|
121857 |
01-Nov-2003 |
sos |
GEOM'ify atapi-cd. Original patch by phk, subtle changes by me.
|
121855 |
01-Nov-2003 |
sos |
Fix cable detection on AMD chips.
|
121738 |
30-Oct-2003 |
sos |
Add support for the VIA 8237 (both PATA and SATA part). Cleanup the SATA support a bit now we are here anyways.
|
121638 |
28-Oct-2003 |
sos |
Cleanup the interrupt code that deals with the busmaster bits.
|
121634 |
28-Oct-2003 |
sos |
This should allow us to boot with DMA enabled on unknown PCI ATA chipsets, well at least newer ones...
|
121311 |
21-Oct-2003 |
sos |
Properly unload the DMA SG list on errors.
|
121310 |
21-Oct-2003 |
sos |
Fix the DMA problem that most severely hit on the DS3112a SATA chip in connection with Marvell based SATA->PATA dongles.
The problem was caused by a combination of things working together to make it hard to spot...
The ATA driver has always started the ATA command, then build the SG list for DMA and then finally started the DMA engine. While this is according to specs, it poses a potential problem as some controllers apparently do not allow for unlimitted time between starting the ATA command and starting the DMA engine.
At about the same time as ATAng was committed there were lots of other changes applied, some of which was locking in parts that causes the busdma load functions to take significantly longer to load the SG list.
This pushed the time spent between starting the ATA command and starting the DMA engine over the hill for some controllers (especially the Silicon Image DS3112a) and caused what looked like lost interrupts.
The solution is to get all the SG list work or rather all busdma related stuff done before we even try to start anything.
This has the nice side effect of seperating busdma out the way it should be, so the working of the ATA machinery is not cluttered up with busdma droppings, making the code easier to read and understand.
|
121307 |
21-Oct-2003 |
silby |
Change all SYSCTLS which are readonly and have a related TUNABLE from CTLFLAG_RD to CTLFLAG_RDTUN so that sysctl(8) can provide more useful error messages.
|
121301 |
21-Oct-2003 |
sos |
Up the alignment requirement of the SC1100 to 16 bytes, it has all the bugs and then some of its Cyrix inheritance.
Set the max_iosize for the Cyrix to 63K as the SC1100.
|
121280 |
20-Oct-2003 |
sos |
If just gcc could make up its mind...
|
121278 |
20-Oct-2003 |
sos |
Only return valid DMA error bits.
|
121277 |
20-Oct-2003 |
sos |
Up delay from 10 to 100ms after reset, this helps some slow devices get their act together before we start probing.
|
121276 |
20-Oct-2003 |
sos |
Only announce ECC errors when its only that.
|
121208 |
18-Oct-2003 |
phk |
No need to initialize bio_pblkno from bio_blkno, disksort uses bio_offset.
|
121086 |
14-Oct-2003 |
sos |
Reintroduce the "recovered from lost interrupt" code, but in a new (hopefully) panic safe way.
Why the interrupts are lost is still a mystery, to me at least.
|
121037 |
12-Oct-2003 |
sos |
Redo the code that handles eject/close.
|
121036 |
12-Oct-2003 |
sos |
Avoid potential race on ATA_R_DONE.
|
121035 |
12-Oct-2003 |
sos |
Put devices into sleep mode (ie spin down) on detach.
|
121034 |
12-Oct-2003 |
sos |
Up timeout to 10s (from 5) in r/w commands.
|
121026 |
12-Oct-2003 |
sos |
Use isprint instead of isalpha in determining valid ident string.
|
120967 |
10-Oct-2003 |
sos |
Restore transfermode on devices after reinit.
|
120966 |
10-Oct-2003 |
sos |
Dont store ata_params for devices that return a bogus ident string.
|
120938 |
09-Oct-2003 |
sos |
Fix the bug that prevented DMA from working on old Acer chips.
Found by: Andrew Gallatin <gallatin@cs.duke.edu> Pointy hat to: sos
|
120883 |
07-Oct-2003 |
sos |
Give more correct params to busdma_*
|
120882 |
07-Oct-2003 |
sos |
Improve timeout handling and reporting.
|
120881 |
07-Oct-2003 |
sos |
Properly get out of transaction() if setting up the transfer fails.
|
120880 |
07-Oct-2003 |
sos |
In case we loose a device during reset in reinit() finish off the request with error instead of loosing it.
|
120871 |
07-Oct-2003 |
imp |
Include pccard/pccard_cis.h here too
|
120628 |
01-Oct-2003 |
sos |
Fix the problem with accessing certain FLASH devices. The problem was that accessing the status reg could occour too fast, confusing the logic in the flash part. Could not have been located without:
HW donated by: Jonas Bülow <jonas@servicefactory.se>
|
120506 |
27-Sep-2003 |
phk |
The present defaults for the open and close for device drivers which provide no methods does not make any sense, and is not used by any driver.
It is a pretty hard to come up with even a theoretical concept of a device driver which would always fail open and close with ENODEV.
Change the defaults to be nullopen() and nullclose() which simply does nothing.
Remove explicit initializations to these from the drivers which already used them.
|
120410 |
24-Sep-2003 |
thomas |
Enable DMA for ATAPI/CAM input/output operations.
Reviewed by: scottl
|
120341 |
22-Sep-2003 |
tmm |
Fix inverted BURN_BRIDGES and GONE_IN_5 #ifdefs.
|
120318 |
21-Sep-2003 |
phk |
Make the clone handler BURN_BRIDGES but the actual 'a' and 'c' partition check GONE_IN_5: We need the clone handler for root filesystem case.
Once under GEOM, we can remove the clone handler as GEOM provides one.
|
120316 |
21-Sep-2003 |
thomas |
(atapi_cb): Reorganize error handling circuitry. Fix to the messages output under CAM_DEBUG_CCB: the summary sense information (error bits and sense key) is in the error field, not in the result field, of struct ata_request. No other functional change.
|
120315 |
21-Sep-2003 |
thomas |
(atapi_cb): Disable autosense for now as it causes a missed ATA interrupt. Minor reformatting.
|
120279 |
20-Sep-2003 |
sos |
Dont reject a master device if it said slave failed.
|
120234 |
19-Sep-2003 |
thomas |
(atapi_action): avoid memory leak in a marginal invalid ccb case. (free_hcb): defend against calling TAILQ_REMOVE on an hcb that was not inserted on pending_hcbs.
|
120232 |
19-Sep-2003 |
sos |
Always check the sensekey field on ATAPI returns Add INQUIRY to cmd2str.
|
120204 |
18-Sep-2003 |
sos |
Cosmetics
|
120203 |
18-Sep-2003 |
sos |
Be a bit more restrictive in the probe so we dont hang around on empty channels in most cases.
|
120192 |
18-Sep-2003 |
sos |
Properly handle error code returns from the lower levels ATAPI code.
|
120128 |
16-Sep-2003 |
sos |
When ignoring interrupts (due to no running request set) then try to grap the channel so we can read status (and clear an evt pending interrupt).
|
120127 |
16-Sep-2003 |
sos |
Rearrange the probe a bit first try ATAPI signatures then ATA.
|
120126 |
16-Sep-2003 |
sos |
Properly cast longs to off_t so we dont loose precision.
|
119994 |
11-Sep-2003 |
phk |
Disable the use of cloning use in floppy and CD drivers.
This commit puts the relevant code snippets under #ifdef GONE_IN_5 (rather than #ifndef BURN_BRIDGES) thereby disabling the code now.
The code wil be entirely removed before 5.2 unless we find reasons why this would be a bad idea.
Approach suggested by: imp
|
119993 |
11-Sep-2003 |
thomas |
(atapi_action, case XPT_PATH_INQ): Handle properly the case of CAM_TARGET_WILDCARD (target_id_t is an unsigned integer type). Fixes boot-time crash on Alpha.
Reviewed by: roberto Approved by: re (murray) MFC after: 1 week
|
119989 |
11-Sep-2003 |
sos |
Add support of the DIOCGSECTORSIZE & DIOCGMEDIASIZE ioctl's so that newfs works on dvd-rw/dvd-ram again..
|
119953 |
10-Sep-2003 |
sos |
Try a bit harder to probe disks that doesn't quite set BUSY right.
|
119883 |
08-Sep-2003 |
sos |
Add another ID for the SiI3112a SATA chip as used on the Adaptec 1210SA. RAID support is still in the works, so for now just normal ATA ops.
Sponsored by: Matt Douhan(www.fruitsalad.org)
|
119882 |
08-Sep-2003 |
sos |
Limit the size of the rebuild requests to be within safety.
|
119879 |
08-Sep-2003 |
sos |
#ifdef out the vague ATA disk detection code causing fake ATA disks to be found on some systems. Hopefully this doesn't loose any real ATA disks...
|
119878 |
08-Sep-2003 |
sos |
Handle shared channels better. Try to avoid the spurios interrupts better.
|
119877 |
08-Sep-2003 |
sos |
Update the PIO mode gathering code.
Reported by: bde
|
119763 |
05-Sep-2003 |
phk |
Forgotten in previous commit to atapi-cd.c: Add #ifndef BURN_BRIDGES around cloning routines.
|
119761 |
05-Sep-2003 |
phk |
Put the device cloning functions for disk-drivers under #ifndef BURN_BRIDGES.
For the floppy driver, use fdcontrol to manipulate density selection.
For the CD drivers, the 'a' and 'c' suffix is without actual effect and any applications insisting on it can be satisfied with a symlink: ln -s /dev/cd0 /dev/cd0a
Ongoing discussion may result in these pieces of code being removed before the 5-stable branch as opposed to after.
|
119699 |
02-Sep-2003 |
obrien |
Support the nForce3 chip found on Opteron motherboards: atapci0: <nVidia nForce3 UDMA133 controller>
Approved by: sos
|
119683 |
02-Sep-2003 |
sos |
cosmetics
|
119676 |
02-Sep-2003 |
sos |
Adjust the max transfer size used.
|
119651 |
01-Sep-2003 |
sos |
Rearrange the probe code yet again.
|
119523 |
28-Aug-2003 |
sos |
Be more carefull on nulling the ATAPI magic for fake slave. Skip polling devices that keeps returning 0xff early (ie no HW there).
|
119522 |
28-Aug-2003 |
sos |
Make sure to call start when retrying.
|
119518 |
28-Aug-2003 |
thomas |
Add missing braces. Fixes boot-time kernel panic with ATAng and ATAPI/CAM.
Reviewed by: roberto
|
119504 |
27-Aug-2003 |
sos |
Return the translated result code from ATA/ATAPI commands.
|
119501 |
27-Aug-2003 |
sos |
Hopefully Fix problem with probing some ATAPI devices, while still trying to avoid the "fake slave" problem.
|
119454 |
25-Aug-2003 |
sos |
Try to get rid of the fake slave problem.
|
119453 |
25-Aug-2003 |
sos |
Cleanup the dma int/alloc/free code.
|
119450 |
25-Aug-2003 |
sos |
Unify prototypes. Cosmetics.
|
119445 |
25-Aug-2003 |
sos |
Only call FLUSH_CACHE on devices that say they can.
This will get rid of the warnings issued at shutdown (that seems to worry alot of users), but will also no flush cache on lots of devices that can, but doesn't set the right support bits...
|
119442 |
25-Aug-2003 |
sos |
Dont check the cable bit on ich5 when on the SATA channel.
|
119424 |
24-Aug-2003 |
sos |
Sync with local version (cosmetics)
|
119423 |
24-Aug-2003 |
sos |
There is no detach func for PCI ATA devs.
|
119422 |
24-Aug-2003 |
sos |
Fix ad_dump top actually produce a dump.
Reported by: Tor Egge <Tor.Egge@cvsup.no.freebsd.org>
|
119418 |
24-Aug-2003 |
obrien |
Use __FBSDID(). Also some minor style cleanups.
|
119404 |
24-Aug-2003 |
sos |
This is a major rework of the ATA driver (ATAng)
Restructure the way ATA/ATAPI commands are processed, use a common ata_request structure for both. This centralises the way requests are handled so locking is much easier to handle.
The driver is now layered much more cleanly to seperate the lowlevel HW access so it can be tailored to specific controllers without touching the upper layers. This is needed to support some of the newer semi-intelligent ATA controllers showing up.
The top level drivers (disk, ATAPI devices) are more or less still the same with just corrections to use the new interface.
Pull ATA out from under Gaint now that locking can be done in a sane way.
Add support for a the National Geode SC1100. Thanks to Soekris engineering for sponsoring a Soekris 4801 to make this support.
Fixed alot of small bugs in the chipset code for various chips now we are around in that corner anyways.
|
119277 |
22-Aug-2003 |
imp |
Prefer new location of pci include files (which have only been in the tree for two or more years now), except in a few places where there's code to be compatible with older versions of FreeBSD.
|
118105 |
28-Jul-2003 |
njl |
Add a PATH_INQ flag, PIM_NO_6_BYTE, which indicates the SIM never wishes to receive 6 byte commands. Add a check for this flag to da(4) and cd(4) so that they honor it. This is a quick workaround for many devices (especially USB) that require da(4) quirks to operate. The more complete approach is to finish the new transport code which will be aware of the SCSI version a transport implements.
MFC after: 1 day
|
117155 |
02-Jul-2003 |
sos |
Update the SATA support code to work more correctly with real SATA disks now that I can test it.
Add support for the SiI 3112 SATA chip using memory mapped I/O. Update the support for the SiI 0680 to use the memio interface as well.
Sponsored by: David Leimbach <leimy2k@mac.com> (3112 based controller) Sponsored by: FreeBSD Systems (www.FreeBSDsystems.com) (SATA disks)
|
117126 |
01-Jul-2003 |
scottl |
Mega busdma API commit.
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
|
116915 |
27-Jun-2003 |
grehan |
Prevent probing the secondary channel on CMD646 controllers if the channel has been disabled by BIOS. This prevents a bus timeout machine check on B&W G3 PowerMacs, which have a primary-only CMD646 on the motherboard.
Approved by: sos Obtained from: NetBSD
|
116900 |
27-Jun-2003 |
imp |
Remove check to see if the get resource for the second resource succeeds. There is a difference between how OLDCARD and NEWCARD deal with their resources, and this code exposes that difference. I'm not sure which behavior is correct, and will need to look into that in more detail. However, it appears that we go ahead and allocate the right thing in both cases that I have access to (CF cards, CDROM, and external ata enclosures), so go ahead and ignore the failure to get the resource for the other rid. There's already another check to make sure that the actual allocation works correctly, and that should be sufficient to catch cases that don't work.
Submitted by: wpaul and iedowse
|
116581 |
19-Jun-2003 |
sos |
Add support for the HighPoint HPT302 & HPT371
HW sponsored by: Martin Blapp <mbr@FreeBSD.ORG>
|
116485 |
17-Jun-2003 |
imp |
Add FREECOM PCCARD-IDE to the mix. It doesn't have a manufacturer or product ID, so we have to use the CIS strings to ID it.
dmesg by: Christian Laursen
|
116351 |
14-Jun-2003 |
njl |
Merge common XPT_CALC_GEOMETRY functions into a single convenience function. 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
|
115957 |
07-Jun-2003 |
sos |
Fix the setup of old Promise controllers, clocks was not setup right causing way too low transfer rates.
Enable interrupts on old CMD64[89] chips, apparently some bogus BIOS's doesn't get this right.
|
115756 |
03-Jun-2003 |
imp |
Add support for generic PMCICA ATA CARD
|
115154 |
19-May-2003 |
sos |
Print the right position on disk errors
Approved by: re@
|
115153 |
19-May-2003 |
sos |
Unbork the chip locating code.
Approved by: re@
|
115136 |
18-May-2003 |
sos |
Support the ICH5 SATA part. Fix HPT374 UDMA133 timing. Fix Promise ID. Cosmetics on probe print for Promise & HPT.
Approved by: re
|
115135 |
18-May-2003 |
sos |
Add string for SATA150
Approved by: re
|
114994 |
14-May-2003 |
thomas |
In atapi_cam_reinit_bus, only call reinit_bus if the ATAPI channel has already been registered with ATAPI/CAM (else there is nothing to do). atapi_cam_reinit_bus may be called before the bus is registered if an ATAPI command times out during the boot sequence.
PR: i386/51421 Reviewed by: roberto Approved by: re (rwatson) MFC after: 1 week
|
114948 |
12-May-2003 |
sos |
Fix typo (that even got cut/pasted 2 times)
Found by: phk Approved by: re@
|
114947 |
12-May-2003 |
phk |
Fix an off-by-1 error.
Found by: FlexeLint Reviewed by: sos Approved by: re/rwatson
|
114872 |
10-May-2003 |
sos |
Add a couble new Intel PCI id's
Approved by: re@
|
114843 |
08-May-2003 |
jhb |
Acquire Giant at the start of the raid rebuild kthreads.
Reported by: Masachika ISHIZUKA <ishizuka@ish.org> Reviewed by: sos Approved by: re (bmah)
|
114784 |
06-May-2003 |
jhb |
Add PCI ID's for the Intel ICH5 (82801EB) chipset.
Approved by: re (murray) Sponsored by: The Weather Channel
|
114728 |
05-May-2003 |
sos |
Add a missing ~ when clearing flags in close.
PR: 35392
|
114665 |
04-May-2003 |
sos |
Change the way loadbalancing works on RAID1's. Based on code partially by me and by <Tor.Egge@cvsup.no.freebsd.org>.
|
114662 |
04-May-2003 |
sos |
Implement dump function for ATA RAID's. Minor fixes by me...
Submitted by: Tor Egge <Tor.Egge@cvsup.no.freebsd.org>
|
114656 |
04-May-2003 |
sos |
Grap the ATA lock on all channels before suspend, this makes certain that we have no outstanding ops in transit, which would cause problems on resume.
|
114588 |
03-May-2003 |
sos |
Fix locking on reinit.
|
114587 |
03-May-2003 |
sos |
Add the pdc20268r as candidate for the TX test.
|
114534 |
02-May-2003 |
sos |
Add flushing of devices on shutdown. Note: this might print failure messages on some systems, unfortunatly the info from the device, stating if flushing is supported, cannot be trusted so the operation is always issued on all devices, just in case...
|
114529 |
02-May-2003 |
sos |
Add ioctl to add a spare disk to a RAID array. Fix the discovery of RAID's to not grap unused disks. Change the probe printing of a RAID a bit.
|
114527 |
02-May-2003 |
sos |
Dont try to call detached interrupt routine.
|
114390 |
01-May-2003 |
sos |
I'm pleased to announce that Promise is now supporting the FreeBSD project by providing documentation (under NDA) and hardware for testing. This commit is the first result of the cooperation, and adds support for several of their new controllers that we didn't support before (and probably newer would have without this arrangement).
Add support for the Promise SATA150 TX2/TX4 and the Promise TX4000 controllers. This also adds support for various motherboard fitted Promise SATA/ATA chips. Note that this code uses memory mapped registers to minimize overhead. I belive FreeBSD has made another first in the Open Source world by being able to release support for this :)
|
114389 |
01-May-2003 |
sos |
Relax the test for when to use LBA instead of CHS size.
|
114090 |
26-Apr-2003 |
imp |
MF-p4: "Ian gave me this patch" I assume this is iadowse@.
Also, pull in a few devices NetBSD's table. More are there, but I need to properly move them to pccarddev before including them here.
|
113550 |
16-Apr-2003 |
sos |
Cosmetics.
|
113549 |
16-Apr-2003 |
sos |
Fix a panic with Cenatek controllers.
|
113335 |
10-Apr-2003 |
sos |
Spell 55 with two '5's
|
113334 |
10-Apr-2003 |
sos |
Add a few more older SiS ID's.
|
113264 |
08-Apr-2003 |
sos |
Fix breakage on sparc64.
Note to self: always test even the smallest changes on all platforms.
|
113245 |
08-Apr-2003 |
sos |
Fix a long standing bug in handling the last part of a stripe on "odd" size disks.
Add printout of the RAID structure on verbose boot.
|
113223 |
07-Apr-2003 |
sos |
Minor cleanup of the ATA RAID code.
|
113222 |
07-Apr-2003 |
sos |
Third round of updates to the ATA driver.
More DMA cleanups, including fix for breakage on older Promise controllers.
Add more ways of getting to the ATA registers.
|
113003 |
03-Apr-2003 |
phk |
Don't use dkmakeminor(), create our own minor encoding instead.
|
112946 |
01-Apr-2003 |
phk |
Use bioq_flush() to drain a bio queue with a specific error code. Retain the mistake of not updating the devstat API for now.
Spell bioq_disksort() consistently with the remaining bioq_*().
#include <geom/geom_disk.h> where this is more appropriate.
|
112847 |
30-Mar-2003 |
sos |
Fix ATA_DEBUG case breakage.
|
112791 |
29-Mar-2003 |
sos |
Second round of updates to the ATA driver.
Clean up the DMA interface too much unneeded stuff crept in with the busdma code back when.
Modify the ATA_IN* / ATA_OUT* macros so that resource and offset are gotten from a table. That allows for new chipsets that doesn't nessesarily have things ordered the good old way. This also removes the need for the wierd PC98 resource functions.
Tested on: i386, PC98, Alpha, Sparc64
|
112703 |
27-Mar-2003 |
sos |
Biofinish the request if we cannot malloc in ad_start.
|
112494 |
22-Mar-2003 |
mux |
- Add a new ioctl to get the maximum number of ATA channels. - Use it in atacontrol(8) when listing ATA devices instead of stopping at the first ENXIO received.
This makes atacontrol list work on my sparc64 where the two ATA channels I have are numbered 2 and 3.
Reviewed by: sos
|
112367 |
18-Mar-2003 |
phk |
Including <sys/stdint.h> is (almost?) universally only to be able to use %j in printfs, so put a newsted include in <sys/systm.h> where the printf prototype lives and save everybody else the trouble.
|
112321 |
16-Mar-2003 |
sos |
Fix the cable detection and properly find the host bridge on older SiS chips.
|
112261 |
15-Mar-2003 |
phk |
Call devstat_start_transaction_bio() instead of devstat_start_transaction().
|
112260 |
15-Mar-2003 |
phk |
Call devstat_start_transaction_bio() instead of devstat_start_transaction()
|
112188 |
13-Mar-2003 |
sos |
Remove the check for more than one open if one is a write op. This allows using DVD+RW and DVD-RW as random storage, provided the 32K blocksize is honoured for DVD-RW (DVD+RW has built in read-modify-write).
|
112187 |
13-Mar-2003 |
sos |
Dont free the stats struct, this has been changed by the new stat code.
Spotted by: Ian Dowse <iedowse@maths.tcd.ie>
|
112186 |
13-Mar-2003 |
sos |
Dont call dma->free unless dma is there.
Spotted by: Ian Dowse <iedowse@maths.tcd.ie>
|
112151 |
12-Mar-2003 |
sos |
Correct the last commit, only look for subfunctions on the same PCI slot.
|
112142 |
12-Mar-2003 |
sos |
Cleanup the probe code a bit.
|
112138 |
12-Mar-2003 |
sos |
Dont hang the channel on enclosures without sensors.
|
112055 |
10-Mar-2003 |
sos |
Remove the enclose_print() call, it is already called from ata-disk.c
|
112054 |
10-Mar-2003 |
sos |
Dont use r_bmio on Cyrix chips if not set from BIOS.
|
112004 |
08-Mar-2003 |
phk |
Allocate the devstat structure with devstat_new_entry().
|
111979 |
08-Mar-2003 |
phk |
Centralize the devstat handling for all GEOM disk device drivers in geom_disk.c.
As a side effect this makes a lot of #include <sys/devicestat.h> lines not needed and some biofinish() calls can be reduced to biodone() again.
|
111815 |
03-Mar-2003 |
phk |
Gigacommit to improve device-driver source compatibility between branches:
Initialize struct cdevsw using C99 sparse initializtion and remove all initializations to default values.
This patch is automatically generated and has been tested by compiling LINT with all the fields in struct cdevsw in reverse order on alpha, sparc64 and i386.
Approved by: re(scottl)
|
111812 |
03-Mar-2003 |
sos |
Minor cleanup of the Promise code.
|
111809 |
03-Mar-2003 |
sos |
Always set the setmode funcptr.
|
111748 |
02-Mar-2003 |
des |
More low-hanging fruit: kill caddr_t in calls to wakeup(9) / [mt]sleep(9).
|
111696 |
01-Mar-2003 |
sos |
Fix support for HPT controllers they where always left in PIO mode. Amazing what a ';' can do :/
|
111667 |
28-Feb-2003 |
phk |
NO_GEOM cleanup:
Convert to "struct disk *" centric API.
OK'ed by: sos
|
111643 |
27-Feb-2003 |
njl |
Zero cpi->target_sprt since atapi-cam does not support target mode. This gets rid of annoying messages when targbh tries to attach to the ATA bus and gets rejected.
MFC after: 1 day
|
111609 |
27-Feb-2003 |
sos |
Only use function 1 not 0 on cypress chips.
|
111598 |
27-Feb-2003 |
sos |
Fix UDMA modes setup on CMD chips.
|
111563 |
26-Feb-2003 |
sos |
Fix a reversed test for ATAPI_DEVICE in the Promise setup code.
|
111502 |
25-Feb-2003 |
sos |
Fix support for Acer chips. The UDMA enable regs wasn't set properly.
|
111489 |
25-Feb-2003 |
sos |
Convert to new disk API.
Prodded by: phk
|
111485 |
25-Feb-2003 |
sos |
Properly teardown the interrupt so we wont panic on detach.
|
111484 |
25-Feb-2003 |
sos |
Removed the ISA only hooks here, no longer needed..
|
111480 |
25-Feb-2003 |
sos |
Fix support for the old CMD 646 chips, interrupt setup was wrong.
|
111473 |
25-Feb-2003 |
sos |
Revert the probe code change. It helped those fake devices probe delays to go away, but as a side effect it also made some not so conforming CD/DVD drives go away...
|
111322 |
23-Feb-2003 |
sos |
Temporarily disable tagged queueing while I figure out why it broke.
|
111321 |
23-Feb-2003 |
sos |
Fix chipset setup problem on older ALI chips.
|
111318 |
23-Feb-2003 |
sos |
Fix timeout when using UDMA speeds, bad chip setup.
|
111220 |
21-Feb-2003 |
phk |
NO_GEOM cleanup:
Retire the "d_dump_t" and use the "dumper_t" type instead.
Dumper_t takes a void * as first arg which is more general than the dev_t taken by d_dump_t. (Remember: we could have net-dumpers if somebody wrote us one!)
Define the convention for GEOM controlled disk devices to be that the first argument to the dumper function is the struct disk pointer.
Change device drivers accordingly.
|
111216 |
21-Feb-2003 |
phk |
NO_GEOM cleanup:
Change the argument to disk_destroy() to be the same struct disk * as disk_create() takes.
This enables drivers to ignore the (now) bogus dev_t which disk_create() returns.
|
111206 |
21-Feb-2003 |
ken |
Fix ATAPI/USB/Firewire CDROM drive handling in cd(4) and hopefully fix a number of related problems along the way.
- Automatically detect CDROM drives that can't handle 6 byte mode sense and mode select, and adjust our command size accordingly. We have to handle this in the cd(4) driver (where the buffers are allocated), since the parameter list length is different for the 6 and 10 byte mode sense commands.
- Remove MODE_SENSE and MODE_SELECT translation removed in ATAPICAM and in the umass(4) driver, since there's no way for that to work properly.
- Add a quirk entry for CDROM drives that just hang when they get a 6 byte mode sense or mode select. The reason for the quirk must be documented in a PR, and all quirks must be approved by ken@FreeBSD.org. This is to make sure that we fully understand why each quirk is needed. Once the CAM_NEW_TRAN_CODE is finished, we should be able to remove any such quirks, since we'll know what protocol the drive speaks (SCSI, ATAPI, etc.) and therefore whether we should use 6 or 10 byte mode sense/select commands.
- Change the way the da(4) handles the no_6_byte sysctl. There is now a per-drive sysctl to set the minimum command size for that particular disk. (Since you could have multiple disks with multiple requirements in one system.)
- Loader tunable support for all the sysctls in the da(4) and cd(4) drivers.
- Add a CDIOCCLOSE ioctl for cd(4) (bde pointed this out a long time ago).
- Add a media validation routine (cdcheckmedia()) to the cd(4) driver, to fix some problems bde pointed out a long time ago. We now allow open() to succeed no matter what, but if we don't detect valid media, the user can only issue CDIOCCLOSE or CDIOCEJECT ioctls.
- The media validation routine also reads the table of contents off the drive. We use the table of contents to implement the CDIOCPLAYTRACKS ioctl using the PLAY AUDIO MSF command. The PLAY AUDIO TRACK INDEX command that we previously used was deprecated after SCSI-2. It works in every SCSI CDROM I've tried, but doesn't seem to work on ATAPI CDROM drives. We still use the play audio track index command if we don't have a valid TOC, but I suppose it'll fail anyway in that case.
- Add _len() versions of scsi_mode_sense() and scsi_mode_select() so that we can specify the minimum command length.
- Fix a couple of formatting problems in the sense printing code.
MFC after: 4 weeks
|
111188 |
20-Feb-2003 |
sos |
First round off updates/fixes to the ATA driver.
This moves all chipset specific code to a new file 'ata-chipset.c'. Extensive use of tables and pointers to avoid having the same switch on chipset type in several places, and to allow substituting various functions for different HW arch needs. Added PIO mode setup and all DMA modes. Support for all known SiS chipsets. Thanks to Christoph Kukulies for sponsoring a nice ASUS P4S8X SiS648 based board for this work!
Tested on: i386, PC98, alpha and sparc64
|
111119 |
19-Feb-2003 |
imp |
Back out M_* changes, per decision of the TRB.
Approved by: trb
|
110860 |
14-Feb-2003 |
alfred |
Fix crash dumps on ata and scsi.
To fix scsi, don't wait for ithreads if we're dumping, it makes the debugger sad.
To fix ata, use what appears to be a polling method if we're dumping, I stole this from tmm but added code to ensure that this change is only in effect while dumping.
Tested by: des
|
110116 |
30-Jan-2003 |
phk |
NO_GEOM cleanup: retire disk_invalidate()
|
109931 |
27-Jan-2003 |
sos |
Update the code that deals with disk enclosures:
Properly handle the newer Promise SuperSwap 1000 enclosures. Print out what kind of enclosure was found in the probe. Misc cleanups in the enclosure handling code.
Sponsored by: Advanis Inc.
|
109625 |
21-Jan-2003 |
phk |
Add a missing '{'
|
109623 |
21-Jan-2003 |
alfred |
Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
|
109621 |
21-Jan-2003 |
sos |
Remove the fake disklabel, no longer needed. Fix potential malloc panic.
Prodded by: phk
|
109539 |
19-Jan-2003 |
sos |
Small change to the previous commit, zero out the 48BIT flag in ata_command instead of in dmadone.
|
109533 |
19-Jan-2003 |
sos |
Add support for the ServerWorks CSB6. The support for the 3'rd channel is only experimental.
|
109529 |
19-Jan-2003 |
sos |
Fix the 48bit access support for the older Promise 66/100 controllers, the first attempt was wrong and could cause r/w timeouts.
Add yet another Promise PCI id.
|
109011 |
09-Jan-2003 |
sos |
Dont probe PnP devices.
Submitted by: Takahashi Yoshihiro <nyan@FreeBSD.org>
|
109010 |
09-Jan-2003 |
sos |
Fix typo
PR: 45375
|
108952 |
08-Jan-2003 |
sos |
Dont attach a Promise chip located behind a i960 bridge/chip. This makes it possible to run a Promise SuperTrak SX6000 with OS type set to "Other" as well as "Linux".
|
108949 |
08-Jan-2003 |
sos |
Add support for the nVidia nForce2 ATA part.
Fix support for the nForce1 as well, registers are offset 0x10 against the AMD/VIA parts.
|
108931 |
08-Jan-2003 |
sos |
Add code that works around the problem that the older Promise controllers (ultra/fasttrak-66/100) fails on 48bit accesses.
|
107972 |
17-Dec-2002 |
sos |
Try to fix the problem with burncd blank not seeing the end of the blank operation.
|
107971 |
17-Dec-2002 |
sos |
This should be the way PC98 ATA disks are seen geometry wise.
Should go into 5_0_RELEASE as well.
|
107660 |
06-Dec-2002 |
sos |
Fix linking problem when atadisk is not use in ata-all.c
Add dummy intr_func and lock_func to ata-card.c
Dont call ad_print if the driver decided there is no disk.
|
107562 |
03-Dec-2002 |
sos |
Add support for the PC98 platform to the ATA driver. This mostly consists of functionality to serialize accesses to the two ATA channels (which can also be used to "fix" certain PCI based controllers). Add support for Acard controllers. Enable the ATA driver in PC98 GENERIC, and add device hints. Update man page with latest support.
The PC98 core team has kindly provided me with a PC98 machine that made this all possible, thanks to all that contributed to that effort, without that this would probably newer have been possible..
Approved by: re@
|
107449 |
01-Dec-2002 |
thomas |
In ata_reinit, when ata_getparam fails for a new device (indicating that the device is not actually present), clear the corresponding bit in the ch->devices bitmap. This resolves a panic that occurred with ATAPI/CAM after an APM suspend/resume, when the ATA hardware would erroneously report an extra ATAPI device.
Approved by: re, sos Reviewed by: roberto MFC after: 7 days
|
107193 |
23-Nov-2002 |
njl |
Allow acd(4) and cd(4) to support old behavior for CDRIOC*SPEED ioctls. If the value from the user is less than 177, assume it is a multiple of a single speed CDROM and convert to KB/sec.
No complaints from: sos Reviewed by: ken Approved by: re MFC after: 1 day
|
106591 |
07-Nov-2002 |
jhb |
Use [u]intmax_t and %j instead of long long and %ll to better fix warnings I fixed earlier.
Requested by: mux, jake
|
106516 |
06-Nov-2002 |
jhb |
Use some long long casts to quiet warnings in debug printf's on alpha.
|
105742 |
22-Oct-2002 |
thomas |
Fill in missing parts of the ATAPI/CAM XPT: implement XPT_RESET_BUS and XPT_RESET_DEV.
In order to properly handle reset requests whether they originate in the ATA layer (atacontrol reinit) or from the CAM layer (camcontrol reset) ata_reinit does not cause the SIM to be deallocated anymore. The SIM is now unconditionnally created for each ATAPI bus.
This change may cause existing bus ids to change on some setups.
Reviewed by: roberto Approved by: sos
|
105421 |
18-Oct-2002 |
njl |
* Add CDRIOC{READ,WRITE}SPEED ioctls to cd(4). Units are in KB/sec. * Change atapi-cd ioctls to use the same units. * Change burncd, cdcontrol to convert CDROM speed to KB/sec before calling the ioctl. Add a "max" speed option for their command lines.
This change does not break ABI but does change the units passed through the ioctl so 3rd party software that uses cdrio.h will have to convert (most likely by multiplying CDROM speed by 177 to get KB/s).
PR: kern/36845 Submitted by: Philipp Mergenthaler <p@i609a.hadiko.de> (CAM ioctls) Reviewed by: sos, ken MFC after: 1 month
|
104684 |
08-Oct-2002 |
sos |
Fix for the panic when using a Promise TX2.
The problem is that the code does a check for the granparent of the Promise chip, if this is a bridge of the right type, we have a TX4 on our hands, and need to handle that ones "issues". Now the grandparent check cause subtle bugs in the newbus system, mainly that pci_get_devid doesn't return an error value. This patch works around the issue by using BUS_READ_IVAR() instead.
|
104354 |
02-Oct-2002 |
scottl |
Some kernel threads try to do significant work, and the default KSTACK_PAGES doesn't give them enough stack to do much before blowing away the pcb. This adds MI and MD code to allow the allocation of an alternate kstack who's size can be speficied when calling kthread_create. Passing the value 0 prevents the alternate kstack from being created. Note that the ia64 MD code is missing for now, and PowerPC was only partially written due to the pmap.c being incomplete there. Though this patch does not modify anything to make use of the alternate kstack, acpi and usb are good candidates.
Reviewed by: jake, peter, jhb
|
104299 |
01-Oct-2002 |
sos |
Misc cleanups.
Pointed out by: phk/flexelint
|
104298 |
01-Oct-2002 |
sos |
Add yet another Promise PCI id.
|
104096 |
28-Sep-2002 |
phk |
Fix an indentation problem.
|
104094 |
28-Sep-2002 |
phk |
Be consistent about "static" functions: if the function is marked static in its prototype, mark it static at the definition too.
Inspired by: FlexeLint warning #512
|
103870 |
23-Sep-2002 |
alfred |
use __packed.
|
103714 |
20-Sep-2002 |
phk |
(This commit touches about 15 disk device drivers in a very consistent and predictable way, and I apologize if I have gotten it wrong anywhere, getting prior review on a patch like this is not feasible, considering the number of people involved and hardware availability etc.)
If struct disklabel is the messenger: kill the messenger.
Inside struct disk we had a struct disklabel which disk drivers used to communicate certain metrics to the disklayer above (GEOM or the disk mini-layer). This commit changes this communication to use four explicit fields instead.
Amongst the benefits is that the fields do not get overwritten by wrong or bogus on-disk disklabels.
Once that is clear, <sys/disk.h> which is included in the drivers no longer need to pull <sys/disklabel.h> and <sys/diskslice.h> in, the few places that needs them, have gotten explicit #includes for them.
The disklabel inside struct disk is now only for internal use in the disk mini-layer, so instead of embedding it, we malloc it as we need it.
This concludes (modulus any mistakes) the series of disklabel related commits.
I belive it all amounts to a NOP for all the rest of you :-)
Sponsored by: DARPA & NAI Labs.
|
103707 |
20-Sep-2002 |
phk |
Remove unused #includes: <sys/disk.h> <sys/devicestat.h> and <sys/sysctl.h>
Sponsored by: DARPA & NAI Labs. Approved by: sos
|
103675 |
20-Sep-2002 |
phk |
Make FreeBSD "struct disklabel" agnostic, step 311 of 723:
Rename diskerr() to disk_err() for naming consistency.
Drop the by now entirely useless struct disklabel argument.
Add a flag argument for new-line termination.
Fix a couple of printf-format-casts to %j instead of %l.
Correctly print the name of all bio commands.
Move the function from subr_disklabel.c to subr_disk.c, and from <sys/disklabel.h> to <sys/disk.h>.
Use the new disk_err() throughout, #include <sys/disk.h> as needed.
Bump __FreeBSD_version for the sake of the aac disk drivers #ifdefs.
Remove unused disklabel members of softc for aac, amr and mlx, which seem to originally have been intended for diskerr() use, but which only rotted and got Copy&Pasted at least two times to many.
Sponsored by: DARPA & NAI Labs.
|
103535 |
18-Sep-2002 |
sos |
Add support for the VIA 8235.
Submitted by: Jason Dambrosio <jason@wiz.cx>
|
103390 |
16-Sep-2002 |
sos |
Fix the clockprobe test on the Sil 680
|
103328 |
14-Sep-2002 |
phk |
remove #includes of <sys/bio.h> where not needed.
|
103255 |
12-Sep-2002 |
sos |
Add preliminary mostly untested support for the Silicon Image Sil680 chip.
|
103253 |
12-Sep-2002 |
thomas |
Change a couple of splcam() calls that do not make sense in atapi-cam (what we want to mask is the ATA interrupts, which run at level splbio), and add interrupt masking around the statement that modifies the request queue for a SIM.
This resolves problems reported by users under heavy ATAPI load.
Reviewed by: roberto
|
103251 |
12-Sep-2002 |
sos |
Rearrange where to get the ATAPI magic sequence.
Submitted by: Benjamin Close <cisbjc@cs.unisa.edu.au>
|
103249 |
12-Sep-2002 |
sos |
Wait for drive to become ready if its in progress of loading.. Based on patch in PR-42659, but done somewhat differently.
PR: 42659
|
103248 |
12-Sep-2002 |
sos |
Dont hang in atprq on poll_dsc command. This is a temporary fix until I get proper locking done.
Submitted by: iedowse@maths.tcd.ie
|
102509 |
28-Aug-2002 |
njl |
printf -> CAM_DEBUG so debugging prints are tunable.
MFC after: 1 week
|
102508 |
28-Aug-2002 |
njl |
Use csio pointer instead of dereferencing hcb.
MFC after: 1 week
|
102126 |
19-Aug-2002 |
sos |
Fix buffer length.
PR: 41063
|
102125 |
19-Aug-2002 |
sos |
Fix typo.
|
101754 |
12-Aug-2002 |
sos |
Shut up warning in debug code.
|
101648 |
10-Aug-2002 |
scottl |
Fix the GET_TRAN_SETTINGS and SET_TRAN_SETTINGS ops to be more correct.
|
101637 |
10-Aug-2002 |
sos |
Minor corrections.
Suggested by: scottl <Scott Long>
|
101606 |
09-Aug-2002 |
sos |
Add the ability to use ATAPI devices via CAM.
The CAM<>ATAPI layer was submitted by "Thomas Quinot <thomas@cuivre.fr.eu.org>" changes form the version on the net by me (formatting, ability to be used alone without the ATAPI native device driver, proper speed reporting...)
See /sys/conf/NOTES for usage.
Submitted by: Thomas Quinot <thomas@cuivre.fr.eu.org>
|
101502 |
08-Aug-2002 |
sos |
Add DVD+RW support to the ATA driver and burncd. This also closes PR40430 by "Peter Haight <peterh@sapros.com>" that has semilar patches included and which I merged with my own work.
HW sponsored by: FreeBSD Foundation & FreeBSD Mall Inc
Enjoy!
|
101102 |
31-Jul-2002 |
sos |
Byteswap the serial #
|
100837 |
28-Jul-2002 |
sos |
OK, dont rely on the upper layers handling iosize_max correctly, instead rely on ATAPI devices ability to do the work instead.
MFC material.
|
100749 |
27-Jul-2002 |
sos |
Properly change the block_size on different CD media, and use that to calculate the max amount of data in one IO request.
Correct the max size on atapi floppies/tapes as well.
|
100724 |
26-Jul-2002 |
sos |
Fix the max transfer size for ATAPI devices. The spec says to transfer at most 65534 bytes, thats 126 times DEV_BSIZE not 252 :(
Pointed out by: Ian Dowse <iedowse@maths.tcd.ie>
|
100526 |
22-Jul-2002 |
sos |
Fix the transfer size calculation.
|
100525 |
22-Jul-2002 |
sos |
Sync with the spl changes in -stable. Add start of support for DVD+RW.
|
100524 |
22-Jul-2002 |
sos |
Update the tags handling a bit, which makes support for the older IBM DTTA series of drives possible. Update error handling a bit now we are here.
|
100459 |
21-Jul-2002 |
peter |
Remove dependency on NPCI. Use 'options ATA_NOPCI' to compile without pci support. This really needs to be fixed properly some day, but judging by the fact that the nopci case hasn't compiled for quite a while, there does not seem to be much urgency.
Reviewed by: sos
|
100380 |
19-Jul-2002 |
jhb |
Add PCI ID for the ICH4 ATA100 controller.
Sponsored by: The Weather Channel
|
98429 |
19-Jun-2002 |
sos |
Use si_iosize_max to tell the upper layers not to use more than 32K chunks on ZIP drives instead of deblocking it in the driver.
|
98428 |
19-Jun-2002 |
sos |
Add yet another (older) Promise chip
|
98055 |
08-Jun-2002 |
sos |
Fix a '<<' that should have been a '>>' in the 48bit case.
Fortunately we only have had 32bit block counts until recently, and no 2TB disks :)
|
97408 |
28-May-2002 |
sos |
Use %02d in track numbers, so that 1 is 01, much easier for scripts
|
97274 |
25-May-2002 |
bde |
Fixed printf format errors which apparently crept in while -Wformat was disabled for gcc-3.
|
97162 |
23-May-2002 |
sos |
Dont panic if only one disk on a channel can do tagged queueing.
MFC: asap
|
95533 |
26-Apr-2002 |
mike |
Move the new byte order function prototypes from <sys/param.h> to <sys/endian.h>. This puts us in line with NetBSD and OpenBSD.
|
95010 |
18-Apr-2002 |
sos |
Fix the breakage of tagged queueing that the busdma integration introduced. Since its now only possible to have one DMA control block at a time, we move the setup to dmastart instead.
|
94826 |
16-Apr-2002 |
sos |
Add support for the nVIDIA nForce ATA controller.
Collapse the VIA/AMD/nVIDIA support code into one, they are created more or less equal anyway..
|
94508 |
12-Apr-2002 |
sos |
Add a couble more Promise chip ID's.
|
94426 |
11-Apr-2002 |
sos |
Add yet another chip ID for a Promise TX2 chip.
|
94408 |
11-Apr-2002 |
sos |
Only calculate Promise magic if a device is there for info.
|
94356 |
10-Apr-2002 |
sos |
Fix the FreeBSD native ATA RAID code a bit.
|
94037 |
07-Apr-2002 |
sos |
Add yet another ATA133 Promise chip.
|
93903 |
05-Apr-2002 |
sos |
Unlock the channel again if an ata_reinit() fails.
|
93901 |
05-Apr-2002 |
sos |
Change option ATA_ENABLE_BUSMASTER into ifdef __sparc64__
|
93900 |
05-Apr-2002 |
sos |
Cleanups.
|
93898 |
05-Apr-2002 |
sos |
Dont allow to detach twice.
|
93891 |
05-Apr-2002 |
sos |
Add forgotten ATA_UNLOCK_CH when getting status from non-existing enclosure.
|
93882 |
05-Apr-2002 |
sos |
Make the ATA driver compile & work on the sparc64 platform.
Initial work & code by tmm.
Lots of changes and rearrangements by yours truely to make busdma be a little less a PITA (but I still dont like it).
|
93674 |
02-Apr-2002 |
sos |
Correct the Northbridge test on the new ATA133 VIA's Misc cosmetics now I'm there.
|
93662 |
02-Apr-2002 |
sos |
Add get-status to the ATA RAID subsystem.
|
93657 |
02-Apr-2002 |
phk |
Retire the bogus ioctl DIOCGPART in toto.
Once again we can notice that badly thought out hacks ferment and infect far more code than initially expected.
Sponsored by: DARPA and NAI Labs.
|
93593 |
01-Apr-2002 |
jhb |
Change the suser() API to take advantage of td_ucred as well as do a general cleanup of the API. The entire API now consists of two functions similar to the pre-KSE API. The suser() function takes a thread pointer as its only argument. The td_ucred member of this thread must be valid so the only valid thread pointers are curthread and a few kernel threads such as thread0. The suser_cred() function takes a pointer to a struct ucred as its first argument and an integer flag as its second argument. The flag is currently only used for the PRISON_ROOT flag.
Discussed on: smp@
|
93496 |
31-Mar-2002 |
phk |
Here follows the new kernel dumping infrastructure.
Caveats:
The new savecore program is not complete in the sense that it emulates enough of the old savecores features to do the job, but implements none of the options yet.
I would appreciate if a userland hacker could help me out getting savecore to do what we want it to do from a users point of view, compression, email-notification, space reservation etc etc. (send me email if you are interested).
Currently, savecore will scan all devices marked as "swap" or "dump" in /etc/fstab _or_ any devices specified on the command-line.
All architectures but i386 lack an implementation of dumpsys(), but looking at the i386 version it should be trivial for anybody familiar with the platform(s) to provide this function.
Documentation is quite sparse at this time, more to come.
Details:
ATA and SCSI drivers should work as the dump formatting code has been removed. The IDA, TWE and AAC have not yet been converted.
Dumpon now opens the device and uses ioctl(DIOCGKERNELDUMP) to set the device as dumpdev. To implement the "off" argument, /dev/null is used as the device.
Savecore will fail if handed any options since they are not (yet) implemented. All devices marked "dump" or "swap" in /etc/fstab will be scanned and dumps found will be saved to diskfiles named from the MD5 hash of the header record. The header record is dumped in readable format in the .info file. The kernel is not saved. Only complete dumps will be saved.
All maintainer rights for this code are disclaimed: feel free to improve and extend.
Sponsored by: DARPA, NAI Labs
|
93477 |
31-Mar-2002 |
sos |
ATA100 is allowed on the HPT chips rev >= 3
|
93436 |
30-Mar-2002 |
sos |
Remove debug output in last commit.
|
93433 |
30-Mar-2002 |
sos |
Add support for getting status (fan, temp, 5V and 12V levels) from Promise Superswap enclosures.
Sponsored by: Advanis
|
93415 |
30-Mar-2002 |
sos |
Use the raid lun not the magic when writing Promise config.
|
93332 |
28-Mar-2002 |
sos |
Fix a braino, only update LED's when a device is present.
|
93297 |
27-Mar-2002 |
sos |
OK, the old HighPoint BIOS's are braindead, they have a really warped way of things. Anyway deal with it, and luckily the newer HighPoint BIOS's doesn't mind..
No brownies to HighPoint for that...
|
93285 |
27-Mar-2002 |
sos |
Fix support for multi CD changers, it was as broken as my old NEC :)
MFC: ASAP
:
|
93276 |
27-Mar-2002 |
sos |
Add support for creating/deleting ATA RAID's. This completes the ATA RAID support, since all functions to manipulate the RAID are accessible from FreeBSD, the BIOS on the ATA RAID cards are only nessesary for booting.
I decided to allow for creation of ATA RAID's on any ATA controller, but please keep in mind the restrictions on that. Due to the BIOS not knowing what to do you can only boot from a RAID1 or the first disk in a SPAN, if its not located on a "real" ATA RAID controller like the Promise or Highpoint controllers.
Sponsored by: Advanis
|
93198 |
26-Mar-2002 |
sos |
Misc little cleanups.
|
93094 |
24-Mar-2002 |
sos |
Add AMD 768 support.
|
92695 |
19-Mar-2002 |
peter |
Add some break's after default: in the end of switch statements to keep gcc-3.1+ happy: ata-all.c:410: warning: deprecated use of label at end of compound statement ata-all.c:587: warning: deprecated use of label at end of compound statement ata-raid.c:99: warning: deprecated use of label at end of compound statement ata-raid.c:151: warning: deprecated use of label at end of compound statement
|
92584 |
18-Mar-2002 |
sos |
Cleanup the chipset setup a bit. Add some (for all I know unneeded) setup code for the rosb4.
|
92573 |
18-Mar-2002 |
sos |
Add support for the ServerWorks CSB5 chips
|
92421 |
16-Mar-2002 |
sos |
Add more functionality to the CDIOCREADSUBCHANNEL ioctl.
PR: 26644
|
92419 |
16-Mar-2002 |
sos |
Fix 64bit arch problems.
|
92418 |
16-Mar-2002 |
sos |
Remove useless splXXX set.
|
92343 |
15-Mar-2002 |
sos |
Update to the RAID1 rebuild code.
Run rebuild as a background process.
Sponsored by: Advanis
|
92293 |
14-Mar-2002 |
sos |
Unbreak the probing of some CDROM drives.
|
92107 |
11-Mar-2002 |
sos |
Add new support for locking an ATA channel and use that throughout the ATA/ATAPI driver. This solves the concurrency problem with the new GEOM code, and also cuts a good deal of the patch size in the upcoming MFC.
|
92024 |
10-Mar-2002 |
sos |
Silence a warning when compile without atapi devices.
|
91914 |
08-Mar-2002 |
sos |
Even more Highpoint RAID support.
Fix the 80pin cable detection system.
|
91861 |
08-Mar-2002 |
sos |
Support newer Highpoint BIOS's extended config.
|
91860 |
08-Mar-2002 |
sos |
cosmetics
|
91829 |
07-Mar-2002 |
sos |
Oops I mixed up the patch for -current & -stable, sorry ....
|
91817 |
07-Mar-2002 |
sos |
Minor cosmetic changes to minimise diffs for MFC.
|
91816 |
07-Mar-2002 |
sos |
Fix a couble of bugs in the rebuild code, return errors properly.
|
91729 |
06-Mar-2002 |
bde |
Fixed a printf format error again. Rev.127 was clobbered in rev.1.128 by removing parentheses. The main bug is in gcc: on machines with 64-bit longs and 64-bit long longs,
(unsigned long long)rdp->total_sectors / ((1024L * 1024L) / DEV_BSIZE))
has type plain unsigned long instead of the correctly promoted type unsigned long long, so it can not be printfed using %llu format. Even 1ULL / 1L is mispromoted. Anyway, casting the correct operand automatically avoids the problem. We do not want to to pessimize the division; we just want to convert to a common maximal type for printing.
|
91672 |
05-Mar-2002 |
sos |
Misc little cleanups:
Link if only ATAPI device in kernel config Remove unused #includes Rearrange a bit in ata-raid to make diff against -stable smaller Enable wc as default again, dunne how this happend...
|
91596 |
03-Mar-2002 |
sos |
Forgot this litte patch, scale the individual disk size from the arrays total size depending on width of the array.
|
91593 |
03-Mar-2002 |
sos |
Major update of the ATA RAID code, part 3:
Add code to properly detach/attach disks that are part of a RAID.
Mark a disk that is attached on an ATA channel belonging to a RAID as a spare disk that can be used for rebuilding failed RAID1's.
Add support for rebuilding failed RAID1's.
Several fixes to the detach/attach code.
For replacing a disk in a failed RAID1 do the following:
Find the controller channel# of the failed disk.
Exec 'atacontrol detach <channel#>' to free the disk from the system.
Replace the failed disk with a new one of at least the same size. If your have your disks in drawers/enclosures this can be done with the system still running.
Exec 'atacontrol attach <channel#>' to add the disk to the system and mark it as a valid spare for rebuild.
Exec 'atacontrol rebuild <array#>'
The system will rebuild the array on the fly, the array can still be used during this, although with slower performance.
Please let me know of any problems with this!
Sponsored by: Advanis Inc.
MFC after: 2 weeks
|
91563 |
02-Mar-2002 |
bde |
Fixed a printf format error.
|
91194 |
24-Feb-2002 |
sos |
Finish phk's previous removal of BIO_ORDERED, all code that depended on ATA_FLUSHCACHE_ON is now useless.
|
91062 |
22-Feb-2002 |
phk |
GC: BIO_ORDERED going away.
|
90844 |
18-Feb-2002 |
sos |
Add support for the Highpoint HPT372 based cards (rocketraid 133).
HW Sponsored by: Mike Tancsa
|
90843 |
18-Feb-2002 |
sos |
Fix the problem that some (in my book broken) disks reports to be able to use 48bit addressing mode, but says the 48bit size of the disk is 0, which according to spec means it can address zero sectors in 48bit mode, why then say it supports 48bit mode at all..
|
90719 |
16-Feb-2002 |
sos |
Dont try to attach ATA RAID's if none found.
|
90681 |
15-Feb-2002 |
bde |
Added undocumented options AAC_DEBUG, ACD_DEBUG, ACPI_MAX_THREADS, ACPI_NO_SEMAPHORES, ASR_MEASURE_PERFORMANCE, AST_DEBUG, ATAPI_DEBUG, ATA_DEBUG, BKTR_ALLOC_PAGES, BROOKTREE_ALLOC_PAGES, CAPABILITIES, COMPAT_SUNOS, CV_DEBUG, MAXFILES, METEOR_TEST_VIDEO, NDEVFSINO, NDEVFSOVERFLOW, NETGRAPH_BRIDGE, NETSMB, NETSMBCRYPTO, PFIL_HOOKS, SIMOS, SMBFS, VESA_DEBUG, VGA_DEBUG.
Start using #! to comment out negative options and ## to comment out broken options.
atapi-all.c: Fixed rotted bits that were hiding under ATAPI_DEBUG.
atapi-cd.c: #include "opt_ata.h" so that ACD_DEBUG is actually visible.
ata/atapi-tape.c #include "opt_ata.h" so that AST_DEBUG is actually visible.
|
90572 |
12-Feb-2002 |
sos |
Add support for the Cenatek Rocket Drive.
|
90569 |
12-Feb-2002 |
sos |
Fix buglets in the ATAPI resume code.
This also fixes an old bug where some ATAPI devices went into funny mode on an 'atacontrol reinit' command.
|
90566 |
12-Feb-2002 |
sos |
Major update of the ATA RAID code, part 2:
More cleanups of the RAID1 failure mode code.
Add functionality that writes the changed RAID config setup back to the disks (in controller BIOS specific format), so that a reboot will make the BIOS pick up the changed config.
|
90533 |
11-Feb-2002 |
sos |
Add support for the HighPoint HPT374 4 channel ATA chip.
Sponsored by: Isilon Systems.
|
90318 |
06-Feb-2002 |
julian |
Make LINT compile after fruitless attempts to get the authors to fix their code.
ata stuff: Change name of ar_attach to not colide with existing ar_attach in if_ar.c. usb stuff: Create a dummy function to satisfy a call to it when in DEBUG mode.
|
90215 |
04-Feb-2002 |
sos |
Major update of the ATA RAID code, part 1:
Overhaul of the attach/detach code and structures, there were some nasty bugs in the old implementation. This made it possible to collapse the ATA/ATAPI device control structures into one generic structure.
A note here, the kernel is NOT ready for detach of active devices, it fails all over in random places, but for inactive devices it works. However for ATA RAID this works, since the RAID abstration layer insulates the buggy^H^H^H^H^H^Hfragile device subsystem from the physical disks.
Proberly detect the RAID's from the BIOS, and mark critical RAID1 arrays as such, but continue if there is enough of the mirror left to do so.
Properly fail arrays on a live system. For RAID0 that means return EIO, and for RAID1 it means continue on the still working part of the mirror if possible, else return EIO. If the state changes, log this to the console.
Allow for Promise & Highpoint controllers/arrays to coexist on the same machine. It is not possible to distribute arrays over different makes of controllers though.
If Promise SuperSwap enclosures are used, signal disk state on the status LED on the front.
Misc fixes that I had lying around for various minor bugs.
Sponsored by: Advanis Inc.
|
89917 |
28-Jan-2002 |
sos |
Add support for the Promise TX4.
Rearrange the support for the VIA chips, and add experimental support for ATA133 on the newest chips.
|
89915 |
28-Jan-2002 |
sos |
Add support for pccard.
submitted by: imp
|
88778 |
01-Jan-2002 |
sos |
Update of the VIA 82c686b southbridge data corruption fix, also include more possible chipset candidates.
|
88478 |
25-Dec-2001 |
sos |
Add support for even more SiS chipsets.
Misc cosmetics.
|
88477 |
25-Dec-2001 |
sos |
Fix yet another fake slave problem for PCCARD devices.
|
88162 |
19-Dec-2001 |
jhb |
Display the right message for the SiS 645 chipset.
Submitted by: Kent Stewart <kstewart@owt.com>
|
88159 |
19-Dec-2001 |
jhb |
Fix comment for the SiS 645 chipset to be 645 instead of 635.
|
87951 |
14-Dec-2001 |
sos |
Adjust the timings for the SiS chips a bit, also add the SiS 645.
Cosmetics on the Acer chips (print right modes)
|
87950 |
14-Dec-2001 |
sos |
Do be so anal on detach, properly free interrupt even if no devices.
|
87370 |
04-Dec-2001 |
sos |
Allow setting the CD type on cue sheets
|
87206 |
02-Dec-2001 |
sos |
ARG! committed the wrong patch!! I need more sleep :(
|
87205 |
02-Dec-2001 |
sos |
Oops, lost a line in the previous commit.
|
87198 |
02-Dec-2001 |
sos |
Initial support for the newer SiS chipsets, based on docs we finally got from SiS.
This should also close PR 32421 which has patches which seem to set the timing registers wrongly according to SiS...
|
86322 |
13-Nov-2001 |
sos |
Add yet another VIA ATA100 southbridge.
|
86321 |
13-Nov-2001 |
sos |
Fix bogon, free() the right memory type.
|
86313 |
13-Nov-2001 |
ps |
Fix a signed bug in the crashdump code for systems with > 2GB of ram.
Reviewed by: peter
|
86014 |
04-Nov-2001 |
phk |
Don't call cdevsw_add().
|
85802 |
01-Nov-2001 |
ache |
Use devclass_find_free_unit() in ata_pci_add_child() because no more implicit auto-scanning up present in device_add_child(). Functionally it is fully equivalent to old code.
|
85425 |
24-Oct-2001 |
des |
Don't enable write cacheing on devices that don't support tagged queuing unless hw.ata.wc is set.
Approved by: sos MFC after: 1 week
|
85352 |
23-Oct-2001 |
sos |
Add a bunch of new PCI ID's for Intel ATA chips.
|
85350 |
23-Oct-2001 |
sos |
Add experimental support for the HighPoint HPT372 ATA133 controller.
Based on docs kindly provided by HighPoint which we thank for the close cooperation with the FreeBSD project!.
|
85345 |
23-Oct-2001 |
sos |
Add experimental support for the Promise ATA133 controller.
This might need additional code for hotswapping use, but first I need to get my hands on actual hw...
Based on docs kindly provided by Promise Inc which we thank for the close cooperation with the FreeBSD project!.
|
85161 |
19-Oct-2001 |
sos |
Make an ATAPI CD device appear as /dev/acdN and the individual tracks as /dev/acdNtY.
This solves the problems with having to deal with howmany and which devices are open.
For hysterical reasons ONLY, make a link to both the acdNa & acdNc devices.
|
85025 |
16-Oct-2001 |
sos |
Fix bug introduced by the last commit, the caused some ATAPI devices to fail to proberly initialize at boot..
|
84928 |
14-Oct-2001 |
mjacob |
Fix it so that it doesn't complain for compiles on alpha- that is, match format string args to actual args.
|
84584 |
06-Oct-2001 |
sos |
Update with latest ATA/ATAPI ver 6 rev 2 items.
|
84485 |
04-Oct-2001 |
sos |
Update the promise raid structure with some of the info I've gathered before I'm accused of "lending" it from somebody else.
|
84419 |
03-Oct-2001 |
sos |
Doh! committed from the wrong tree, this is the right "stuff"...
|
84413 |
03-Oct-2001 |
sos |
Proberly support the Promise TX2/4.
Programming info kindly provided by Daniela Engert <dani@ngrt.de>
|
84411 |
03-Oct-2001 |
sos |
cosmetics in the bootverbose probe-
|
84410 |
03-Oct-2001 |
sos |
Hopefully fix the identify failed on ATAPI slaves on some notebooks.
|
84302 |
01-Oct-2001 |
sos |
Change the way DAO/TAO mode is init'ed.
Fix a bogon introduced in the previous commit, that broke CDIOREADSUBCHANNEL.
|
83932 |
25-Sep-2001 |
sos |
Add a fix for the VIA82C686B data corruption bug. This fixed the problem on the 3 platforms I've been able to test on.
I'm still of the oppinion that the BIOS should take care of this, however some board makers only apply this when they spot a SBLive! soundcard, but the problem exists even without a SBLive!.
This fix should probably go somewhere else, but for now I'll keep it here since we havn't got a central place to put such things.
|
83728 |
20-Sep-2001 |
sos |
Overhaul to minimize stack usage, in some places >2K was used on the stack *blush*...
|
83366 |
12-Sep-2001 |
julian |
KSE Milestone 2 Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process.
Sorry john! (your next MFC will be a doosie!)
Reviewed by: peter@freebsd.org, dillon@freebsd.org
X-MFC after: ha ha ha ha
|
83295 |
10-Sep-2001 |
sos |
Add kernel side support for DAO burning.
|
83153 |
06-Sep-2001 |
sos |
Fix the size of medium code, the old one failed for DVD's. This might introduce problems on normal CD's (again) sigh...
|
83141 |
06-Sep-2001 |
sos |
Fix verbose probe message.
PR: 29360
|
83135 |
06-Sep-2001 |
sos |
Add support for set/getting the region code on DVD drives.
PR: 28604
|
82729 |
01-Sep-2001 |
sos |
Make "atapi less" kernels link again.
Question is if we should allow the ioctl only interface to be created if atapi devices are present, but no driver linked in....
|
82560 |
30-Aug-2001 |
sos |
Add support for sending ATAPI commands via ioctl.
|
82464 |
28-Aug-2001 |
sos |
Update the Promise TX2 code to DTRT and not what I guessed earlier. Allow tagged queing on the Promise TX2 as it seems to work.
Cudos to promise for making the most simple to program ATA chip.
|
82458 |
28-Aug-2001 |
sos |
Add support for yet another VIA '686 combination.
|
82056 |
21-Aug-2001 |
sos |
Add support for the newer Promise chips here as well.
|
82053 |
21-Aug-2001 |
sos |
Finally commit some of the minor things I've collected over the last month(s):
Add tagged queueing support for new IBM drives.
Add support for Yet Another Promise ATA 100 chip.
Flush disk cache on close.
Dont flush the disk cache on BIO_ORDERED anymore.
Cleanup the tests for DMA on ATAPI devices.
Allow to share ALL irq's even the std irg 14 & 15.
Fix calculation bug in end of media code on CD's.
Add REZERO on opening a CDR/CDRW.
Cleanup ataioctl a bit.
|
81397 |
10-Aug-2001 |
jhb |
- Remove asleep(), await(), and M_ASLEEP. - Callers of asleep() and await() have been converted to calling tsleep(). The only caller outside of M_ASLEEP was the ata driver, which called both asleep() and await() with spl-raised, so there was no need for the asleep() and await() pair. M_ASLEEP was unused.
Reviewed by: jasone, peter
|
80550 |
29-Jul-2001 |
tmm |
Disallow ATAPI CD transfers that are not a multiple of the device block size (previously, the transfer size would be rounded up to a multiple of the block size, which would overflow the buffer). This fixes panics when doing things like trying to mount audio CD's.
PR: kern/21946 Review Timeout: sos
|
80203 |
23-Jul-2001 |
kris |
s/adress/address/
Inspired by: OpenBSD MFC After: 1 week
|
77905 |
08-Jun-2001 |
sos |
Add support for yet another Promise ATA100 variant
Minor fix to the VIA setup code.
|
77900 |
08-Jun-2001 |
peter |
"Fix" the previous initial attempt at fixing TUNABLE_INT(). This time around, use a common function for looking up and extracting the tunables from the kernel environment. This saves duplicating the same function over and over again. This way typically has an overhead of 8 bytes + the path string, versus about 26 bytes + the path string.
|
77864 |
07-Jun-2001 |
sos |
Quiet the READ_TOC errors that can appear on empty CDR's.
Assure cur_write_speed can be no less than 177 to avoid divide by 0 error.
|
77853 |
07-Jun-2001 |
peter |
Back out part of my previous commit. This was a last minute change and I botched testing. This is a perfect example of how NOT to do this sort of thing. :-(
|
77843 |
06-Jun-2001 |
peter |
Make the TUNABLE_*() macros look and behave more consistantly like the SYSCTL_*() macros. TUNABLE_INT_DECL() was an odd name because it didn't actually declare the int, which is what the name suggests it would do.
|
77476 |
30-May-2001 |
sos |
Dont try to play tracks outside whats on the media.
PR 26647
|
77474 |
30-May-2001 |
sos |
Update to support the NEC NR-7500A burners.
|
77403 |
29-May-2001 |
sos |
Fix bug in debug code
|
77402 |
29-May-2001 |
sos |
Fix for the fixate problem on the Yamaha burners.
|
76741 |
17-May-2001 |
sos |
Update to use the changed ioctl interface.
|
76584 |
14-May-2001 |
sos |
Add support for the AMD 766 southbridge incl ATA100 support
Fix ATA66 mode for the AMD756, the timing was way to slow
|
76406 |
09-May-2001 |
sos |
Remove the error var, it hides the real one.
PR 27213.
BTW the CDIOCREADAUDIO ioctl is deprecated, its not longer needed and was an ugly hack from start on.
|
76324 |
06-May-2001 |
phk |
Make the disk mini-layer check for and handle zero-length transfers instead of the underlying drivers.
|
76322 |
06-May-2001 |
phk |
Actually biofinish(struct bio *, struct devstat *, int error) is more general than the bioerror().
Most of this patch is generated by scripts.
|
76080 |
27-Apr-2001 |
sos |
Move the disklabel construction to the attach function instead of in open. This prevent panics when a the disklabel is accessed on an ATA-RAID subdisk.
|
75553 |
16-Apr-2001 |
sos |
Add support the the Intel ICH2 mobile
Tidy chip name printing a bit.
|
75516 |
14-Apr-2001 |
sos |
The VIA 586 chip does UDMA from rev 0x3 onwards.
MFC candidate!
|
75271 |
06-Apr-2001 |
sos |
Add ATA66 and ATA100 mode support for Acer chipsets.
MFC candidate :)
|
75237 |
05-Apr-2001 |
sos |
More error handling cleanups.
|
75233 |
05-Apr-2001 |
sos |
On burners that return faulty ready on fixate, wait for the expected fixate time before returning.
Dont print error messages to the console on READ_TOC on a blank media.
|
75232 |
05-Apr-2001 |
sos |
Add new flag ATPR_F_QUIET to atapi_request.
Cleanup error handling.
|
75231 |
05-Apr-2001 |
sos |
Correct the sysctl names to match the tuneables.
Proberly flush the tag queue on detach.
|
74890 |
28-Mar-2001 |
ps |
Last commit was broken.. It always prints '[CTRL-C to abort]'. Move duplicate code for printing the status of the dump and checking for abort into a separate function.
Pointy hat to: me
|
74847 |
27-Mar-2001 |
sos |
Use PLAY_MSF instead of PLAY_BIG when doing audio play. The fixes the problem of PLAY_BIG not being implemented on some modern drives.
The problem now is that some old drives use BSD encoding in the MSF case, which they dont tell, and which is also not according to spec *sigh*. Hopefully there are not too many of those still alive, or I hereby grant license to kill the firmware writers that wrote the mess.
|
74841 |
27-Mar-2001 |
ps |
Change the dump routines to only abort if control-c is pressed. If any other key is pressed, print a message stating that control-c is how to abort.
Reviewed by: peter
|
74810 |
26-Mar-2001 |
phk |
Send the remains (such as I have located) of "block major numbers" to the bit-bucket.
|
74748 |
24-Mar-2001 |
sos |
Add bandaid to get ISA only systems to link.
|
74704 |
23-Mar-2001 |
sos |
Fix the problem with some drives not reporting back when the are busy blanking and erasing CD-RW media. This fixes burncd's premature returns from blanking/erasing that caused trouble.
|
74579 |
21-Mar-2001 |
sos |
The size of the disk can't be gotten reliably with the read capacity command, so use the info from the TOC instead.
|
74564 |
21-Mar-2001 |
sos |
Set the device names as early as possible.
|
74563 |
21-Mar-2001 |
sos |
Handle the case where the last piece of a RAID0 (striped) disk is not of interleave size.
|
74562 |
21-Mar-2001 |
sos |
Cleanup the diskerr messages a bit.
|
74561 |
21-Mar-2001 |
sos |
Do not change/get mode on a nonexisting device.
|
74463 |
19-Mar-2001 |
sos |
Try not to engage to ATA channels that are disabled by the BIOS.
|
74461 |
19-Mar-2001 |
sos |
On open create all the CD physical track devices according to the TOC read from the CD, instead of cloning them when asked to.
|
74460 |
19-Mar-2001 |
sos |
Only allow root to attach/detach/etc ATA/ATAPI devices.
|
74450 |
19-Mar-2001 |
sos |
Add sysctls for reading the tunables as suggested by des. Minor cleanups plus checks of the ->active state. Cosmetics.
|
74449 |
19-Mar-2001 |
sos |
Cleanup the alloc/release code a bit.
Fix length error on the bmio resource.
Fix the irq release code, zero out free'd irq.
|
74445 |
19-Mar-2001 |
sos |
Cosmetic changes.
|
74302 |
15-Mar-2001 |
sos |
Provide the interface to atacontrol and associated logic.
see atacontrol(8) for more.
Also the ATA_ENABLE_ATAPI_DMA, ATA_ENABLE_WC and ATA_ENABLE_TAGS options are gone, use the tuneables listed in ata.4 instead from the loader (this makes it possible to switch off DMA before the driver has to touch the devices on broken hardware).
|
74253 |
14-Mar-2001 |
sos |
Minor cleanup to the previous commit:
Print what devices went away and which arrived.
Avoid timeout loop on missing status.
|
74251 |
14-Mar-2001 |
sos |
Add support for the IOMEGA Clik!
IOMEGA deserves a medal for making the most nonstandard ATAPI devices, if they are ignorant or just not smart enough I don't know, but somebody should help them out of their misery...
|
74250 |
14-Mar-2001 |
sos |
Refine the detach/attach code.
Proberly fail outstanding bio requests on devices that are detached.
This makes it possible to change between disk/cdrom/dvd/whathaveyou in a notebook, just by suspending it, changing the device in the bay (or what you model calls it), unsuspend and the ATA driver will figure out what disappeared and properly fail those, and attach any new devices found.
|
73897 |
06-Mar-2001 |
sos |
Split out the ata probes in seperate files for each bus type.
|
73869 |
06-Mar-2001 |
sos |
Cosmetic change to the probe printf's
|
72670 |
18-Feb-2001 |
markm |
Set the interrupt-harvesting bit for those hardware items that I can actually test.
Nothing will happen until the sysadmin turns on intr-harvesting on her computer.
|
72413 |
12-Feb-2001 |
sos |
Oops, its no longer NISA its DEV_ISA, sigh....
|
72410 |
12-Feb-2001 |
sos |
Dont rely on isa includes to get at the std port adresses.
|
72403 |
12-Feb-2001 |
sos |
Print out sensekey specifik values if set on error
|
72402 |
12-Feb-2001 |
sos |
Properly report the VIA '586 type.
|
72187 |
08-Feb-2001 |
sos |
Fix a memory leak.
Pointed out by: Asmodai
|
72106 |
06-Feb-2001 |
sos |
Introduce busspace instead of the good old in/out instructions. Not pretty but it works (I hope)...
|
72096 |
06-Feb-2001 |
sos |
Damn! that was the wrong patch! get it right this time....
|
72094 |
06-Feb-2001 |
sos |
Fix the clone functionality in atapi-cd, it didn't work for devs other than the first, and allowed to clone a nonexistent device..
|
71806 |
29-Jan-2001 |
sos |
Add option ATA_ENABLE_WC for enabling write caching (now off by default).
|
71788 |
29-Jan-2001 |
peter |
Convert ata and atapi #if NATA* > 0 to options instead. Stop config trying to count the number of ata* devs since they were not used anyway.
|
71785 |
29-Jan-2001 |
peter |
Send "#if NISA > 0" to the bit-bucket and replace it with an option. These were compile-time "is the isa code present?" tests and not 'how many isa busses' tests.
|
71335 |
21-Jan-2001 |
sos |
Correct botchup in last commit that made older VIA chips fail...
|
71259 |
19-Jan-2001 |
peter |
Zap #include "apm.h" - it was not used.
|
71218 |
18-Jan-2001 |
sos |
When blocksize is set to 2352, alwas read 2352 bytes. This means it might read more than just data, but that is exactly what we want here (for reading VCD's fx)
|
71156 |
17-Jan-2001 |
sos |
Add first cut support for the ATA100 capable VIA82c686b.
|
71044 |
14-Jan-2001 |
sos |
Use prober atomic operations when test&set'ing ->active.
This turns some of my lockups under SMP into spontanious reboots...
|
70901 |
10-Jan-2001 |
sos |
Add session argument to *close_disk, allowing to set session type on fixate. Add support for different blank/erase types.
Update headers.
|
70802 |
08-Jan-2001 |
sos |
Back out the "close tray on open" feature, its not clear what color it should have...
|
70752 |
07-Jan-2001 |
sos |
Try better this time at a patch that properly backspeeds on the Acer chips.
|
70749 |
07-Jan-2001 |
sos |
On open try to close the drivetray and wait for drive ready.
Idea from PR24109 but implemented differently
|
70685 |
05-Jan-2001 |
sos |
Oops the test in the Acer code should be >= not >.
|
70666 |
04-Jan-2001 |
sos |
Add support for using BurnProff(tm) on drives that support it.
This is experimental as I dont have such a drive, reports welcome!!
|
70653 |
04-Jan-2001 |
sos |
Proberly calculate the RAID structure on the Promise Fasttrak.
|
70363 |
26-Dec-2000 |
sos |
Use M_ZERO flag on malloc when approbiate.
|
70361 |
26-Dec-2000 |
sos |
Update the burncd interface a bit, dont block the ATA channel on blank & fixate commands and provide a progress interface for the blank command (for now)
|
70360 |
26-Dec-2000 |
sos |
Use diskerr for printing disk hard/soft errors.
|
70186 |
19-Dec-2000 |
sos |
Proberly back down DMA modes on the Acer Aladdin.
|
69774 |
08-Dec-2000 |
phk |
Staticize some malloc M_ instances.
|
68874 |
18-Nov-2000 |
sos |
Fix a braino ..
|
68817 |
16-Nov-2000 |
sos |
Put the probe verboseness behind bootverbose
|
68645 |
12-Nov-2000 |
sos |
Only offset raid disks > 1 on the HPT, this should solve the boot problems.. However this demands that dangerously dedicated disks use an offset of at least 10 from the start to not overwrite the raid config sector on the HPT...
|
68644 |
12-Nov-2000 |
sos |
Better handling of immediate commands, mainly to solve timeouts in the atapi-tape code...
|
68643 |
12-Nov-2000 |
sos |
Hopefully fix the probing problems that caused lost slaves etc..
|
68504 |
08-Nov-2000 |
sos |
Rearrange the timeouts in the reset code a bit, some ATAPI devices are picky about this.
|
68502 |
08-Nov-2000 |
sos |
Hopefully solve the lost slave problem.
|
68292 |
03-Nov-2000 |
sos |
Fix breakage on some ATA chips that dont have busmastering set. Tidy up the probe a bit..
|
68183 |
01-Nov-2000 |
sos |
Update the config gathering code for both Promise & HPT
|
68005 |
30-Oct-2000 |
sos |
Try a bit harder to test for ATA/ATAPI HW to probe, this is to avoid some of the false comrades some devices fakes...
|
67979 |
30-Oct-2000 |
sos |
Update the Promise RAID code, there are differences between BIOS version unfortunately...
|
67935 |
30-Oct-2000 |
sos |
Fix the PCCARD ATA breakage.. This is due to a bug that has been in there since Warneer did the PCCARD stuff, the altioaddr is not offset 8 its offset 14 from the base address. Also only probe the master device, no known PCCARD ATA thingies has a slave AFAIK..
|
67893 |
29-Oct-2000 |
phk |
Move suser() and suser_xxx() prototypes and a related #define from <sys/proc.h> to <sys/systm.h>.
Correctly document the #includes needed in the manpage.
Add one now needed #include of <sys/systm.h>. Remove the consequent 48 unused #includes of <sys/proc.h>.
|
67494 |
24-Oct-2000 |
sos |
Fix the problem with DMA mode not working on Aladdin chips. Amasing in how many ways Acer has screwed up that chip.
|
67436 |
22-Oct-2000 |
sos |
Clean up the raid code a bit, also allow disks on HPT controllers to be swapped around and still be put in the correct order in a raid.
|
67435 |
22-Oct-2000 |
sos |
Fix warning in the ISA only case.
|
67434 |
22-Oct-2000 |
sos |
Get the prober error code instead of relying on scp->error to contain the lastest greatest.
|
67433 |
22-Oct-2000 |
sos |
Up the reset pulse to 100ms in ata_reset, some drives especially DVD drives need this to reset proberly.
Remove some verboseness..
|
67320 |
19-Oct-2000 |
jhb |
Quiet a silly warning.
Pointy-hat to: ps
|
67299 |
18-Oct-2000 |
sos |
Minor changes to the ATA RAID support code, remove some verbosity and put some under bootverbose..
|
67247 |
17-Oct-2000 |
ps |
Implement write combining for crashdumps. This is useful when write caching is disabled on both SCSI and IDE disks where large memory dumps could take up to an hour to complete.
Taking an i386 scsi based system with 512MB of ram and timing (in seconds) how long it took to complete a dump, the following results were obtained:
Before: After: WCE TIME WCE TIME ------------------ ------------------ 1 141.820972 1 15.600111 0 797.265072 0 65.480465
Obtained from: Yahoo! Reviewed by: peter
|
67164 |
15-Oct-2000 |
phk |
Remove unneeded #include <machine/clock.h>
|
67093 |
13-Oct-2000 |
ps |
Do not allocate a callout for all crashdumps, not just when you panic.
|
67071 |
13-Oct-2000 |
sos |
Add support for ATA "pseudo" RAID controllers as the Promise Fasttrak and HighPoint HPT370 controllers.
Use by defining the RAID in the BIOS and the "ar driver will pick it up automagically...
|
67067 |
13-Oct-2000 |
sos |
Fix ISA only systems.
|
67058 |
13-Oct-2000 |
sos |
Get rid of the ivars entirely.
|
67057 |
13-Oct-2000 |
sos |
Only allow UDMA2 mode on SiS rev > 0xc1
Minor cosmetics
|
66698 |
05-Oct-2000 |
jhb |
- Heavyweight interrupt threads on the alpha for device I/O interrupts. - Make softinterrupts (SWI's) almost completely MI, and divorce them completely from the x86 hardware interrupt code. - The ihandlers array is now gone. Instead, there is a MI shandlers array that just contains SWI handlers. - Most of the former machine/ipl.h files have moved to a new sys/ipl.h. - Stub out all the spl*() functions on all architectures.
Submitted by: dfr
|
66670 |
05-Oct-2000 |
sos |
Cleanup the chipset specific interrupt code a bit.
|
66626 |
04-Oct-2000 |
sos |
Fix the MASTERDEV breakage the caused the PIIX controllers to get missed in the probe. This might break the CMD chips again, more testing is needed on that, but we need the mainstream chips to work again ...
|
66583 |
03-Oct-2000 |
sos |
Add support for ServerWorks ROSB4 ATA33 chipset.
Add support for CMD 648 ATA66 & CMD 649 ATA100 chipsets.
Fix the "resource already allocated" panic with the CMD and other braindead controllers.
Add options ATA_ENABLE_TAGS, without this option tagged queuing will not be attempted.
|
66461 |
29-Sep-2000 |
dfr |
Make the alpha hacks dependant on __alpha__ instead of !__i386__.
|
66326 |
24-Sep-2000 |
sos |
Fix the breakage that snatched the ioports from the fdc device.
Fix promise support.
|
66106 |
20-Sep-2000 |
sos |
Remove unneeded includes
Pointed out by: phk
|
66070 |
19-Sep-2000 |
sos |
Add support for tagged queuing on ATA drives. There is only support for IBM's DPTA and DTLA series of drives (no other disk vendors are known to support this) on non-Promise controllers (promise controllers lockup when given the tagged queuing specific commands). It gives especially master/slave comboes about 5% better performance.
Add support for the Promise ATA100 OEM chip (pdc20265)
Add support for the Cyrix 5530
Change the way status is read from the drives, use the alternate status reg when possible.
Better support for DEVFS, the acdXtY devices are now created when needed.
Lots of little cleanups.
|
66032 |
18-Sep-2000 |
sos |
Only read to the end of the select track.
|
65822 |
13-Sep-2000 |
jhb |
- Remove the inthand2_t type and use the equivalent driver_intr_t type from newbus for referencing device interrupt handlers. - Move the 'struct intrec' type which describes interrupt sources into sys/interrupt.h instead of making it just be a x86 structure. - Don't create 'ithd' and 'intrec' typedefs, instead, just use 'struct ithd' and 'struct intrec' - Move the code to translate new-bus interrupt flags into an interrupt thread priority out of the x86 nexus code and into a MI ithread_priority() function in sys/kern/kern_intr.c. - Remove now-uneeded x86-specific headers from sys/dev/ata/ata-all.c and sys/pci/pci_compat.c.
|
65557 |
07-Sep-2000 |
jasone |
Major update to the way synchronization is done in the kernel. Highlights include:
* Mutual exclusion is used instead of spl*(). See mutex(9). (Note: The alpha port is still in transition and currently uses both.)
* Per-CPU idle processes.
* Interrupts are run in their own separate kernel threads and can be preempted (i386 only).
Partially contributed by: BSDi (BSD/OS) Submissions by (at least): cp, dfr, dillon, grog, jake, jhb, sheldonh
|
65176 |
28-Aug-2000 |
dfr |
* Completely rewrite the alpha busspace to hide the implementation from the drivers. * Remove legacy inx/outx support from chipset and replace with macros which call busspace. * Rework pci config accesses to route through the pcib device instead of calling a MD function directly.
With these changes it is possible to cleanly support machines which have more than one independantly numbered PCI busses. As a bonus, the new busspace implementation should be measurably faster than the old one.
|
64695 |
16-Aug-2000 |
sos |
Rearrange the probe a bit, hopefully this will help to eleminate some of the fake devices sometimes seen on single device ATA channels.
Proberly fail on failures in ata-disk.c, retry instead of hang.
Cleanup the VIA probe/init code a bit.
Fix a couble of missing free's in atapi-cd.c in the changer code.
|
64599 |
13-Aug-2000 |
sos |
Fix off by one error in track# calculation.
|
64534 |
11-Aug-2000 |
sos |
Backout the tsleep on probe, it breaks in resume mode as tsleep not always has a context to sleep on. Back to the drawing board...
|
64530 |
11-Aug-2000 |
sos |
Add support for accessing individual tracks on a CD.
This is done by misusing the device minor a bit to encode the track no there.
So to read track #4 just use /dev/acdNt4 where N is the device #.
The driver no automatically sets the blocksize (sectorsize) to what the track is set to in the TOC.
This has the nice effect that you can now rip audioi tracks by simply doing:
dd if=/dev/acdNt2 of=audiotrack2.raw bs=2352
it cant be much simpler than that :)
NOTE: the original acdNa & acdNc device still work as usual, except the blocksize is set according to track0.
|
64479 |
10-Aug-2000 |
sos |
Fix the ICH2 ATA100 support, and proberly downgrade the chip setup when going to slower DMA modes on all Intel chips.
|
64402 |
08-Aug-2000 |
sos |
Fix braino in the tsleep call, ata_delayed_attach might be a NULL pointer..
|
64307 |
06-Aug-2000 |
sos |
Add experimental code for ATA100 support on:
Promise Ultra100 / Fasttrak100 HighPoint HPT370 controllers (fx Abit KA7-100 onboard ctrl, Abit HotRod 100) Intel ICH2 (Intel 815E based motherboards)
So far I can read >90MB/s on the Promise and the HPT370. I can write >64MB/s on the promise and >50MB/s on the HPT370 so it seems writing is still done in ATA66 mode :( The ICH2 support is untested as of yet...
|
64303 |
06-Aug-2000 |
sos |
Use tsleep instead od DELAY in probe when not in boot. This fixes the uptil 30s hangs on PCCARD ata device probes.
|
64299 |
06-Aug-2000 |
sos |
Remove sequence checking in the burner support. This was really a leftover from the wormcontrol days, it is no longer needed when using burncd.
|
64298 |
06-Aug-2000 |
sos |
Be a bit more restrictive in using multisector transfers.
|
64027 |
30-Jul-2000 |
steve |
Spell the word 'limited' with only one 't'.
|
62573 |
04-Jul-2000 |
phk |
Previous commit changing SYSCTL_HANDLER_ARGS violated KNF.
Pointed out by: bde
|
62454 |
03-Jul-2000 |
phk |
Style police catches up with rev 1.26 of src/sys/sys/sysctl.h:
Sanitize SYSCTL_HANDLER_ARGS so that simplistic tools can grog our sources:
-sysctl_vm_zone SYSCTL_HANDLER_ARGS +sysctl_vm_zone (SYSCTL_HANDLER_ARGS)
|
61717 |
15-Jun-2000 |
phk |
Add disk_enumerate() for finding names of disks. Vinum and libh will need this RSN.
Remove a pointless warning in the root device locating code.
Remove the "wd" compatibility name from the "ad" driver.
WARNING: If you have not updated to use /dev/wd* in your /etc/fstab and modern bootblocks, it would be a very good idea to do so BEFORE you upgrade your kernel.
|
61074 |
29-May-2000 |
dfr |
Brucify the pmap_enter_temporary() changes.
|
61036 |
28-May-2000 |
dfr |
Add a new pmap entry point, pmap_enter_temporary() to be used during dumps to create temporary page mappings. This replaces the use of CADDR1 which is fairly x86 specific.
Reviewed by: dillon
|
60999 |
28-May-2000 |
sos |
Cosmetics: dont say Unknown but Generic chipset in probe..
|
60998 |
28-May-2000 |
sos |
Fix alignment problem on the alpha reported by several parties.
|
60938 |
26-May-2000 |
jake |
Back out the previous change to the queue(3) interface. It was not discussed and should probably not happen.
Requested by: msmith and others
|
60833 |
23-May-2000 |
jake |
Change the way that the queue(3) structures are declared; don't assume that the type argument to *_HEAD and *_ENTRY is a struct.
Suggested by: phk Reviewed by: phk Approved by: mdodd
|
60829 |
23-May-2000 |
sos |
Fix a nasty bug in ata_intr, parens are a good thing if used right.
Make the error recovery code a little more obvious.
Inform the user if UDMA66 mode couldn't be selected due to a non ATA66 compliant 80pin cable.
Minor cosmetics.
|
60755 |
21-May-2000 |
peter |
Implement an optimization of the VM<->pmap API. Pass vm_page_t's directly to various pmap_*() functions instead of looking up the physical address and passing that. In many cases, the first thing the pmap code was doing was going to a lot of trouble to get back the original vm_page_t, or it's shadow pv_table entry.
Inspired by: John Dyson's 1998 patches.
Also: Eliminate pv_table as a seperate thing and build it into a machine dependent part of vm_page_t. This eliminates having a seperate set of structions that shadow each other in a 1:1 fashion that we often went to a lot of trouble to translate from one to the other. (see above) This happens to save 4 bytes of physical memory for each page in the system. (8 bytes on the Alpha).
Eliminate the use of the phys_avail[] array to determine if a page is managed (ie: it has pv_entries etc). Store this information in a flag. Things like device_pager set it because they create vm_page_t's on the fly that do not have pv_entries. This makes it easier to "unmanage" a page of physical memory (this will be taken advantage of in subsequent commits).
Add a function to add a new page to the freelist. This could be used for reclaiming the previously wasted pages left over from preloaded loader(8) files.
Reviewed by: dillon
|
60041 |
05-May-2000 |
phk |
Separate the struct bio related stuff out of <sys/buf.h> into <sys/bio.h>.
<sys/bio.h> is now a prerequisite for <sys/buf.h> but it shall not be made a nested include according to bdes teachings on the subject of nested includes.
Diskdrivers and similar stuff below specfs::strategy() should no longer need to include <sys/buf.> unless they need caching of data.
Still a few bogus uses of struct buf to track down.
Repocopy by: peter
|
59814 |
01-May-2000 |
sos |
Fix for the HP burners (and possibly other broken drives to) that fails to proberly close the disk. The problem seems to be that the HP burners sometimes return ready when they actually are not, the solution is to not use immediate mode on the closing commands. This is suboptimal for real burners, in that they now hog the ATA bus for possibly minutes, where its really not nessesary, *sigh*.
|
59623 |
25-Apr-2000 |
phk |
Clone the {b|bio}_offset field, and make sure it is always initialized in struct bio. Eventually, bio_offset will probably obsolete the bio_blkno and bio_pblkno fields.
Remove the special hack in atapi-cd.c to determine of bio_offset was valid.
|
59368 |
18-Apr-2000 |
phk |
Remove unneeded <sys/buf.h> includes.
Due to some interesting cpp tricks in lockmgr, the LINT kernel shrinks by 924 bytes.
|
59249 |
15-Apr-2000 |
phk |
Complete the bio/buf divorce for all code below devfs::strategy
Exceptions: Vinum untouched. This means that it cannot be compiled. Greg Lehey is on the case.
CCD not converted yet, casts to struct buf (still safe)
atapi-cd casts to struct buf to examine B_PHYS
|
59103 |
09-Apr-2000 |
sos |
Add support for ATA66 on newer revisions of the VIA 82C596
|
58934 |
02-Apr-2000 |
phk |
Move B_ERROR flag to b_ioflags and call it BIO_ERROR.
(Much of this done by script)
Move B_ORDERED flag to b_ioflags and call it BIO_ORDERED.
Move b_pblkno and b_iodone_chain to struct bio while we transition, they will be obsoleted once bio structs chain/stack.
Add bio_queue field for struct bio aware disksort.
Address a lot of stylistic issues brought up by bde.
|
58595 |
26-Mar-2000 |
sos |
Correct a mishap in phk's BIO_* changes.
|
58527 |
24-Mar-2000 |
sos |
Fix the panic occuring on non-changer devices.
|
58427 |
21-Mar-2000 |
sos |
Make ATAPI CD changer devices work, hopefully better than before.
|
58345 |
20-Mar-2000 |
phk |
Remove B_READ, B_WRITE and B_FREEBUF and replace them with a new field in struct buf: b_iocmd. The b_iocmd is enforced to have exactly one bit set.
B_WRITE was bogusly defined as zero giving rise to obvious coding mistakes.
Also eliminate the redundant struct buf flag B_CALL, it can just as efficiently be done by comparing b_iodone to NULL.
Should you get a panic or drop into the debugger, complaining about "b_iocmd", don't continue. It is likely to write on your disk where it should have been reading.
This change is a step in the direction towards a stackable BIO capability.
A lot of this patch were machine generated (Thanks to style(9) compliance!)
Vinum users: Greg has not had time to test this yet, be careful.
|
58260 |
18-Mar-2000 |
sos |
Remove the old DSC code, it doesn't work anymore.
|
57988 |
13-Mar-2000 |
sos |
Cleanup sweep.
|
57985 |
13-Mar-2000 |
sos |
Enable disksort the right way both on ATA disks and ATAPI devices.
|
57964 |
13-Mar-2000 |
sos |
Backout the previous fix, it is _not_ that easy too fix. Leave it as is for 4.0 the real solution comes later.
|
57930 |
12-Mar-2000 |
sos |
Dont call ad_start unless the controller is idle. This effectively nullified the usefullness of disksort().
|
57897 |
10-Mar-2000 |
sos |
Cosmetics..
|
57883 |
10-Mar-2000 |
sos |
Dont call make_dev until we are sure the device is there, this prevents panic'ing when the device is tried accessed later.
|
57771 |
05-Mar-2000 |
sos |
Fix the CD driver so that the last blocks can be read even if a blocksize != 2k is used. Update the timeout code to try fallback to PIO if problems arise in DMA mode.
|
57675 |
01-Mar-2000 |
sos |
Spell construct right.
|
57634 |
29-Feb-2000 |
sos |
Add DVD-RAM support.
The driver constructs a fake disklabel that makes the 'a' partition cover the entire DVD-RAM disk. This cannot be changed from the user side. This solution was chosen because most DVD-RAM will have a UDF (or until we have that CD9660) filesystem on it covering the entire disk, its not really thought as a real random access device.
This might change over time, but for now this is what we have, and it is compatible with CDROM's etc, that makes using the minidisk subsystem less than ideal, because of !modulo BDEV_SIZE blocks.
|
57629 |
29-Feb-2000 |
sos |
Only read user data when blocksize != 2048, this "read the works" sneaked in sometime which is not what the average user wants.
|
57533 |
27-Feb-2000 |
sos |
Fix the problem that caused the boot to fail when modules were loaded.
Real braino, confuses two different softc types, I wonder how this could ever work :(
|
57477 |
25-Feb-2000 |
sos |
Add (partial) support for the Cypress ATA controller.
Call intr_teardown on detach.
Always add non masterdevice from unit 2 upwards.
Update to the pccard code, at least some cards are now working, more testing to follow.
|
57391 |
22-Feb-2000 |
sos |
Add UDMA66 support to the Intel ICH chip.
Submitted by: sakichan@lares.dti.ne.jp
|
57378 |
21-Feb-2000 |
sos |
Fix the changer code, dont wait for device ready on unload, it wont become ready as there is no media - doh.
Update the command name reporting.
|
57325 |
18-Feb-2000 |
sos |
Update the ata driver to take more advantage of newbus, this was needed to make attach/detach of devices work, which is needed for the PCCARD support. (PCCARD support is still not working though, more to come on that)
Support the CMD646 chip which is used on many alphas, sadly only in WDMA2 mode, as the silicon is broken beyond belief for UDMA modes.
Lots of cosmetic fixes here and there.
Sorry for the size of this megapatchfromhell but it was not possible otherwise...
newbus patches based on work from: dfr (Doug Rabson)
|
57135 |
11-Feb-2000 |
sos |
That "NO DRIVER" panic fix wasn't good enough...
|
57061 |
08-Feb-2000 |
sos |
Probe cosmetics.
|
57060 |
08-Feb-2000 |
sos |
The bde script has a bug, I used a patch from it verbatim, bad idea.... Fixed...
|
57025 |
07-Feb-2000 |
sos |
Do refcounting of open devices (more) correctly.
count_dev funtion by phk.
|
57024 |
07-Feb-2000 |
sos |
Dont panic if no sub-driver is found.
|
57023 |
07-Feb-2000 |
sos |
Unbreak addump, now dumping works again.
|
56988 |
04-Feb-2000 |
sos |
fix support for shared IRQ's.
fix support for multiple HPT & Promise controllers.
support mixed 33/66 devices on the Promise 66 controllers.
fix the refcount stuff in the atapi drivers.
misc cleanups.
|
56886 |
29-Jan-2000 |
sos |
cosmetic changes only.
|
56819 |
29-Jan-2000 |
sos |
cosmetic changes only.
|
56772 |
28-Jan-2000 |
sos |
Get the MEDIA_CHANGED status right here too.
|
56770 |
28-Jan-2000 |
sos |
Use atapi_test_ready not atapi_wait_ready, I need more sleep :(
|
56768 |
28-Jan-2000 |
sos |
Get the MEDIA_CHANGED status right.
|
56763 |
28-Jan-2000 |
sos |
Fix the atapi-fd.c (afd device) so that fx MSDOS formatted ZIP disks can be mounted. Use b_pblkno instead of b_blkno
Found by: phk
Protect (proberly) against setting modes on nonexisting devices.
|
56754 |
28-Jan-2000 |
sos |
Fix compilation on ISA only setups...
|
56744 |
28-Jan-2000 |
sos |
Cleanup the ata_dmainit function a bit. Also allow BIOS setup DMA on unknown controllers.
|
56728 |
28-Jan-2000 |
sos |
Oops, fix compile error due to the new way of storing the transfer mode.
|
56686 |
27-Jan-2000 |
sos |
Add sysctl oid hw.atamodes to set the transfermodes online.
|
56607 |
25-Jan-2000 |
sos |
Retry a bit more agressively on the atapi identify.
Try to support older systems reporting irq0 for the first channels.
Support sharing of the std interrupts (says peter :) )
Dont use READ_CD on normal data reads (2048 bytes), too many old drives doesn't support this command even if the std says "shall" :(, but still use READ_CD on all other blocksizes.
Add the geometry to the ad probe, its still usefull.
|
56558 |
24-Jan-2000 |
sos |
General cleanup.
Dont be so verbose in the probe, only ONE line printed now, to get more info boot verbose. Centralise most printf's in ata-all & ata-dma to use the ata_printf function, it saves alot of codelines.
Repeat the identify command if drive fails the first.
Protect the timeout functions with splbio.
Dont update the transfer details before we are sure the transfer succeded, this way they are proberly retried on errors.
Move the handling of next_writeable to userland.
Use the READ_CD command to read CD's. That enables us to read _anything_ via the normal read/write interface. This kindof obsoletes the READAUDIO ioctl, but we keep that for now.
|
56278 |
19-Jan-2000 |
sos |
Quantify the calls to ad_attach and atapi_attach so that diskless or atapiless kernels can be built.
|
56255 |
18-Jan-2000 |
sos |
Rearrange the probecode, so that 80pin cables can be identified correctly on both master and slave. Smash together the ata_params & atapi_params structures as they are more or less equal anyways. Get rid of the last SYSINIT's in here.
|
56138 |
17-Jan-2000 |
sos |
Add support for the Intel 810 chipset (ICH type of chips)
Prober support for the VIA 82C686, I finally got the right datasheet.
Get rid of atapi_wait, merge it into ata_wait.
Avoid a couple of races by using asleep instead of tsleep.
Always use 16bit transfers on ISA systems.
Clear up the atapi_read/write functions.
|
55572 |
07-Jan-2000 |
sos |
Grrrr, this time it should be right, I need sleep - badly...
|
55563 |
07-Jan-2000 |
sos |
This is not my lucky day :(
|
55546 |
07-Jan-2000 |
sos |
Guard against transfers of zero length given to *strategy.
|
55538 |
07-Jan-2000 |
sos |
Set PIO mode in all cases.
|
55523 |
06-Jan-2000 |
sos |
New ATAPI burner utility API, replaces the wormio API.
|
55352 |
03-Jan-2000 |
sos |
Fix link problem on ISA only systems..
|
55333 |
03-Jan-2000 |
sos |
Add support for VIA 82C596 controller
Better shared irq handeling for Promise & HPT366 controllers
Setup prober PIO mode timings on Promise & HPT366 controllers
Update Copyright headers to be Y2K compliant :)
|
54969 |
21-Dec-1999 |
sos |
Yet another cleanup of the VIA code, this time it should work on all combinations (I hope)...
Add DMA support for the AMD 756 chip (K7 chipset) this is actually the same as the VIA 82C686 chip (the ATA part that is).
Treat the intel MX chipset PIIX as a PIIX4
Allow UDMA on all disks that say they can handle it.
Cleanup probe printf's a bit
Remove alot of the old #ifdef DEBUG crap.
|
54788 |
18-Dec-1999 |
sos |
Relax the requirements for doing WDMA2, this should enable DMA on non ATA[234] compliant disks.
Move all PCI dependent stuff under #ifdef NPCI > 0
|
54673 |
16-Dec-1999 |
sos |
Cleanup the probe messages a bit, show what the device really is, not just "CDROM". Also cope with devices that doesn't report speed in the old way, this should be changed into the new GET_PERFORMANCE cmd instead..
|
54594 |
14-Dec-1999 |
sos |
Have another go at the VIA support, this time use the PCI ID form the main component in the southbridge chip to determine which VIA chip we are dealing with.
Try to enable DMA on generic controllers that say they has the capability, instead of relying on the BIOS to have set it up.
|
54544 |
13-Dec-1999 |
sos |
Add DMA support for the SiS 5591 and old PIIX chipsets.
Add a missing DELAY(1) in ata_wait.
Change the info from ad_version, so the ATA version from the disk can be used to quantify the DAM modes valid for this drive, ie be more selective with turning DMA on on older disks that should not support it..
Fix the probe for BIOS enabled DMA in the generic case, master/slave was reversed in the test.
Check the return for ata_command in all cases, and print warnings if it fails.
Call ata_dmainit with all dmamodes off when falling back to PIO mode, that should take care of both the Promise & HPT366 controllers not being able to handle the fallback...
Cleanup the printf's in the drivers, use the prober device name (if possible) instead of ataN-master/slave.
|
54306 |
08-Dec-1999 |
sos |
Change the devstat priorities to the std values now in devicestats.h
|
54272 |
07-Dec-1999 |
sos |
Commit the kernel part of our DVD support. Nothing much to say really, its just a number of new ioctl's, the rest is done in userland.
|
54270 |
07-Dec-1999 |
sos |
Try a little harder at the VIA DMA support. Only use UDMA66 on 82C686 and with prober cable.
|
54260 |
07-Dec-1999 |
sos |
Fix support for disk with > 64K cyls.
|
53882 |
29-Nov-1999 |
sos |
Better error handeling:
On UDMA CRC errors retry operation as it might be a fluke, if not fall back to PIO mode on the failing drive. If you get alot of these your cabeling is most likely not good enough.
On HARD error using DMA, retry once using PIO, if it succeds using PIO fall back to PIO mode on the failing drive.
|
53765 |
27-Nov-1999 |
sos |
call ata_reinit in addump trying to make sure the dump will succed, also check for errors underways, and make it possible to abort the dump by hitting a key.
|
53721 |
26-Nov-1999 |
sos |
Oops, committed the wrong file..
|
53720 |
26-Nov-1999 |
sos |
Fix atapi_wait_ready, it returned prematurely.
Less verbosity on non-fatal errors.
|
53719 |
26-Nov-1999 |
sos |
Tidy up the VIA support a bit, make it more generic.
|
53681 |
24-Nov-1999 |
sos |
Add DMA support for the VIA 82C586 & 82C686 chips, also rearrange to fall back to slower speeds if the faster ones fails to probe.
Log and retry request on UDMA CRC errors.
Fix a couple of warnings.
|
53415 |
19-Nov-1999 |
sos |
Loose ad_sleep, its of no use anymore.
|
53085 |
10-Nov-1999 |
sos |
Dont listen to disks that say they can only do 0 sector transfers.
|
53078 |
10-Nov-1999 |
sos |
Make the atapi device return sensible errno's back to userland.
Dont panic if a nonexistant device is opened.
|
53029 |
08-Nov-1999 |
sos |
Unbreak ATAPI on the Aladdin chipset, only DMA access worked.
Try to use a 32bit mask on the IO addresses, this fixes the alpha and hopefully doesn't break on any i386 machines.
Try to enable both read & write cache on disks, they should be as default, but better be sure..
|
52918 |
06-Nov-1999 |
sos |
Fix IRQ allocation bug on controllers using a shared interrupt.
Fix a bug which could cause panics in ad/atapi-interrupt.
Add support for UDMA66 on Promise Ultra/Fasttrak controllers.
Get rid of ATA_IGNORE_INTR, and introduce ATA_WAIT_INTR instead.
Add a delay in the dump routine in ata-disk.c, some controllers seem to need this. Also dont use the timeout watchdog when dumping.
Disable DMA on ATAPI devices as default, add option ATA_ENABLE_ATAPI_DMA for those that has HW that works.
Add support for some not-up-to-spec ATAPI devices that returns data together with completition status on data moving cmd's.
|
52635 |
29-Oct-1999 |
phk |
useracc() the prequel:
Merge the contents (less some trivial bordering the silly comments) of <vm/vm_prot.h> and <vm/vm_inherit.h> into <vm/vm.h>. This puts the #defines for the vm_inherit_t and vm_prot_t types next to their typedefs.
This paves the road for the commit to follow shortly: change useracc() to use VM_PROT_{READ|WRITE} rather than B_{READ|WRITE} as argument.
|
52386 |
18-Oct-1999 |
gallatin |
Increase the timeout to be 3*hz. This recalibrates the timeout so that it has the same value on all platforms. Previously it was just under 3 seconds on x86 (typically hz<=128) and just under 1/3 of a second on alpha (typically hz>=1024). This covers up a race between ad_interrupt() and ad_timeout() which is being looked into.
reviewd by: sos
|
52303 |
16-Oct-1999 |
dfr |
Relax the check for class=storage, subclass=ide to just class=storage. This allows ata to probe correctly for the HPT366 on Abit's BP6.
|
52213 |
13-Oct-1999 |
dfr |
Don't match non-IDE devices in probe.
Reviewed by: sos
|
52119 |
11-Oct-1999 |
sos |
Fix a bug in the isa attach code which would panic isa systems.
|
52101 |
10-Oct-1999 |
sos |
Remove unused include files.
Submitted by: phk
|
52067 |
09-Oct-1999 |
sos |
Add support for the HPT366 chip, this is used on the Abit boards and their HotRod controller and on SIIG PCI ultra DMA controller. These changes also made lots of the Promise code go away, its all much more generic this way.
Get rid of atapi_immed_cmd, instead use the queue to move atapi commands from interrupt context if nessesary, the entire atapi layer has gotten an overhaul.
Lots of fixes to utililize the new features in subr_disk.c etc, and get rid of the last biots of softc arrays in the drivers, the only one left is atadevices which cannot easily go away (yet).
Use our own malloc names, its a lot easier to track memory usage this way.
General cleanup overall.
|
51972 |
07-Oct-1999 |
msmith |
Be much more selective in claiming devices that might be IDE controllers.
The old algorithm was:
if class == storage and subclass != SCSI device must be IDE
This results in claiming 'raid' and 'other' storage devices as IDE, which is typically not the case.
Reviewed by: sos
|
51957 |
05-Oct-1999 |
n_hibma |
Removal of sys/device.h
- Move intrhook stuff into kernel.h - Remove all occurrences of #device <device.h> - Add kernel.h were necessary (nowhere) - delete device.h
This file contained the structures for cfdata (old style config) and is no longer used. It was included by most drivers.
It confuses the remote debugger as the definition of 'struct device' in device.h is found before the one in bus_private.h.
|
51898 |
03-Oct-1999 |
bde |
Fixed "misspelling" of bcmp as memcmp. memcmp doesn't exist in the kernel, but gcc provides a pessimal builtin for it.
Makefile.i386: Added a variable (CONF_CFLAGS) for configuration-specific compiler flags.
LINT: Use CONF_CFLAGS to inhibit use of gcc builtins.
|
51841 |
01-Oct-1999 |
peter |
Use the sys/wormio.h definitions of the CDRIOCNEXTWRITEABLEADDR and CDRIOCBLANK ioctls rather than duplicating them.
|
51658 |
25-Sep-1999 |
phk |
Remove five now unused fields from struct cdevsw. They should never have been there in the first place. A GENERIC kernel shrinks almost 1k.
Add a slightly different safetybelt under nostop for tty drivers.
Add some missing FreeBSD tags
|
51627 |
24-Sep-1999 |
sos |
Fix timeout handeling and add retry counts. Add HPT366 probe message (but no real support yet), Add CDR support for several diffenrent blocktypes, also close disk as a multisession CD.
|
51548 |
22-Sep-1999 |
sos |
Support quad & max speeds in wormcontrol. A bit more general cleanup.
|
51539 |
22-Sep-1999 |
sos |
I knew it, I introduced new bugs :)
The lun is not incremented in the ata-disk driver when ATA_STATIC_ID is not defined, thanks to Kenneth Wayne Culver <culverk@wam.umd.edu> for finding that one.
PHK pointed at the & problem in atapi-cd in devstat_end_transaction_buf.
Too little sleep I guess...
|
51520 |
21-Sep-1999 |
sos |
Ten'th update to the new ATA/ATAPI driver:
It been awhile since the last major update, as a benefit there are some cool things in this one (and new bugs probably :) )...
The ATA driver has grown "real" timeout support for all devices. This means that it should be possible to get in contact with (especially) lost ATAPI devices. It also means that the ATA driver is now usable on notebooks as it will DTRT on resume.
An experimental hack at utilizing the Promise66's at UDMA66 is in there, but I cant test it. If someone feels like sending me one, give me a ping.
The ATAPI DMA enableling scheme has been changed, also better DMA support for the Aladdin chipset has been implemented for ATAPI devices. Note that the Aladdin apparently only can do DMA reads on ATAPI devices, and the Promise cant do ATAPI DMA at all. I have seen problems on some ATAPI devices that should be able to run in DMA mode, so if you encounter problems with hanging atapi devices during the probe, or during access, disable DMA in atapi-all.c, and let me know. It might be nessesary to do this via a "white list" for known good devices...
The ATAPI CDROM driver can now use eject/close without hanging and the bug that caused reading beyond the end of a CD has been fixed. Media change is also handled proberly. DVD drives are identified and are usable as CDROM devices at least, I dont have the HW to test this further, see above :).
The ATAPI tape driver has gotten some support for using the DSC method for not blocking the IDE channel during read/write when the device has full buffers. It knows about the OnStream DI-30 device, support is not completed yet, but it can function as a primitive backup medium, without filemarks, and without bad media handeling. This is because the OnStream device doesn't handle this (like everybody else) in HW. It also now supports getting/setting the record position on devices that supports it.
Some rather major cleanups and rearrangements as well (cvs -b diff is your freind). I'm closing in on declaring this for beta code, most of the infrastruture is in place by now.
As usual USE AT YOUR OWN RISK!!, this is still alpha level code. This driver can hose your disk real bad if anything goes wrong, but now you have been warned :)
But please tell me how it works for you!
Enjoy!
-Søren
|
51376 |
18-Sep-1999 |
phk |
Use devstat_end_transaction_buf() rather than Use devstat_end_transaction()
|
51215 |
12-Sep-1999 |
phk |
Bite the bullet and allocate the devsw entry at compile time.
|
51097 |
08-Sep-1999 |
phk |
Don't register a bmajor.
Approved by: sos
|
50961 |
05-Sep-1999 |
phk |
nullclose, not noclose of course.
|
50842 |
03-Sep-1999 |
phk |
Use micro "disk" layer in ata-disk
Reviewed by: sos
|
50841 |
03-Sep-1999 |
phk |
Set si_bsize_phys to 2048 for cdrom.
Reviewed by: sos
|
50769 |
01-Sep-1999 |
dfr |
This represents essentially a complete rewrite of the ISA PnP code. The new system is integrated with the ISA bus code more cleanly and allows the future addition of more enumerators such as PnPBIOS and ACPI.
This commit also enables the new pcm driver since it is somewhat tied to the new PnP code.
|
50511 |
28-Aug-1999 |
phk |
We don't need to pass the diskname argument all over the diskslice/label code, we can find the name from any convenient dev_t
|
50477 |
28-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
50254 |
23-Aug-1999 |
phk |
Convert DEVFS hooks in (most) drivers to make_dev().
Diskslice/label code not yet handled.
Vinum, i4b, alpha, pc98 not dealt with (left to respective Maintainers)
Add the correct hook for devfs to kern_conf.c
The net result of this excercise is that a lot less files depends on DEVFS, and devtoname() gets more sensible output in many cases.
A few drivers had minor additional cleanups performed relating to cdevsw registration.
A few drivers don't register a cdevsw{} anymore, but only use make_dev().
|
49771 |
14-Aug-1999 |
phk |
Spring cleaning around strategy and disklabels/slices:
Introduce BUF_STRATEGY(struct buf *, int flag) macro, and use it throughout. please see comment in sys/conf.h about the flag argument.
Remove strategy argument from all the diskslice/label/bad144 implementations, it should be found from the dev_t.
Remove bogus and unused strategy1 routines.
Remove open/close arguments from dssize(). Pick them up from dev_t.
Remove unused and unfinished setgeom support from diskslice/label/bad144 code.
|
49614 |
10-Aug-1999 |
sos |
Support DMA on ATAPI devices (finally).
This makes my system use only ~5% CPU on reading 4.5Mbyte/sec from a CDROM, which before was limitted to 1.8Mbyte/sec due to 100% CPU load..
|
49471 |
06-Aug-1999 |
sos |
Add limitted support for the Promise Ultra/66 controller. Its only supported upto UDMA33 like the old Promise, but it works now. More when I have specs ....
|
48856 |
17-Jul-1999 |
phk |
slight change in the way we hi-jack the wd drivers cdevsw.
|
48213 |
25-Jun-1999 |
sos |
Nine'th update to the new ATA/ATAPI driver:
The atapi subsystem has gotten better error handeling and timeouts, it also tries a REQUEST SENSE command when devices returns errors, to give a little more info as to what went wrong. It might be a little verbose for now, but I'm interested in as much feedback on errors as possible, especially timeouts, as I'm a bit in doubt if I've chosen resonable default values everywhere.
The disk driver has been changed a bit to prepare for tagged queing, which is next on my list.
The disk driver has grown a dump routine, I got one implementation from Darrell Anderson <anderson@cs.duke.edu> which also did partial dumps (usefull on big memory machines) I left out the partial stuff for now, and changed the rest alot to fit into the new ad_request framework.
Some minor cleanups and rearrangements as well.
As usual USE AT YOUR OWN RISK!!, this is still pre alpha level code. Especially the DMA support can hose your disk real bad if anything goes wrong, again you have been warned :) Notebook owners should be carefull that their machines dont suspend as this might cause trouble...
But please tell me how it works for you!
Enjoy!
-Søren
|
47640 |
31-May-1999 |
phk |
Simplify cdevsw registration.
The cdevsw_add() function now finds the major number(s) in the struct cdevsw passed to it. cdevsw_add_generic() is no longer needed, cdevsw_add() does the same thing.
cdevsw_add() will print an message if the d_maj field looks bogus.
Remove nblkdev and nchrdev variables. Most places they were used bogusly. Instead check a dev_t for validity by seeing if devsw() or bdevsw() returns NULL.
Move bdevsw() and devsw() functions to kern/kern_conf.c
Bump __FreeBSD_version to 400006
This commit removes: 72 bogus makedev() calls 26 bogus SYSINIT functions
if_xe.c bogusly accessed cdevsw[], author/maintainer please fix.
I4b and vinum not changed. Patches emailed to authors. LINT probably broken until they catch up.
|
47625 |
30-May-1999 |
phk |
This commit should be a extensive NO-OP:
Reformat and initialize correctly all "struct cdevsw".
Initialize the d_maj and d_bmaj fields.
The d_reset field was not removed, although it is never used.
I used a program to do most of this, so all the files now use the same consistent format. Please keep it that way.
Vinum and i4b not modified, patches emailed to respective authors.
|
47529 |
26-May-1999 |
gallatin |
Allow chipset drivers to specify the direct-mapped DMA window's mask in preparation for tsunami support. Previous chipsets' direct-mapped DMA mask was always 1024*1024*1024. The Tsunami chipset needs it to be 2*1024*1024*1024
These changes should not affect the i386 port
Reviewed by: Doug Rabson <dfr@nlsystems.com>
|
47334 |
20-May-1999 |
sos |
Eigth update to the new ATA/ATAPI driver:
Fixed problems:
LS120/ZIP drives still currupted data. Reworked once again, buffered I/O is just ignoring any sizehints it is given :( Now the atapifd driver splits up requests for devices that has limitted transfer size.
ISA only configs fails on boot with interrupt timeouts. The new-bus integration introduced a bug where the softc ptr was lost during the probe.
Some minor cleanups and rearrangements as well.
As usual USE AT YOUR OWN RISK!!, this is still pre alpha level code. Especially the DMA support can hose your disk real bad if anything goes wrong, again you have been warned :) Notebook owners should be carefull that their machines dont suspend as this might cause trouble...
But please tell me how it works for you!
Enjoy!
|
47272 |
17-May-1999 |
sos |
Seventh update to the new ATA/ATAPI driver:
Fixed problems:
LS120 drives currupted data. The workaround for drives not supporting upto 64K transfers has been reworked. It works now both on LS120 & ZIP drives.
ISA only configs wont compile. Fixed.
The ATA driver wont share interrupts. Fixed.
The "unwanted interrupt" warning gave wrong controller. Another lun<>unit messup from the newbus integration.
Some minor cleanups and rearrangements as well.
As usual USE AT YOUR OWN RISK!!, this is still pre alpha level code. Especially the DMA support can hose your disk real bad if anything goes wrong, again you have been warned :) Notebook owners should be carefull that their machines dont suspend as this might cause trouble...
But please tell me how it works for you!
Enjoy!
-Søren
|
47028 |
11-May-1999 |
phk |
Divorce "dev_t" from the "major|minor" bitmap, which is now called udev_t in the kernel but still called dev_t in userland.
Provide functions to manipulate both types: major() umajor() minor() uminor() makedev() umakedev() dev2udev() udev2dev()
For now they're functions, they will become in-line functions after one of the next two steps in this process.
Return major/minor/makedev to macro-hood for userland.
Register a name in cdevsw[] for the "filedescriptor" driver.
In the kernel the udev_t appears in places where we have the major/minor number combination, (ie: a potential device: we may not have the driver nor the device), like in inodes, vattr, cdevsw registration and so on, whereas the dev_t appears where we carry around a reference to a actual device.
In the future the cdevsw and the aliased-from vnode will be hung directly from the dev_t, along with up to two softc pointers for the device driver and a few houskeeping bits. This will essentially replace the current "alias" check code (same buck, bigger bang).
A little stunt has been provided to try to catch places where the wrong type is being used (dev_t vs udev_t), if you see something not working, #undef DEVT_FASCIST in kern/kern_conf.c and see if it makes a difference. If it does, please try to track it down (many hands make light work) or at least try to reproduce it as simply as possible, and describe how to do that.
Without DEVT_FASCIST I belive this patch is a no-op.
Stylistic/posixoid comments about the userland view of the <sys/*.h> files welcome now, from userland they now contain the end result.
Next planned step: make all dev_t's refer to the same devsw[] which means convert BLK's to CHR's at the perimeter of the vnodes and other places where they enter the game (bootdev, mknod, sysctl).
|
46743 |
08-May-1999 |
dfr |
Move the declaration of the interrupt type from the driver structure to the BUS_SETUP_INTR call.
|
46646 |
07-May-1999 |
peter |
GC stray static prototypes for physread/physwrite which don't exist statically and cause compile warnings.
|
46625 |
07-May-1999 |
phk |
Introduce two functions: physread() and physwrite() and use these directly in *devsw[] rather than the 46 local copies of the same functions.
(grog will do the same for vinum when he has time)
|
46112 |
27-Apr-1999 |
phk |
Suser() simplification:
1: s/suser/suser_xxx/
2: Add new function: suser(struct proc *), prototyped in <sys/proc.h>.
3: s/suser_xxx(\([a-zA-Z0-9_]*\)->p_ucred, \&\1->p_acflag)/suser(\1)/
The remaining suser_xxx() calls will be scrutinized and dealt with later.
There may be some unneeded #include <sys/cred.h>, but they are left as an exercise for Bruce.
More changes to the suser() API will come along with the "jail" code.
|
45933 |
22-Apr-1999 |
sos |
Fix the promise_intr function, it should use 'lun' not 'unit' to get the offset into ata_devices.
|
45913 |
21-Apr-1999 |
peter |
Merge a diff that Soren sent me to resolve some lun / unit problems. While here, also fix my additions to use naming that's more consistant with Sorens. (ie: s/softc/scp/)
|
45897 |
21-Apr-1999 |
peter |
Stage 1 of a cleanup of the i386 interrupt registration mechanism. Interrupts under the new scheme are managed by the i386 nexus with the awareness of the resource manager. There is further room for optimizing the interfaces still. All the users of register_intr()/intr_create() should be gone, with the exception of pcic and i386/isa/clock.c.
|
45798 |
18-Apr-1999 |
sos |
Update to use the new-bus framework. No functional changes.
Mostly done by Doug Rabson, minor fixes by me.
|
45720 |
16-Apr-1999 |
peter |
Bring the 'new-bus' to the i386. This extensively changes the way the i386 platform boots, it is no longer ISA-centric, and is fully dynamic. Most old drivers compile and run without modification via 'compatability shims' to enable a smoother transition. eisa, isapnp and pccard* are not yet using the new resource manager. Once fully converted, all drivers will be loadable, including PCI and ISA.
(Some other changes appear to have snuck in, including a port of Soren's ATA driver to the Alpha. Soren, back this out if you need to.)
This is a checkpoint of work-in-progress, but is quite functional.
The bulk of the work was done over the last few years by Doug Rabson and Garrett Wollman.
Approved by: core
|
45554 |
10-Apr-1999 |
sos |
Sixth update to the new ATA/ATAPI driver:
Fixed problems:
Promise controllers was not always set up correctly. Parantheses are a good thing, fixed.
Some older CDROM's could hang the probe. Proberly wait for the drive to catch its breath after IDENTIFY.
Some CD writers fails because they dont support rezero. Rearranged the code to not use rezero.
Warnings now that we use EGCS. Fixed.
|
45150 |
30-Mar-1999 |
sos |
Make ISA only systems compile again..
|
45116 |
29-Mar-1999 |
sos |
Fix bug in the Promise code that resultet in PIO always being selected.
|
45095 |
28-Mar-1999 |
sos |
Fourth update to the new ATA/ATAPI driver:
Well, better late than newer, but things has been hectic around here, sorry for the long delay.
DMA support has been added to the ATA disk driver. This only works on Intel PIIX3/4, Acer Aladdin and Promise controllers. The promise support works without the BIOS on the board, and timing modes are set to support up to UDMA speed. This solves the problems with having more than one promise controller in the same system. There is support for "generic" DMA, that might work on other controllers, but now you have been warned :) More chipset specific code will come soon, I have to find testers with the approbiate HW, more on that when I have it ready.
The system now uses its own major numbers, please run MAKEDEV with the devices you need (ad?, acd?, afd?, ast?). For now the disk driver will also attach to the old wd major so one can at least boot without this step, but be warned, this will eventually go away. The bootblocks will have to be changed before one can boot directly from an "ad" device though.
Fixed problems:
All known hang problems should be solved The probe code has been sligthly changed, this should solve the reports I have lying around (I hope).
Hangs when accessing ata & atapi device on the same channel simultaniously. A real braino in ata_start caused this, fixed.
As usual USE AT YOUR OWN RISK!!, this is still pre alpha level code. Especially the DMA support can hose your disk real bad if anything goes wrong, agaiin you have been warned :)
But please tell me how it works for you!
Enjoy!
-Søren
|
44566 |
07-Mar-1999 |
sos |
ZIP drives should now be working, I'm not sure about LS120 drives, reports on those most welcome!
Fixed problems:
Hang on probe on "fantom" devices. The probe now use a timeout to avoid hangs if no interrupt is recevied.
There has also been more general code clenaups, and some reorgs.
|
44475 |
05-Mar-1999 |
sos |
Now all actual probing of both ATA & ATAPI devices are done after interrupts are enabled, this kills the last "unwanted interrupts" (and there is no ugly hacks like in the old driver to avoid them). COmmand interrupt devices are now supported, this applies mostly to older CDROM's and apparently also the ZIP.
Fixed problems:
Number of total sectors wrong on some older drives. Fixed by not using the LBA size unless we know its valid.
There has also been more general code clenaups, some reorgs also.
|
44454 |
03-Mar-1999 |
sos |
Added driver to support ATAPI floppies ie LS-120 & ZIP drives.
Added "options ATA_STATIC_ID" that wires ATA disks like the old wd driver.
Fixed problems:
Dont use more sectors/intr than the drive supports. Fix announce of > 8.4G disks. Dont call ad_interrupt/ad_transfer when no disks config'd. Use the right page# for CDR write mode params. Fix breakage when no PCI support in kernel. Implement DEVFS stuff.
General code clenaup.
|
44380 |
01-Mar-1999 |
sos |
Finally!!
The much roumored replacement for our current IDE/ATA/ATAPI is materialising in the CVS repositories around the globe.
So what does this bring us:
A new reengineered ATA/ATAPI subsystem, that tries to overcome most of the deficiencies with the current drivers.
It supports PCI as well as ISA devices without all the hackery in ide_pci.c to make PCI devices look like ISA counterparts.
It doesn't have the excessive wait problem on probe, in fact you shouldn't notice any delay when your devices are getting probed.
Probing and attaching of devices are postponed until interrupts are enabled (well almost, not finished yet for disks), making things alot cleaner.
Improved performance, although DMA support is still WIP and not in this pre alpha release, worldstone is faster with the new driver compared to the old even with DMA.
So what does it take away:
There is NO support for old MFM/RLL/ESDI disks. There is NO support for bad144, if your disk is bad, ditch it, it has already outgrown its internal spare sectors, and is dying.
For you to try this out, you will have to modify your kernel config file to use the "ata" controller instead of all wdc? entries.
example:
# for a PCI only system (most modern machines) controller ata0 device atadisk0 # ATA disks device atapicd0 # ATAPI CDROM's device atapist0 # ATAPI tapes
#You should add the following on ISA systems: controller ata1 at isa? port "IO_WD1" bio irq 14 controller ata2 at isa? port "IO_WD2" bio irq 15
You can leave it all in there, the system knows how to manage.
For now this driver reuses the device entries from the old system (that will probably change later), but remember that disks are now numbered in the sequence they are found (like the SCSI system) not as absolute positions as the old system.
Although I have tested this on all the systems I can get my hands on, there might very well be gremlins in there, so use AT YOU OWN RISK!! This is still WIP, so there are lots of rough edges and unfinished things in there, and what I have in my lab might look very different from whats in CVS at any given time. So please have all eventual changes go through me, or chances are they just dissapears...
I would very much like to hear from you, both good and bad news are very welcome.
Enjoy!!
-Søren
|