| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
broken by r188694.
|
| |
|
| |
|
| |
|
|
|
|
| |
Submitted by: gavin
|
| |
|
| |
|
|
|
|
|
| |
devices return incorrect values in lower part confusing detection, while
higher part itself gives enough information for proper detetion.
|
|
|
|
| |
much time to spin-up.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
| |
devices per channel.
|
|
|
|
|
| |
power-down peer transmitter, then disable completely.
Side effect of this is saving about 0.5W of power per detached device.
|
|
|
|
|
| |
acd code to create new provider (?), but not from an expected
context, which results in a panic (GEOM topology not held).
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
PHY reset causes drive connect/disconnect events, unwanted at this moment.
|
|
|
|
| |
Submitted by: avg
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
| |
Spares and rebuilds are not supported, so this code should be considered
for entertainment purposes only.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Some dmainit call fixes for previous commit.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
Submitted by: ganbold
|
|
|
|
|
|
|
| |
This should fix, for example, cache flush timeout error on shutdown, if
some drives are not mounted.
PR: kern/111023
|
| |
|
|
|
|
| |
to report request completion, expecially when it is not reliable.
|
|
|
|
| |
for some reason, stealing our events.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
when port multiplicator supported, but absent.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
to int.
|
|
|
|
| |
used at all, so this is just a tidiness excersize.
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
| |
Submitted by: Andrey V. Elsukov
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
broken with modularization commit (rev 183724).
|
|
|
|
| |
print dma status after a media error.
|
|
|
|
|
|
| |
PR: 129154
Submitted by: João Barros <joao.barros at gmail.com>
MFC after: 1 month
|
|
|
|
| |
Reported by: Stanislav Sedov
|
|
|
|
|
| |
is in 6.x and 7.x. The typo caused 64k transactions to be unnecessarily
split up into two PRD entries.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Submitted by: Xin Li
Fix the number of PATA ports on newer ICHX chips, they have just 1 port not 2.
|