Age | Commit message (Collapse) | Author |
|
|
|
This makes it possible to use MSI for virtual functions of Intel network
devices without having to specify the q35 machine.
QEMU is detected by testing for the Qumranet pci subsystem vendor id,
suggested by sf@. MSI previously wasn't enabled as i440fx models a machine
from 1996 with ACPI 1.0, and MSI is only enabled for ACPI >= 2.0.
Initial patch from Yuichiro NAITO. ok yasuoka@ sf@
|
|
|
|
|
|
last use (in inteldrm) was removed in March
|
|
MSIs can only be done for PCI devices that implement per-vector masking,
which a lot of hardware doesn't implement.
ok mlarkin@
|
|
ok mpi@
|
|
ok kevlo@, patrick@
|
|
to assist qwx(4) development. We may remove this code again at some point
in the future.
Multiple Message MSI has some serious design flaws, especially when
combined with the APIC interrupt controller architecture. It was
superseded by MSI-X. Unfortunately qwx(4) does not implement MSI-X.
ok stsp@, deraadt@
|
|
|
|
|
|
than uvm_km_valloc(9).
ok kettenis@
|
|
This creates separate domains for each PCI device and can provide protection
against invalid memory access. Needed for Passthrough PCI from vmd.
ok deraadt@, kettenis@
: ----------------------------------------------------------------------
|
|
ok deraadt@
|
|
the cpu is specified by a struct cpu_info *, which should generally
come from an intrmap.
this is adapted from a diff that patrick@ sent round a few years
ago for a pci_intr_map_msix_cpuid, where you asked for an msi vector
on a specific cpu, and then called pci_intr_establish with the
handle you get. kettenis pointed out that it's hard on some archs
to carry cpu on a pci interrupt handle, so i tweaked it to turn it
into a pci_intr_establish_cpu instead.
jmatthew@ and i (but mostly jmatthew@ to be honest) have been
experimenting with this api on multiple archs and it is working out
well. i'm putting this diff in now on amd64 so people can kick the
tyres a bit.
tested with hacked up vmx(4), ix(4), and mcx(4)
|
|
conversion steps). it only contains kernel prototypes for 4 interfaces,
all of which legitimately belong in sys/systm.h, which are already included
by all enqueue_randomness() users.
|
|
information on ACPI 5.0 and later.
ok krw@, patrick@
|
|
ok mortimer@ mpi@ deraadt@
|
|
after 6.6 as been released. The acpireg.h change stays behind.
|
|
few additional quirks though, and attaching the PCI busses is delayed to
replicate the existing code more closely. That may be changed in the
future. Also tweak how we handle MSI support and respect to ACPI flag
that says we shouldn't attempt to use MSIs.
Some fallout is expected.
ok patrick@
|
|
an earlier diff from sf@.
ok jmatthew@, also ok mlarkin@, sf@ for a slightly different earlier version
|
|
message address into an MSI-X table entry. The RTL8168/RTL8111 hardware
does not respond to 64-bit access (reads return all-ones, writes are
ignored) and the PCI specification documents separate 32-bit "DWORD"
fields for message address and message upper address.
ok mlarkin@, jmatthew@
|
|
method to let the ACPI implementation know what features we support.
|
|
for now as amd64/i386 firmware still caters for legacy OSes that only
support a single PCI segment.
ok patrick@
|
|
acpimcfg(4) to call an MD initialization functions that sets up a tag for
PCI ECAM.
ok guenther@, mlarkin@, krw@
|
|
this gets rid of the source annotation which doesn't really add
anything other than adding complexitiy. randomess is generally
good enough that the few extra bits that the source type would
add are not worth it.
ok mikeb@ deraadt@
|
|
ok mpi@ deraadt@
|
|
|
|
register. Second, correctly decode the table sizefromits contents.
First issue pointed out by David Hill (with the help of clang). Second
issue spotted after seeing a diff from Christiano Hasbaert.
|
|
|
|
actually use this in em(4) and xhci(4), but I'm not committing those yet
because we almost certainly need to save and restore the MSI-X registers
during suspend/resume. However, this allows mpi@ to play with multiple-vector
support in networking hardware.
Requested by mpi@
ok mlarkin@, mikeb@
|
|
|
|
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
within a range that is more (or less) restrictive than the default range.
ok deraadt@, stsp@
|
|
They have devices outside the 36 bit range that their firmware needs to talk
to, and they get constant acpi interrupts if it can't. We should get the
necessary ranges via ACPI, but for now just make the allowed range bigger.
ok kettenis@ deraadt@
|
|
PROT_NONE, PROT_READ, PROT_WRITE, and PROT_EXEC from mman.h.
PROT_MASK is introduced as the one true way of extracting those bits.
Remove UVM_ADV_* wrapper, using the standard names.
ok doug guenther kettenis
|
|
the inteldrm code. Fix this by adding new interfaces that can map a single
page without sleeping and use that in the execbuffer fast path that needs
this "atomic" behaviour. Should fix the panic I've seen under memory pressure
on i386.
|
|
after discussions with beck deraadt kettenis.
|
|
tested by & ok mlarkin@
|
|
|
|
ok kettenis@, deraadt@
|
|
so remove the former and include the latter instead of pulling it
in <dev/pci/agpvar.h>. This header already requires various other
types anyway. While here remove unneeded headers.
|
|
all by itself.
|
|
inteldrm(4) manages the GTT by itself.
ok miod@
|
|
kernel resumes normal (non-cold, able to run processes, etc) operation.
Previously we were relying on specific DVACT_RESUME op's in drivers
creating callback/threads themselves, but that has become too common,
indicating the need for a built-in mechanism.
ok dlg kettenis, tested by a sufficient amount of people
|
|
for PCI devices. This hook should be called twice, before and after
changing the power state of a PCI device.
Before setting the device to the new state, the ACPI layer will notify
every power resources linked to the device for that state and make sure
they are turned "_ON". After changing the state of the device, it will
decrement the reference of every power resources linked to that device
for the old state and turn them "_OFF" if they are no longer referenced.
This fixes the no-USB after resume problem seen on various ThinkPad,
problem initialy diagnosed with Alexander Polakov.
ok kettenis@, deraadt@
|
|
is should return D3. It should return the current power state.
ok kettenis mlarkin
|
|
cleaning up some shutdown-hook related code on the way.
(A few drivers related to sparc are still skipped at kettenis' request)
ok kettenis mlarkin, tested by many others too
|
|
support to reload bindings after suspend/resume and to update cachability
flags in the address translation table entries.
|
|
ok guenther millert kettenis
|