Age | Commit message (Collapse) | Author |
|
can do 64-bit DMA.
ok mpi@, mlarkin@
|
|
tested by mglocker@ with pci, acpi and fdt attachments
ok mglocker@ deraadt@
|
|
|
|
On EPYC 9124 psp(4) seems to need more to time to respond. Otherwise
it will not attach. Increase timeouts for both polling during
autoconf and interrupt during normal operation.
from hshoexer@ OK mlarkin@
|
|
|
|
showing overall device health and temperature.
tested by many (a while ago)
tweaks from gkoehler@ kettenis@ dv@
ok kettenis@ jca@ (earlier version), dlg@
|
|
|
|
Input and ok jmc@, jsg@
|
|
|
|
'fine with me' hshoexer, ok bluhm@
|
|
ok bluhm@ hshoexer@
|
|
To shutdown a SEV-enabled guest, first deactivate the guest context
in ccp(4), then decommission the guest context. Combine these two
operations in a single ioctl to simplify guest shutdown for vmd(8).
As this ioctl does not directly map to a single ccp command, use a
high number for the ioctl. More ioctls like this one will come.
from hshoexer@; OK mlarkin@
|
|
Limit ccp ioctls to processes that pledge vmm. Specific psp device
ioctls for AMD SEV will allowed for vmd(8).
from hshoexer@; input deraadt@ jsg@
|
|
|
|
|
|
functions. similar operations are done via driver xx_stop/init functions
calling mii_ subfunctions directly at the right moments in time, and
are not anticipated to ever need the activate mechanism. so for now,
delete all the config_activate_children() here
ok kettenis
|
|
|
|
|
|
|
|
ok mglocker@
|
|
ok stsp@
|
|
|
|
particular sti(4) device relies upon undocumented callbacks from the kernel,
and will default to iodc code otherwise.
The device now initializes correctly, but writes to the frame buffer memory
freeze the system due to bad interaction with the ROM even though it is
disabled at the PCI level - unfortunately I'm currently out of hair to pull
at the moment to make any progress on this.
No functional change intended for other sti(4) devices.
|
|
Enable ext IRQs like the Linux driver does it, not later. I did this
differently due to problems in early development that have since
been fixed.
Fixes an interrupt storm during resume which prevents things like
key installation from working, leaving the network link dead.
|
|
|
|
registers, make some decisions, and then program other registers. After
a resume, it is pointless, and potentially incorrect to read such registers
again, which a BIOS or something may not have initialized, and we are
better off using the remembered soft-state to init cleanly. So craft a
custom block of chip restoration, and do it while the chip is stopped hard.
ok kettenis mlarkin
|
|
calls from the correct places, so their DVACT_QUIESCE and DVACT_WAKEUP
were incorrect, and led to those sub-drivers (ihidev and imt) racing
against dwiic hardware re-initialization.
ok kettenis mlarkin
|
|
not a "restart transaction", so the job should get done at DVACT_RESUME
time.
ok kettenis mlarkin
|
|
|
|
done at a different level, and nothing needs to be done here
ok kettenis
|
|
|
|
FW now seems to come up after providing regdb parsed out of the board file.
|
|
working yet, but it's better to continue polishing this in-tree.
|
|
This driver is not working yet, it's a copy of qwx(4) which bit-by-bit will be
adjusted to work on the newer generation of chips. Even though this is only a
minor bump over the previous generation, the changes are large enough that
bringup, debugging and long-term maintenance would suffer trying to squash them
into a single driver. This can be reconsidered once we have reached a stable
state.
|
|
According to AMD SEV API specification, the mask for command ID is
supposed to be of length 10 (Bits [25:16]), rather than length 6.
This ensures that all commands are properly processed by the PSP.
from Aaron Debebe; OK hshoexer@
|
|
i think before this change we could overwrite entries on the ring,
which can confuse the chip and the tx completion code. i think.
it's funny how much a comparison hurts my brain.
ok patrick@
tested by and ok kevlo@
|
|
It broke resume from hibernate. :(
|
|
memory. This removes memory allocation from the resume-side of
device activation.
ok deraadt@
|
|
Check op_q_free for non-NULL instead.
Neither are currently set to non-NULL anywhere.
ok jmatthew@
|
|
hibernate i/o.
Use of howmany() suggested by jmatthew@, ok jmatthew@
|
|
documentation.
|
|
ok jsg@
|
|
ok mglocker@
|
|
|
|
|
|
in the code, and remove some XXXs by that. No functional changes.
|
|
the return values.
|
|
no objections from deraadt@
|
|
PSP is optional to ccp(4). Thus if PSP attachment fails (e.g.
interrupt can not be set up), do not unmap IO space. It will still
be needed by ccp(4). Nonetheless, disestablish interrupt handler
if PSP attachment fails.
Another tweak: If PSP can not be initialized, there's no need to
actually flush caches (wbinvd) on all CPUs.
Cleanup dmesg output and make it more precise.
from hshoexer@; reported and tested by Hrvoje Popovski
|
|
Several commands for basic platform initialization and launch of
SEV/SEV-ES enabled guests are implemented. These can be used by
e.g. vmd(8) later.
from hshoexer@; OK mlarkin@
|