x86: Add intr_enable_src()
Function to enable specific IRQ source.
This will be used by the s2idle code to enable just SCIs on x86 to break
the CPU out of idle.
Reviewed by: olce
Approved by: olce
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48734
acpi: Suspend-to-idle support (s2idle)
Implement STYPE_SUSPEND_TO_IDLE sleep type added in c43473dc9b83
("sys/power: Generic sleep types").
This is a prerequisite for the firmware to enter the S0ix states. When
suspending to idle, the system stays in an ACPI S0 state, but the CPUs
are idled and devices are suspended/resumed before and after this as
they would be when entering any other sleep type (except for AWAKE and
POWEROFF).
Factor out do_standby, do_sleep, and add a new do_idle function for
idling the CPU (a future patch will make this an idle loop and not just
a simple cpu_idle() call). In do_idle, SCIs (interrupt 9) are enabled to
allow wake events to break the CPU out of idle.
Record all the steps made instead of just the last one in slp_state,
which allows for more flexible unwinding (will be useful to not have to
goto breakout if the SPMC entry call fails when that is committed).
[10 lines not shown]
enc: create an interface at SI_SUB_PROTO_IF stage
Creation of enc0 before SI_SUB_PROTO_MC mangles the MLD list as well as
encounters IGMP mutex not initialized yet.
Reported & tested by: mjg
NB: the enc(4) is not a true interface indeed. In a perfect world the
module shall not create a cloner, shall not enter if_attach(), shall not
trigger ifnet_arrival_event, neither shall have any protocol attached to
it. The enc0 exists for two purposes: 1) create a bpf(9) tap; 2) to allow
injection packets in the middle of ipsec(4) processing temporarily
rewriting m_pkthdr.rcvif to point at enc0. While the problem 1 is already
solved with a recent divorce between bpf(9) and ifnet(9), the problem 2 is
harder to solve without breaking packet filter rules that use "via enc0".
textproc/opensearch*: Update to 3.4.0
PR: 292121 292122
Reported by: Nick Price <nick at spun.io>
Reviewed by: Sven Ruediger
Tested by: Sven Ruediger
Approved by: opensearch
misc/py-wandb: Remove hard dependency on go122
py-wandb is the sole remaining consumer of Go < 1.24. I missed it in
my original sweep because I was looking for USES=go, and py-wandb
instead had a BUILD_DEPENDS on go122 itself.
Previous py-wandb had a hardcoded dependency on go122. I assume it
was an attempt to ensure a minimum verion (as go.mk did not support
anything like that), but I'm not sure (an email to yuri went unanswered.)
Instead, add USES=go:1.22+ (and remove the rendundant BINARY_ALIAS that
further hardcoded go122).
With this change, the port build happily. Tests don't run (multiple deps
are missing, but even after adding them it still won't run tests at all,
and I don't know how to fix that).
I bumped PORTREVISION so that end-users can benefit from a more modern
Go runtime and toolchain.
[3 lines not shown]
loader.efi: Only use SPCR if enabled.
SerialPort in the SPCR is zeroed when serial redirection is disabled,
rather than the SPCR being omitted from the ACPI tables ony many
systems. Check to see that SerialPort.Address is non-zero before using.
FreeBSD would fail to boot on systems that could have a serial port
redireciton, but don't have it enabled because the loader would create a
bogus hw.uart.console. While one could unset this value to boot, you
couldn't do that automatically very easily. Instead, don't even look
at the SPCR table if the SerialPort is zero'd.
PR: 292206
MFC After: 3 days
Sponsored by: Netflix
Co-authored-by: Warner Losh <imp at FreeBSD.org>
Closes: https://github.com/freebsd/freebsd-src/pull/1948
(cherry picked from commit d82698ac68c23d856716dc9f6524b9ef363d7eba)