History log of /fuchsia/zircon/system/dev/block/ahci/ahci.c
Revision Date Author Comments
# babe1cf5 25-Jul-2018 Adam Barth <abarth@chromium.org>

[sync] Apply C API rubric to libsync

Test: No behavior change
Change-Id: I30a413f7fb5d3f4e741e5204532b82e73595c086


# 47cff597 26-Jun-2018 George Kulakowski <kulakowski@google.com>

[clock] zx_clock_get(ZX_CLOCK_MONOTONIC) -> zx_clock_get_monotonic()

Test: no functional change

Change-Id: Iaa513c521d96b178458acc707be3646067971701


# 937a9826 30-Apr-2018 Brijen Raval <braval@google.com>

[interrupts][syscall] Rename syscalls zx_irq_* to zx_interrupt_*

Change-Id: Ie01f65f29c1fd6171463340e2a5c103ff8e704b6


# cca25b86 26-Apr-2018 Brijen Raval <braval@google.com>

[syscall][irq] Remove (disabled) old irq syscall implementations

Change-Id: I2f4a4f42e174dbab5ac4eb84255955fa805cd75d


# 46b12f5f 04-Apr-2018 Brijen Raval <braval@google.com>

[interrupt][syscalls] Adapt to new interrupt syscalls

ZX-2024
Change-Id: I534d4087d0dcf199ea38ced0fd2f0af98548b719


# 2b848d75 03-Apr-2018 Todd Eisenberger <teisenbe@google.com>

[drivers][bti] Use zx_bti_pin instead of zx_bti_pin_new

This should be a no-op, since these are aliases.

ZX-1936 #comment Switch drivers to new syscall name

Change-Id: I09e5a5fd48b7d4539347564897f14fab90e19868


# be69d2c7 03-Apr-2018 Todd Eisenberger <teisenbe@google.com>

[dev][ahci] Migrate to new BTI interface

ZX-1936 #comment migrated ahci

Change-Id: Id85281e84820db6173f9155876778e767ab46a97


# 927d1244 05-Apr-2018 Sean Klein <smklein@google.com>

[block][ahci] Remove barrier flags from driver

BLOCK_FL_BARRIER_BEFORE and BLOCK_FL_BARRIER_AFTER are
currently implemented in the block midlayer: if an incoming
operation has these barriers set, they will be used to
determine when operations should be enqueued to the underlying
driver. This logic is managed in dev/block/block/server.cpp,
and as a consequence, underlying drivers can process incoming
operations in any desired order.

Change-Id: I659dcc35296bef20ee7da0ea862db125b49b0095


# aa1e69b1 04-Apr-2018 Yvonne Yip <yky@google.com>

[block][ahci] Interpret BLOCK_OP_ correctly and implement barrier flags

Need to mask out flags from BLOCK_OP_ commands before using
in a switch statement. Added support for BLOCK_FL_BARRIER_BEFORE
and BLOCK_FL_BARRIER_AFTER flags.

Change-Id: Iff384310b28f1825560a50280771fbe112ea1c2e


# d14bfadf 20-Mar-2018 Todd Eisenberger <teisenbe@google.com>

[ddk][io-buffer] Rename callsites of io_buffer_init*_with_bti

ZX-1804 #comment Move all zircon callsites to final name

Change-Id: Ie35de5654841e84653582126dc1f976664c0f49d


# a5e9ed9d 21-Mar-2018 Yvonne Yip <yky@google.com>

[dev][ahci] use BTI

This re-applies commit 2a4795ec90878deeb42e1a990411c6e2827ef114.
That was reverted by commit acb0d34b5dbf46a03fb24b0cb0cb2d4eb6c8845a

Change-Id: I1ba70d742dadb9c2c444806ff37ee741c67bbc4f


# d354ae56 26-Mar-2018 Todd Eisenberger <teisenbe@google.com>

[pci] Revert "[pci] Remove lingering calls to pcie_read/pcie_write"

This reverts commit f06b8b63abf9236558fda3b34ce8e2e5953dcbbf. It broke
ahci on NUCs.

ZX-1885 #done

Change-Id: I34a88374b98039f6c0519eb0b5feff8949c5edda


# f06b8b63 22-Mar-2018 Christopher Anderson <cja@google.com>

[pci] Remove lingering calls to pcie_read/pcie_write

ahci and bochs both use pcie_read & pcie_write for endianness handling
in reading registers. These functions are replaced by protocol methods
and only work with mmio, so they're being removed and these bochs/ahci
macros are replaced with the actual calls they were making.

Change-Id: I5c7f8a23767caba42e22b4a0009e80d9a528c672


# eda40f04 21-Mar-2018 Yvonne Yip <yky@google.com>

[dev][ahci] use offset_vmo in bytes in pagecount calculation

This cause pagecount to be incorrect of offset_vmo in blocks
is unaligned to a page.

Change-Id: I5c707b72db43a9b47eb56246665873b98621caa5


# acb0d34b 21-Mar-2018 Todd Eisenberger <teisenbe@google.com>

[dev][ahci] Revert "[dev][ahci] use bti"

This reverts commit 2a4795ec90878deeb42e1a990411c6e2827ef114. It was
causing breakage in x86 qemu when run without -V.

ZX-1861 #comment reverted change

Change-Id: I4001a9630bf4d3546912a3a9148428ef251cd2fe


# 2a4795ec 20-Mar-2018 Todd Eisenberger <teisenbe@google.com>

[dev][ahci] use bti

This is a re-landed version of I76e114b9ea6123e7ef5fec390a7ef285e86cfd1e
(git commit 5d95f3a3404088560fff7dfa4ec53abd49877afc) which was reverted
in 335c3a414e169804eb9050d784af6cebd0f5c77f. The original patch passed
the wrong size to bti_pin, causing it to fail for non-page-aligned VMO
offsets. This has been tested on Acer12 and Paradise.

Change-Id: I45d74641b68debbf83eff95e209fefb13a045388


# 335c3a41 15-Mar-2018 James Tucker <raggi@google.com>

[dev][disks] Revert "use BTI"

This reverts commit 5d95f3a3404088560fff7dfa4ec53abd49877afc.
This reverts commit 5a04ac31d589785303c0f41913fd59dbd5ad46ef.
This reverts commit 26c25eb8505e136576ac4a319a77540834b380bd.

ZX-1835 #done

Change-Id: Ic26e62696a182922b347162a309bf24d8829bd06


# 5d95f3a3 14-Mar-2018 Yvonne Yip <yky@google.com>

[dev][ahci] use bti

Change-Id: I76e114b9ea6123e7ef5fec390a7ef285e86cfd1e


# e41d76df 24-Jan-2018 Yvonne Yip <yky@google.com>

[dev][ahci] convert to new block protocol

Change-Id: Iee44a66e5b02ab5e0e19d7d18c2cf499296d843d


# ec9928ea 22-Jan-2018 Adam Barth <abarth@google.com>

[syscalls] Rename zx_time_get to zx_clock_get

This change frees up the get() method in for a zx_time_t accessor in the
zx::time class.

Change-Id: Ia4cdc7e3e558df5ba0cfeedb27a442abf4d6f305


# e0aa6aa6 13-Dec-2017 Christopher Anderson <cja@google.com>

[pci] Rebuild kpci to use rpc and a proxy devhost

- pci_get_resource -> pci_get_bar
This is used for bars now that everyone is expected to use
pci_config_read for reading from their config.
- Removed PCI_BAR_[0-5] constants. Now that the only valid members
of the resource enum are bars it does not make sense to map
PCI_BAR_X to Xu and so on. Callers to the protocol can pass the
bar numbers directly now.
- pci_map_resource has been renamed to pci_map_bar
- zx_pci_get_config has been removed because it is obsolete
now that mapping is just for bars.
- zx_pci_get_bar has been refactored to manage the user handle
more cleanly thanks to Roland's change.
- Update some old code to call the pci_* protocol methods rather
than the device ops directly.
- Remove all privileged calls from the proxy devhost for pci
- Remove (nearly) all uses of the root resource from the proxy devhost
- Split kpci initialization into two disparate parts: the driver
that binds to the root complexes and creates upper devhosts,
and a proxy driver that creates lower/proxy devhosts for drivers
to interact with.
- Remove overlapping functionality in kpci and separate into two
proper driver "files".
- Ran clang-format on everything

Change-Id: I46740e76855f5ec11b634635e88d62263bef6f9f


# 038c9dc5 27-Dec-2017 Mike Voydanoff <voydanoff@google.com>

[syscalls][ddk] Interrupt syscall improvements:

It is now possible to wait for multiple interrupts on a single interrupt handle.
The zx_interrupt_bind() syscall is used to bind an interrupt vector to
an interrupt handle, allowing up to 62 interrupt vectors per handle.

The zx_interrupt_get_timestamp() syscall can now be used to retrieve a
timestamp for an interrupt.

Virtual interrupts are now supported. zx_interrupt_bind() can be used to
designate an interrupt slot as a virtual interrupt, and the virtual interrupt
can be signaled using the zx_interrupt_signal() syscall.

The zx_interrupt_complete() syscall has been removed.
Instead, zx_interrupt_wait() now handles unmasking the interrupt
at the right time depending on whether the interrupt is edge or level triggered.

Slot ZX_INTERRUPT_SLOT_USER is reserved as a virtual interrupt, and is typically
used with zx_interrupt_signal() to unblock interrupt threads so they can exit
at driver shutdown or to perform periodic work.

Currently PCI interrupt handles can only be bound to a single interrupt vector,
but it is possible to bind virtual interrupts to PCI interrupt handles.

ZX-1469 #done
ZX-1471 #done

Change-Id: I48c14183c1b9ecd437c8b1ce0d25326b7532e973


# 666a6a80 17-Nov-2017 Christopher Anderson <cja@google.com>

[ahci] Support PIO and legacy systems

- Get bind information from get_device_info rather than assuming
config is always mappable.
- Try getting a legacy interrupt if MSI is unavailable.

Change-Id: Ifd94e5a12c5fef1ead2fcaebea8e515ed45a5a67


# 2e0fc961 05-Nov-2017 Mike Voydanoff <voydanoff@google.com>

[ddk] Remove driver bind() cookie and unbind() callback

Also removed "owner" and "owner_cookie" from internal zx_device_t struct

Adjusted intel-hda audio drivers to create devices to hold driver context
rather than using the driver bind cookie.

Change-Id: I0eca7f6fa3b155be71843291812e7aa9fea5bf55


# f4b2ff04 23-Oct-2017 Brian Swetland <swetland@google.com>

[ddk] rename dprintf() to zxlogf() to avoid conflicts

dprintf is still defined by ddk/debug.h but with a deprecation warning

Change-Id: I00b34803571c468007e069c1da6a292feba2bc3c


# cae8fc54 04-Oct-2017 Yvonne Yip <yky@google.com>

[dev][ahci] use ddk/debug.h

Change-Id: I4c168150aec7b9f7309c6bc702367f5675dcff8a


# 0bdd813f 14-Sep-2017 Mike Voydanoff <voydanoff@google.com>

[ddk][io-buffer] Add support for creating non-contiguous IO buffers

IO buffers are now non-contiguous by default.
Buffers are allocated contiguously if the IO_BUFFER_CONTIG flag is passed
and the buffer size is greater than one page.

Change-Id: I5d069b80df3bcbe9b148639c6c2b60f2442109a9


# dacc1d80 12-Sep-2017 Mike Voydanoff <voydanoff@google.com>

[dev] Rename "mxdev" to "zxdev" in ddktl and various drivers.

Change-Id: I000e42c26d9f8379de40447690694a35f6be93e2


# f3e2126c 12-Sep-2017 Roland McGrath <mcgrathr@google.com>

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# ca8d8cc5 06-Jul-2017 Yvonne Yip <yky@google.com>

[dev][ahci] missed one pci op wrapper

Change-Id: I875d5f28dd22d7cf9d7757f5721eeeec85707df5


# 7ad80b9a 05-Jul-2017 Mike Voydanoff <voydanoff@google.com>

[ddk][pci] Add inline wrappers for PCI protocol ops

Change-Id: I3e7bcfa2bb297656b802c98b66b4c44b325ae8aa


# 47c02055 22-Jun-2017 Christopher Anderson <cja@google.com>

[pci] Remove device claiming.

Now that the device coordinator provides a central method for
handing devices to drivers there is no longer a need to
explicitly claim a device exclusively. This has the added benefit
of simplifying the work that needs to be done when a driver is
killed or unloaded.

Change-Id: I5d0b810464ee0858430a08821b233e08a3b7abe6


# 9c7e9bc1 14-Jun-2017 Brian Swetland <swetland@google.com>

[ddk][pci] new protocol support (10 of n)

Convert MX_PROTOCOL_PCI to new style.

Change-Id: I72a7dcc0552e74b007199bbfea07cac51a7f780c


# 05849f10 08-Jun-2017 Tim Kilbourn <tkilbourn@google.com>

[dev][block] Use new magenta errors

Change-Id: I340040aa9103937cfb75234dadb6f215003365c8


# 22052bba 07-Jun-2017 Brian Swetland <swetland@google.com>

[udev][sata] rename udev/sata to dev/block/ahci

Change-Id: I9793d6186fda72c3a4f930e0826fdb0df343ca4c