History log of /fuchsia/zircon/system/dev/bus/virtio/backends/pci_modern.cpp
Revision Date Author Comments
# afda3d80 07-Sep-2018 George Kulakowski <kulakowski@google.com>

[compiler.h] Migrate more C++ code from countof to fbl::countof

Test: CQ; should be no functional change
Change-Id: Idbdb9606827eccaad936c12961f845729db00a4f


# 7c2a8c74 20-Jun-2018 Roland McGrath <mcgrathr@google.com>

[dev][bus][virtio] Use <hw/reg.h> functions for MMIO access

Move the Linux/ARM64 KVM workaround into the <hw/reg.h> functions.

Bug: ZX-2238
Test: CQ
Change-Id: I12dd6c63b29a3596dc53c19ed16803b7c5ba5cc5


# 18cc54d2 12-Jun-2018 Roland McGrath <mcgrathr@google.com>

[dev][bus][virtio] Work around Linux/arm64 KVM missing MMIO load/store support

ZX-2238 #comment Workaround in virtio driver

Change-Id: Ia050b612fe96a4361454fd6b41757b9087f0f8f0


# acd62bab 12-Jun-2018 Christopher Anderson <cja@google.com>

[virtio] Improve backend logging for MMIO

- Log the bar / offset values of virtio confiig structures during
initialization under TRACE
- Move ring kick debugging to SPEW

Change-Id: Id7f95686c300c659189eac444dbcc15d20d7e599


# 4d02a185 12-Jun-2018 Roland McGrath <mcgrathr@google.com>

[dev][bus][virtio] Clean up MmioRead/MmioWrite a little

Add const qualifier to MmioRead pointer argument.
Implement 64-bit MmioRead/MmioWrite in terms of 32-bit calls
rather than direct accesses.

Change-Id: I4952dcf96ace45756c869149c1d6a106da8edcb3


# c5351c21 11-Jun-2018 Roland McGrath <mcgrathr@google.com>

[dev][bus][virtio] Fix PCI MMIO device_features bit calculation

Change-Id: I824a212de7d2be3aba18b72072a46f1914b22f3b


# 7a0b59f2 02-Mar-2018 Tim Detwiler <tjdetwiler@google.com>

[virtio][pci-modern] Fix feature negotiation.

Change-Id: If3b9cbc5fdcb732f1d507d5b7b0149ed82e98fd2


# 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


# bfd852ae 16-Dec-2017 George Kulakowski <kulakowski@google.com>

[virtio] Add copyright headers

Change-Id: Ib246001a1c1e140245eb0a6b0a64a864dc193ffb


# e36ba405 17-Dec-2017 Abdulla Kamar <abdulla@google.com>

[virtio] RingKick should be based on ring_index

RingKick was incorrectly using the information of the last configured
ring to kick. The kick is based on the address written to, not the value
written. The address written to is based on the ring_index, not the last
configured ring.

Without this change, the last ring to be configured would be the ring
that all kicks would be directed to.

Change-Id: If9a5e05d281cc765d2bf353cb7faefac09ecc5d6


# 119bf8e6 12-Dec-2017 Christopher Anderson <cja@google.com>

[pci] Proxy pci_config_read

- pci_config_read now operates on a channel between lower and
upper halves of devhosts.
- pci_config_read now takes a value pointer and returns a
status code
- The width parameter was changed from 'bits' to 'bytes' to make
the code in the lower protocol layer more clear.
- zx_pci_config_read has been adjusted to match the same prototype

Change-Id: I2b856d1451044873e9a2ec025b1e546ce2b9e816


# 1d2ee742 12-Oct-2017 Christopher Anderson <cja@google.com>

[virtio] Refactor virtio backend support

- Implement device backends for transport rather than having
it be a part of the device class itself. These backends are
plugged into the device class to provide an abstraction between
device level interfaces and the specific nuances around the
virtio interface.
- Implement a legacy virtio bar0 PIO interface for use in systems
that only provide Virtio 0.9.5 devices.
- Move logging away from VIRTIO_ERROR and use newer ddk zxlogf.
- Run clang-fmt and clean up small nits here and there.
Change-Id: I2568e9554378163f19b89537986e0d5ea8b47510