Add a 'mach fwsetup' command, which uses the EFI OsIndications feature
to reboot the machine into the firmware setup interface, if supported.
This is an optional feature introduced in UEFI 2.4 (released 2013).
ok kn@
SEV-ES: Move some ghcb_sync_out arguments into a struct
Move the extra register values to ghcb_sync_out() into a struct. This will
make the code simpler when more arguments are added and the same
parameters are also passed to ghcb_sync_in().
From Sebastian Sturm
ok mlarkin@ hshoexer@
Finish rpi4 support. Configure the SCB to respond to incoming transactions,
ping the Raspberry Pi firmware to load the firmware for the VIA VL805 USB
controller (needed on the Raspberry Pi 4B rev 1.4 and later), and enable
SSC (Spread Spectrum Clock) mode.
ok mglocker@
ec_mult.c: place this code under my ISC license
I have effectively rewritten the entirety of this file end of 2024.
This isn't code I'm particularly proud of, but it's much better than
it was before (it's not as if that involved any sort of challenge...)
requested by/ok jsing
use an rwlock around the list of pfkey sockets instead of an SRPL.
this keeps the locking (relatively) simple and avoids the need to
refcnt a bunch of stuff.
tweaks from mvs@
ok mvs@ jmatthew@
make amdgpu S3 suspend more reliable
Laurence Tratt and matthieu@ reported that S3 suspend on amdgpu
had become unreliable.
Laurence with a Ryzen 9 9950X APU (GC 10.3.6)
matthieu with a Ryzen 5 PRO 3500U APU (Picasso)
this was tracked to:
Revert "drm/amd: Stop evicting resources on APUs in suspend"
5d9d62323e1893e6f429fad7da19a652088cac21 in linux-6.12.y/6.12.30
d0ce1aaa8531a4a4707711cab5721374751c51b0 in mainline linux
Instead of reverting the revert, change the activate function
to be equivalent. Makes the local change easier to maintain.
Thanks to Laurence for patiently trying many patches, as I could
not reproduce this on my Picasso machine.
ok kettenis@
The switch to FRAME_GROWS_DOWNWARD requires that the spill area for
registers, when expanding the prologue of a variadic function, can no
longer use room on top of the logical frame pointer, after the local
variables, by returning a non-zero pretend_args_size of the room needed.
Doing this confuses the rest of the compiler code and bad addresses get
computed, especially on platforms where variadic arguments, depending
on their type, can be passed in registers, then on the stack, then in
more registers, then on the stack, then in registers again, and m88k is
probably the most versatile example of this.
Move the register save area immediately below the hard frame pointer,
and do not set pretend_args_size. This fixes the worst cases of variadic
function torture, while still letting __builtin_apply_args() compute the
right address.
After these changes, the (logical) frame pointer and the argument
pointer are now identical, so it is possible to partly undo the addition
of the logical frame pointer by sharing the same logical register
between the fp and the ap.
Move opensslconf.h to a machine-independent place
After drilling through many layers of fossilized turds from a
long-forgotten millenium, jsing and I finally found oil^Wa
machine-independent version of opensslconf.h.
Remove the no longer needed versions in arch/*/ and move one copy
to the top level. Add an RCS tag and place the remaining garbage
in the public domain.
ok jsing
Stop the xonly crash in libunwind on powerpc64
The powerpc64 unwinder was trying to read the instruction at the
return address. This crashed, because you can't read from
execute-only memory.
This has probably been broken since January 2023 (before OpenBSD 7.3),
when powerpc64 became xonly. This broke anything that got a
backtrace(3) from libexecinfo or threw a C++ exception with libc++abi.
editors/emacs,no_x11 crashed in libexecinfo. devel/gdb crashed in
libc++abi. If you tried to examine the core dupm in gdb, then gdb
crashed again.
The unwinder is asking whether the return address has an instruction
to restore the TOC register. Instead of crashing, call dladdr(3)
twice to find the shared objects. Assume that each object has only
one TOC. Restore TOC if returning to a different object.
ok kettenis@