| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
the hack here to reprogram the interrupt for K2 SATA devices.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
interrupt.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Found with: Coverity Prevent(tm)
CID: 4634
|
|
|
|
|
| |
Found with: Coverity Prevent(tm)
CID: 4722
|
|
|
|
| |
Pointy hat to: me
|
| |
|
|
|
|
| |
and reset it on resume.
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
OFW PCI layer and read the sense directly from the device tree instead
of guessing.
MFC after: 1 week
|
| |
|
|
|
|
|
|
| |
This should fix possible duplicate request completion.
Submitted by: mjacob
|
|
|
|
| |
48bit DMA commands.
|
|
|
|
| |
This fixes ATA_CAM with atamvsata and probably some other drivers.
|
|
|
|
|
|
| |
same as Intel MatrixRAID does.
PR: kern/124064
|
|
|
|
|
| |
PR: kern/102211
Submitted by: yoichi
|
|
|
|
| |
- Add missed DMA initialization for ALI SATA chips.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
It is not perfect, but better then nothing.
|
|
|
|
| |
atapicamX. It is more apropriate and useful together with "ata" name.
|
|
|
|
|
| |
- Make ATA XPT to reject longer SCSI CDBs then supported by device, or
any SCSI CDBs, if device doesn't support ATAPI.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
| |
Now we have better place for it.
|
| |
|
|
|
|
|
|
| |
This makes hot-plug work nicely.
HW donated by: James R. Van Artsdalen
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
This fixes a bogus '???' boot message on Cambria boards with a CompactFlash
card.
Reviewed by: mav
|
| |
|
|
|
|
| |
- Make ATA XPT able to handle such case.
|
|
|
|
|
| |
Submitted by: Marc Balmer <marc@msys.ch>
MFC after: 1 week
|
|
|
|
| |
PR: kern/140251
|
| |
|
|
|
|
|
| |
PR: kern/121521
Tested by: Alex Deiter
|
|
|
|
| |
Previous implementation could only limit mode, but not rise it back.
|
|
|
|
| |
Also OSB4 has some problems with UDMA transfers, limit it to WDMA2.
|
|
|
|
|
|
|
| |
subsequent timeouts. Restore previous limit for now, at least until
I will have hardware to experiment.
PR: kern/141438
|
|
|
|
|
| |
Reviewed by: mav
MFC after: 1 week
|
|
|
|
|
|
|
| |
cable detection, i.e. neither for ALI_OLD nor for ALI_NEW revisions
>= 0xc7.
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Submitted by: Grzegorz Bernacki
|
| |
|