History log of /dragonfly/sys/dev/disk/ahci/TODO (Results 1 – 7 of 7)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0
# bbb35c81 09-Feb-2021 Sascha Wildner <saw@online.de>

Fix several typos in calendars, READMEs and other files.


Revision tags: v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3, v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc, v5.0.2, v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc, v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0, v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc, v4.2.4, v4.3.1, v4.2.3, v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4, v4.0.3, v4.0.2, v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0, v3.8.2, v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1, v3.6.0, v3.7.1, v3.6.0rc, v3.7.0, v3.4.3, v3.4.2, v3.4.0, v3.4.1, v3.4.0rc, v3.5.0, v3.2.2, v3.2.1, v3.2.0, v3.3.0, v3.0.3, v3.0.2, v3.0.1, v3.1.0, v3.0.0
# 86d7f5d3 26-Nov-2011 John Marino <draco@marino.st>

Initial import of binutils 2.22 on the new vendor branch

Future versions of binutils will also reside on this branch rather
than continuing to create new binutils branches for each new version.


Revision tags: v2.12.0, v2.13.0, v2.10.1, v2.11.0, v2.10.0, v2.9.1, v2.8.2, v2.8.1, v2.8.0, v2.9.0, v2.6.3, v2.7.3, v2.6.2, v2.7.2, v2.7.1, v2.6.1, v2.7.0, v2.6.0, v2.5.1, v2.4.1, v2.5.0, v2.4.0, v2.3.2
# 50a3ecb6 26-Jun-2009 Matthew Dillon <dillon@apollo.backplane.com>

AHCI - Reduce console spew


# 3209f581 12-Jun-2009 Matthew Dillon <dillon@apollo.backplane.com>

AHCI - Add Port Multiplier HOTPLUG support

* Add a ton of infrastructure to the port multiplier module. We now probe
the PM capabilities and turn on asynchronous notification if it supports
it.

AHCI - Add Port Multiplier HOTPLUG support

* Add a ton of infrastructure to the port multiplier module. We now probe
the PM capabilities and turn on asynchronous notification if it supports
it.

Upon reception of an async notification event we access the PM to
determine which targets may have changed state, then rescan those
targets.

* Add code to handle transient IFS failures when issuing a PM softreset
command.

* Significantly rework the CAM infrastructure such that most of the hard
work now occurs from a main context instead of from an interrupt context.

* Replace all DELAY()'s with ahci_os_sleep(), and use tsleep().

* Use milliseconds as a universal time-base.

* Do not initiate a timeout until a CCB is actually sent to the
chip.

* Improve the device probe and state machine (it still needs work though).

show more ...


# 1980eff3 11-Jun-2009 Matthew Dillon <dillon@apollo.backplane.com>

AHCI - Initial Port Multiplier support + misc fixes, and major reorg.

* Add nearly all of the core port multiplier support code. Add a
new module, ahci_pm.c, which has most of the PM support. No

AHCI - Initial Port Multiplier support + misc fixes, and major reorg.

* Add nearly all of the core port multiplier support code. Add a
new module, ahci_pm.c, which has most of the PM support. Note
that the PM probe code (ahci_port_pmprobe()) was placed in ahci.c.

Note that we have to reduce the number of commands in the queue to 1
even though we are in command switched mode, which is contrary to the
AHCI spec which says we can queue more then 1 (the HBA still serializes
it). However, when I try to queue more then one to different devices
the SATA port gets fatal PHY errors.

* Significantly reorganize the hard and soft reset code and create
additional procedures in ahci_pm.c for hard and soft resets of
targets through the PM.

The softreset code now does the reset sequence twice to try to work
around an issue where a previous signature prevents the new signature
from being properly latched.

The hard and soft reset code and the CAM code now has a simple probe
sequencer using ap->ap_probe (and at->at_probe for the PM ata_port
structures).

* The hardreset code now interfaces with the PM probe code, which itself
is a bit complex. Ports with port multipliers on them can either busy
out on the initial probe or return information related to the device
at target 0 instead of information related to the PM itself, so we
have to probe the PM by putting the port into PMA mode and doing a
softreset of target 15 even if a PM does not appear to be attached.

* The hard and soft reset code for a target behind a PM (in ahci_pm.c)
tries to be careful not to break the entire port (and thus all the
targets) when one target misbehaves.

* Get a large chunk of the error handling code working with the PM,
including hopefully partial cancelation on target failure to fail
just that target instead of the entire SATA port.

* Modify the probe code to check for the presence of a PHY with a short
polling interval and skip the port if nothing appears to be connected
to it.

* Fix re-initialization recursions which can occur from the port interrupt
handler when called during a software or hardware reset.

* ATA_PORT vs AHCI_PORT

AHCI_PORT represents a physical port on the AHCI device. ATA_PORT
reprewents a logical port of which (if a PM is present) there can be
up to 16 per physical port. In most cases in the code we only pass
ATA_PORT (variable name 'atx') for targets behind a port multiplier
and we pass NULL for atx for directly connected targets. The variable
'at' is similar to 'atx' except it is always non-NULL and is a
pointer to target 0 on non-PM SATA ports (and the same as atx on
PM SATA ports).

* Reorganize tracking of ap->ap_active_cnt, tying it more directly to
the manipulation of ap->ap_active. This also fixed a few bugs in
the tracking of ap->ap_active_cnt.

* Implement the DHRS (Device-to-Host FIS) interrupt and properly
copy the rfis to the ccb. It is unclear whether command processing
stops when we receive DHRS but if it does we restart it. Without
this the PM register read and write functions do not work.

* Add interrupt code to track notification (SSNTF capability) via
the SDBS interrupt and AHCI_PREG_SNTF. Not tied into anything yet.

* Put all the bits for the AHCI_PREG_SERR register on the same plane,
combining the DIAG and ERR bits. Get rid of the shift-by-16 macros.

* Pray.

show more ...


# fd8bd957 06-Jun-2009 Matthew Dillon <dillon@apollo.backplane.com>

AHCI - Hot Plug support, ATAPI IDENTIFY, CAM bus scan issues, etc

* Split some code out of ahci_port_alloc() into its own procedure,
ahci_port_init(). This procedure will be used to init/reinit a

AHCI - Hot Plug support, ATAPI IDENTIFY, CAM bus scan issues, etc

* Split some code out of ahci_port_alloc() into its own procedure,
ahci_port_init(). This procedure will be used to init/reinit a
port for Hot-Plug.

* Do not free ports which have device problems, hot-plug can still
operate on such ports.

* Re-detect ap_type when resetting a port. Create a helper routine
called ahci_port_signature_detect() to reduce code duplication.

* Augment ahci_cam_changed() so hot-plug can tell it whether a device
is being added or removed.

* Scan the CAM bus asynchronously to fix reentrancy issues.

* Consolidate most of the ATAPI and DISK probe code back into one routine.

Use ATA_C_ATAPI_IDENTIFY when probing an ATAPI device and also probe
for NCQ on ATAPI devices (though nobody knows if it would actually work
if an ATAPI device said it could do it).

* Do not try to set the security freeze-lock if the identify info
indicates that the freeze-lock is already active. This fixes a
command timeout that occurs when re-plugging devices whos freeze-lock
remains intact from a previous use.

* Add defines for ATA_C_ATAPI_IDENTIFY and ATA_SECURE_* identify bits.

show more ...


# 258223a3 04-Jun-2009 Matthew Dillon <dillon@apollo.backplane.com>

AHCI Driver port from OpenBSD to DragonFly - Initial commit

This is the initial work synchronization commit for the AHCI driver port.
About 85% of the logic is now working.

This also includes initi

AHCI Driver port from OpenBSD to DragonFly - Initial commit

This is the initial work synchronization commit for the AHCI driver port.
About 85% of the logic is now working.

This also includes initial wiring of interrupt bits and status tests for
hot-plug support.

show more ...