OpenBSD cvs log

created 2023-08-09T07:08:04Z
begin 2022-11-01T00:00:00Z
end 2022-11-08T00:00:00Z
path src/sys
commits 50

date 2022-11-01T01:01:14Z
author cheloha
files src/sys/arch/amd64/amd64/Attic/vmm.c log diff annotate
message vmm(4): vcpu_reset_regs_svm: allow reads of MSR_HWCR, MSR_PSTATEDEF(0)

Guests may need these MSRs to determine the TSC frequency on AMD
families 17h and 19h.

GP fault reported by weerd@, observed on "AMD EPYC 3201 8-Core Processor"
(17-01-02). Same issue observed by Jesper Wallin on "AMD Ryzen PRO 3700U".
Tested by Jesper Wallin.

Link: https://marc.info/?l=openbsd-bugs&m=166721628323483&w=2

ok mlarkin@

date 2022-11-01T13:59:00Z
author kettenis
files src/sys/arch/amd64/isa/clock.c log diff annotate
src/sys/arch/i386/isa/clock.c log diff annotate
message Use todr_attach().

ok phessler@

date 2022-11-02T07:20:07Z
author guenther
files src/sys/arch/alpha/alpha/trap.c log diff annotate
src/sys/arch/amd64/amd64/trap.c log diff annotate
src/sys/arch/hppa/hppa/trap.c log diff annotate
src/sys/arch/m88k/m88k/trap.c log diff annotate
src/sys/arch/powerpc/powerpc/trap.c log diff annotate
src/sys/kern/kern_fork.c log diff annotate
message Clean up more ancient history: since 2015 the libc stubs for
fork/vfork/__tfork haven't cared about the second return register.
So, stop setting retval[1] in kern_fork.c and stop setting the
second return register in the MD child_return() routines.

With the above, we have no multi-register return values on LP64,
so stop touching that register in the trapframe on those archs.

testing miod@ and aoyama@
ok miod@

date 2022-11-02T07:20:08Z
author guenther
files src/sys/arch/arm64/arm64/syscall.c log diff annotate
src/sys/arch/mips64/mips64/trap.c log diff annotate
src/sys/arch/powerpc64/powerpc64/syscall.c log diff annotate
src/sys/arch/riscv64/riscv64/syscall.c log diff annotate
src/sys/arch/sparc64/sparc64/trap.c log diff annotate
message Clean up more ancient history: since 2015 the libc stubs for
fork/vfork/__tfork haven't cared about the second return register.
So, stop setting retval[1] in kern_fork.c and stop setting the
second return register in the MD child_return() routines.

With the above, we have no multi-register return values on LP64,
so stop touching that register in the trapframe on those archs.

testing miod@ and aoyama@
ok miod@

date 2022-11-02T10:41:34Z
author kn
files src/sys/arch/luna88k/cbus/nec86.c log diff annotate
src/sys/arch/luna88k/cbus/nec86hw.c log diff annotate
src/sys/dev/audio.c log diff annotate
src/sys/dev/audio_if.h log diff annotate
src/sys/dev/isa/ess.c log diff annotate
src/sys/dev/isa/gus.c log diff annotate
src/sys/dev/isa/gusvar.h log diff annotate
src/sys/dev/isa/pas.c log diff annotate
src/sys/dev/isa/sb.c log diff annotate
src/sys/dev/isa/sbdsp.c log diff annotate
message Remove audio(9) speaker_ctl(), let open() handle speakers where needed

Only five legacy half-duplex hardware drivers require this function to
change between playing and recording:
i386: ess(4), gus(4), pas(4), sb(4)
luna88k: nec86(4)

If defined, it is always called early in audio_open(), so just move the
call from audio(4) to each hardware driver's open() handler.

SPKR_ON/OFF remain defined to leave driver-specific code unchanged.

Further cleanup (unchecked speaker_ctl() return values,
FWRITE -> AUMODE_PLAY -> SPKR_ON dances, etc.) can happen later.

Builds fine on i386.
OK ratchov

date 2022-11-03T04:52:41Z
author guenther
files src/sys/kern/kern_xxx.c log diff annotate
message Make scdebug_ret() behave like ktrsysret(), showing the off_t value
for lseek() and a single register_t value for all others.

ok miod@

date 2022-11-03T04:56:47Z
author guenther
files src/sys/dev/rnd.c log diff annotate
src/sys/kern/kern_exit.c log diff annotate
message Style: always use *retval and never retval[0] in syscalls,
to reflect that retval is just a single return value.

ok miod@

date 2022-11-03T17:41:22Z
author patrick
files src/sys/arch/arm64/conf/RAMDISK log diff annotate
message Enable smbios0 on arm64 RAMDISK so the code mitigating crashes on the x13s
gets correct info from hw.version.

date 2022-11-03T23:26:49Z
author jca
files src/sys/arch/riscv64/riscv64/pmap.c log diff annotate
message Zap unused variable

ok kettenis@

date 2022-11-03T23:30:55Z
author jca
files src/sys/arch/riscv64/riscv64/pmap.c log diff annotate
message riscv64 pmap: flush memory writes before remote sfence.vma

As pointed out by the RISC-V privileged spec. Sadly this is not enough
to solve all existing userland or kernel crashes seen on Unmatched (and
possibly other?) machines.

ok kettenis@

date 2022-11-04T09:36:44Z
author mpi
files src/sys/uvm/uvm_addr.c log diff annotate
src/sys/uvm/uvm_fault.c log diff annotate
src/sys/uvm/uvm_map.c log diff annotate
src/sys/uvm/uvm_map.h log diff annotate
message Assert the VM map lock is held in function used by mmap/mprotect/munmap.

Also grab the lock in uvm_map_teardown() and uvm_map_deallocate() to
satisfy the assertions. Grabbing the lock there shouldn't be strictly
necessary, because no other reference to the map should exist when the
reaper is holding it, but it doesn't hurt and makes our life easier.

Inputs & tests from Ivo van der Sangen, tb@, gnezdo@, kn@

kettenis@ and tb@ agree with the direction, ok kn@

date 2022-11-04T16:49:31Z
author kettenis
files src/sys/arch/amd64/amd64/efi_machdep.c log diff annotate
src/sys/arch/amd64/amd64/locore.S log diff annotate
src/sys/arch/amd64/amd64/trap.c log diff annotate
message EFI firmware has bugs which may mean that calling EFI runtime services will
fault because it does memory accesses outside of the regions it told us to
map. Try to mitigate this by installing a fault handler (using the
pcb_onfault mechanism) and bail out using longjmp(9) if we encounter a
page fault while executing an EFI runtime services call.

Since some firmware bugs result in us executing code that isn't mapped,
make kpageflttrap() handle execution faults as well as data faults.

ok guenther@

date 2022-11-05T00:12:39Z
author jsg
files src/sys/dev/pci/azalia.c log diff annotate
message match on Intel 500 Series HD Audio (0x43c8)

on a Lenovo ThinkPad P1 Gen 4, the audio device is subclass audio not
hd audio, so azalia does not match

reported by John Browning
ok kettenis@ thfr@

date 2022-11-05T10:31:16Z
author deraadt
files src/sys/kern/exec_elf.c log diff annotate
message For textrel binaries, skipping immutability on text segments is not enough:
It needs to be all non-writeable segments, which really means rodata.
crt0 and ld.so will need to call mimmutable() later on these regions.
ok kettenis

date 2022-11-05T16:23:02Z
author cheloha
files src/sys/arch/powerpc64/include/timetc.h log diff annotate
src/sys/arch/powerpc64/powerpc64/clock.c log diff annotate
message powerpc64: TimeBase: add userspace timecounting support

Tested by gkoehler@.

ok gkoehler@

date 2022-11-05T18:56:09Z
author patrick
files src/sys/arch/arm64/stand/efiboot/fdt.c log diff annotate
src/sys/arch/armv7/stand/efiboot/fdt.c log diff annotate
src/sys/arch/riscv64/stand/efiboot/fdt.c log diff annotate
message Make sure fdt_find_node() returns NULL if it can't find the requested node.

ok kettenis@

date 2022-11-05T18:58:24Z
author patrick
files src/sys/arch/arm64/stand/efiboot/efiboot.c log diff annotate
message Activate the device tree we just loaded from disk. While this doesn't fix
any current bug, it might catch issues in the future.

ok kettenis@

date 2022-11-05T19:00:31Z
author patrick
files src/sys/arch/arm64/stand/efiboot/efiboot.c log diff annotate
message Not every device tree we're getting passed has an /aliases or /chosen node,
but our code assumes so. It's useful to have them, so create them if they
do not exist.

ok kettenis@

date 2022-11-05T19:01:51Z
author patrick
files src/sys/arch/arm64/stand/efiboot/conf.c log diff annotate
message Bump version number so that it's easier to see if the running version has
the bugfixes in.

ok kettenis@

date 2022-11-05T19:29:45Z
author cheloha
files src/sys/conf/files log diff annotate
src/sys/ddb/db_command.c log diff annotate
src/sys/ddb/db_interface.h log diff annotate
message clockintr(9): initial commit

clockintr(9) is a machine-independent clock interrupt scheduler. It
emulates most of what the machine-dependent clock interrupt code is
doing on every platform. Every CPU has a work schedule based on the
system uptime clock. For now, every CPU has a hardclock(9) and a
statclock(). If schedhz is set, every CPU has a schedclock(), too.

This commit only contains the MI pieces. All code is conditionally
compiled with __HAVE_CLOCKINTR. This commit changes no behavior yet.

At a high level, clockintr(9) is configured and used as follows:

1. During boot, the primary CPU calls clockintr_init(9). Global state
is initialized.
2. Primary CPU calls clockintr_cpu_init(9). Local, per-CPU state is
initialized. An "intrclock" struct may be installed, too.
3. Secondary CPUs call clockintr_cpu_init(9) to initialize their
local state.
4. All CPUs repeatedly call clockintr_dispatch(9) from the MD clock
interrupt handler. The CPUs complete work and rearm their local
interrupt clock, if any, during the dispatch.
5. Repeat step (4) until the system shuts down, suspends, or hibernates.
6. During resume, the primary CPU calls inittodr(9) and advances the
system uptime.
7. Go to step (2). This time around, clockintr_cpu_init(9) also
advances the work schedule on the calling CPU to skip events that
expired during suspend. This prevents a "thundering herd" of
useless work during the first clock interrupt.

In the long term, we need an MI clock interrupt scheduler in order to
(1) provide control over the clock interrupt to MI subsystems like
timeout(9) and dt(4) to improve their accuracy, (2) provide drivers
like acpicpu(4) a means for slowing or stopping the clock interrupt on
idle CPUs to conserve power, and (3) reduce the amount of duplicated
code in the MD clock interrupt code.

Before we can do any of that, though, we need to switch every platform
over to using clockintr(9) and do some cleanup.

Prompted by "the vmm(4) time bug," among other problems, and a
discussion at a2k19 on the subject. Lots of design input from
kettenis@. Early versions reviewed by kettenis@ and mlarkin@.
Platform-specific help and testing from kettenis@, gkoehler@,
mlarkin@, miod@, aoyama@, visa@, and dv@. Babysitting and spiritual
guidance from mlarkin@ and kettenis@.

Link: https://marc.info/?l=openbsd-tech&m=166697497302283&w=2

ok kettenis@ mlarkin@

date 2022-11-05T19:29:46Z
author cheloha
files src/sys/kern/kern_clockintr.c log diff annotate
src/sys/kern/kern_sysctl.c log diff annotate
src/sys/kern/subr_suspend.c log diff annotate
src/sys/sys/clockintr.h log diff annotate
src/sys/sys/sysctl.h log diff annotate
message clockintr(9): initial commit

clockintr(9) is a machine-independent clock interrupt scheduler. It
emulates most of what the machine-dependent clock interrupt code is
doing on every platform. Every CPU has a work schedule based on the
system uptime clock. For now, every CPU has a hardclock(9) and a
statclock(). If schedhz is set, every CPU has a schedclock(), too.

This commit only contains the MI pieces. All code is conditionally
compiled with __HAVE_CLOCKINTR. This commit changes no behavior yet.

At a high level, clockintr(9) is configured and used as follows:

1. During boot, the primary CPU calls clockintr_init(9). Global state
is initialized.
2. Primary CPU calls clockintr_cpu_init(9). Local, per-CPU state is
initialized. An "intrclock" struct may be installed, too.
3. Secondary CPUs call clockintr_cpu_init(9) to initialize their
local state.
4. All CPUs repeatedly call clockintr_dispatch(9) from the MD clock
interrupt handler. The CPUs complete work and rearm their local
interrupt clock, if any, during the dispatch.
5. Repeat step (4) until the system shuts down, suspends, or hibernates.
6. During resume, the primary CPU calls inittodr(9) and advances the
system uptime.
7. Go to step (2). This time around, clockintr_cpu_init(9) also
advances the work schedule on the calling CPU to skip events that
expired during suspend. This prevents a "thundering herd" of
useless work during the first clock interrupt.

In the long term, we need an MI clock interrupt scheduler in order to
(1) provide control over the clock interrupt to MI subsystems like
timeout(9) and dt(4) to improve their accuracy, (2) provide drivers
like acpicpu(4) a means for slowing or stopping the clock interrupt on
idle CPUs to conserve power, and (3) reduce the amount of duplicated
code in the MD clock interrupt code.

Before we can do any of that, though, we need to switch every platform
over to using clockintr(9) and do some cleanup.

Prompted by "the vmm(4) time bug," among other problems, and a
discussion at a2k19 on the subject. Lots of design input from
kettenis@. Early versions reviewed by kettenis@ and mlarkin@.
Platform-specific help and testing from kettenis@, gkoehler@,
mlarkin@, miod@, aoyama@, visa@, and dv@. Babysitting and spiritual
guidance from mlarkin@ and kettenis@.

Link: https://marc.info/?l=openbsd-tech&m=166697497302283&w=2

ok kettenis@ mlarkin@

date 2022-11-05T22:33:11Z
author jan
files src/sys/net/if_pfsync.c log diff annotate
src/sys/netinet/ip_ipsp.c log diff annotate
message Fix kernel build without IPSEC option.

ok deraadt@

date 2022-11-06T11:44:30Z
author kettenis
files src/sys/arch/arm64/arm64/support.S log diff annotate
src/sys/arch/arm64/arm64/trap.c log diff annotate
src/sys/arch/arm64/conf/files.arm64 log diff annotate
src/sys/arch/arm64/dev/efi_machdep.c log diff annotate
message Make EFI runtime calls more robust on arm64 as well. While I have not seen
any broken implementations yet, Linux developers claim that arm64 machines
intended to run Windows are not much better than x86 machines. And I
totally believe that.

ok patrick@

date 2022-11-06T12:01:52Z
author patrick
files src/sys/arch/arm64/dev/simplebus.c log diff annotate
message While the Qualcomm GENI isn't just a simplebus(4), as one can e.g. select
between DMA or FIFO mode for the i2c/serial devices, we can treat it as one
for now.

ok kettenis@

date 2022-11-06T12:12:45Z
author patrick
files src/sys/arch/arm64/conf/GENERIC log diff annotate
src/sys/arch/arm64/conf/RAMDISK log diff annotate
src/sys/dev/fdt/files.fdt log diff annotate
src/sys/dev/fdt/qcdwusb.c log diff annotate
message Add glue for the USB3 controller on the Lenovo x13s.

ok kettenis@

date 2022-11-06T12:14:52Z
author patrick
files src/sys/arch/arm64/dev/smmu_fdt.c log diff annotate
message Disable smmu(4) for Qualcomm SC8280XP on FDT attachment like we already do
on ACPI.

ok kettenis@

date 2022-11-06T13:01:22Z
author aoyama
files src/sys/arch/luna88k/dev/lunafb.c log diff annotate
src/sys/arch/luna88k/dev/omrasops.c log diff annotate
message Change character drawing depth when 'pseudo' framebuffer depth is changed.

Tested on LUNA-88K2 with 4bpp/8bpp framebuffer by me.

date 2022-11-06T13:03:52Z
author dlg
files src/sys/net/pf_ioctl.c log diff annotate
src/sys/sys/conf.h log diff annotate
message make /dev/pf a clonable device.

this provides a 1:1 relationship of pfopen() calls to pfclose()
calls. in turn, this makes it a lot easier to track stuff allocated
by a process and then clean it up if that process goes away
unexpectedly. the unique dev_t provided by the cloning machinery
gives us a good identifier to track this state with too.

discussed with h2k22
ok sashan@
deraadt@ agrees this is a good time to put this in

date 2022-11-06T15:33:58Z
author patrick
files src/sys/arch/arm64/conf/GENERIC log diff annotate
src/sys/arch/arm64/conf/RAMDISK log diff annotate
src/sys/conf/files log diff annotate
src/sys/dev/acpi/files.acpi log diff annotate
src/sys/dev/acpi/qcgpio.c log diff annotate
src/sys/dev/fdt/files.fdt log diff annotate
src/sys/dev/fdt/qcgpio_fdt.c log diff annotate
message Add FDT-based attachment for qcgpio(4).

ok kettenis@

date 2022-11-06T15:36:13Z
author patrick
files src/sys/arch/arm64/conf/GENERIC log diff annotate
src/sys/arch/arm64/conf/RAMDISK log diff annotate
src/sys/conf/files log diff annotate
src/sys/dev/acpi/files.acpi log diff annotate
src/sys/dev/acpi/qciic.c log diff annotate
src/sys/dev/fdt/files.fdt log diff annotate
src/sys/dev/fdt/qciic_fdt.c log diff annotate
message Add FDT-based attachment for qciic(4).

ok kettenis@

date 2022-11-06T18:05:05Z
author dlg
files src/sys/net/if_pfsync.c log diff annotate
src/sys/net/if_pfsync.h log diff annotate
src/sys/net/pf.c log diff annotate
src/sys/net/pf_ioctl.c log diff annotate
src/sys/net/pf_norm.c log diff annotate
src/sys/net/pfvar.h log diff annotate
message move pfsync_state_import in if_pfsync.c to pf_state_import in pf.c

this is straightening the deck chairs. the state import and export
code are used by both the pf ioctls and pfsync, but the export code
is in pf.c and the import code is in if_pfsync. if pfsync was
disabled then the ioctl stuff wouldnt link.

moving the import code to pf.c makes it more symmetrical(?) and
robust.

tweaks and ok from kn@ sashan@

date 2022-11-06T18:17:56Z
author mbuhl
files src/sys/dev/pci/if_em.c log diff annotate
src/sys/dev/pci/if_em_hw.h log diff annotate
message Enable IPv4, TCP, and UDP checksum offloading, and VLAN HW tagging
for em 82575, 82576, i350, and i210.

Additional testing by Hrvoje Popovski
OK dlg@

date 2022-11-06T19:00:37Z
author dv
files src/sys/arch/amd64/amd64/Attic/vmm.c log diff annotate
message vmm(4): allocate reference for vm and vcpu SLISTs

Mischa Peters reported a performance regression in 7.2 when hosting
numerous guests under vmm(4). While iterating through the list of
vms during servicing an ioctl, vmm was triggering excessive wakeup
calls due to hitting zero refcnt.

Much guidance from dlg@ and testing from Mischa. OK mlarkin@.

date 2022-11-06T21:31:24Z
author dlg
files src/sys/net/if_pfsync.c log diff annotate
message get rid of pfsync_state_export.

it wraps pf_state_export and has the same arguments and return type.
pfsync can just call pf_state_export instead.

ok clang

date 2022-11-06T21:34:01Z
author kn
files src/sys/net/if_pfsync.c log diff annotate
message Constify pfsync_acts[]; OK dlg

date 2022-11-07T01:41:57Z
author guenther
files src/sys/arch/amd64/amd64/copy.S log diff annotate
src/sys/arch/amd64/amd64/efi_machdep.c log diff annotate
src/sys/arch/amd64/amd64/trap.c log diff annotate
src/sys/arch/amd64/conf/ld.script log diff annotate
message In kpageflttrap(), validate a non-NULL pcb_onfault against an array
of permitted addresses, done via .nofault* sections that end up in
the linked kernel's rodata.

ok deraadt@ kettenis@

date 2022-11-07T09:43:04Z
author mpi
files src/sys/arch/arm64/arm64/db_interface.c log diff annotate
src/sys/arch/arm64/arm64/pmap.c log diff annotate
src/sys/arch/arm64/arm64/trap.c log diff annotate
src/sys/arch/arm64/include/pmap.h log diff annotate
message Implement db_write_text/bytes() which add support for ddb(4)'s breakpoints.

Based on a diff from gerhard@, ok kettenis@

date 2022-11-07T10:21:17Z
author krw
files src/sys/kern/subr_disk.c log diff annotate
message Nuke last references to d_drivedata.

date 2022-11-07T10:33:22Z
author krw
files src/sys/sys/disklabel.h log diff annotate
message Rename unreferenced field d_drivedata to smoke out any well
hidden uses.

date 2022-11-07T10:45:39Z
author kn
files src/sys/netinet6/nd6.c log diff annotate
message Run the ND6 expiry timer without kernel lock

Added in 2017 to
Reduce contention on the NET_LOCK() by moving the nd6 address expiration
task to the `softnettq`.

This should no longer be needed thanks to sys/net/if.c r1.652 in 2022:
Activate parallel IP forwarding. Start 4 softnet tasks. Limit the
usage to the number of CPUs.

Nothing in nd6_expire() or nd6_expire_timer_update() requires protection by
the kernel lock.

The interface list and per-interface address lists remain protected by the
net lock.

Tests by Hrvoje
OK mpi

date 2022-11-07T11:22:55Z
author yasuoka
files src/sys/netinet/tcp_input.c log diff annotate
src/sys/netinet/tcp_output.c log diff annotate
src/sys/netinet/tcp_subr.c log diff annotate
src/sys/netinet/tcp_timer.c log diff annotate
src/sys/netinet/tcp_timer.h log diff annotate
src/sys/netinet/tcp_usrreq.c log diff annotate
src/sys/netinet/tcp_var.h log diff annotate
message Modify TCP receive buffer size auto scaling to use the smoothed RTT
(SRTT) instead of the timestamp option. Since the timestamp option is
disabled on some OSs (eg. Windows) or dropped by some
firewalls/routers, in such a case the window size had been fixed at
16KB, this limits throughput at very low on high latency networks.
Also replace "tcp_now" from 2HZ tick counter to binuptime in
milliseconds to calculate the SRTT better.

tested by krw matthieu jmatthew dlg djm stu stsp
ok claudio

date 2022-11-07T12:29:12Z
author dv
files src/sys/arch/amd64/amd64/Attic/vmm.c log diff annotate
message vmm(4): set RAX guest register state based on VMCB

The read/write register routines for SVM didn't acknowledge RAX in
the VMCB as the de facto RAX state. When writing gprs, vmm should
update RAX in the VMCB. When reading, it should be setting the guest
regs state based on the VMCB.

Needed for proper mmio emulation in userland.

ok mlarkin@

date 2022-11-07T12:56:38Z
author dlg
files src/sys/net/pf.c log diff annotate
src/sys/net/pf_ioctl.c log diff annotate
src/sys/net/pfvar.h log diff annotate
src/sys/net/pfvar_priv.h log diff annotate
message move pf_purge out from under the kernel lock and avoid the hogging cpu

this also avoids holding NET_LOCK too long.

the main change is done by running the purge tasks in systqmp instead
of systq. the pf state list was recently reworked so iteration over
the state can be done without blocking insertions.

however, scanning a lot of states can still take a lot of time, so
this also makes the state list scanner yield if it has spent too
much time running.

the other purge tasks for source nodes, rules, and fragments have
been moved to their own timeout/task pair to simplify the time
accounting.

in my environment, before this change pf purges often took 10 to
50ms. the softclock thread runs next to it often took a similar
amount of time, presumably because they ended up spinning waiting
for each other. after this change the pf_purges are more like 6 to
12ms, and dont block softclock. most of the variability in the runs
now seems to come from contention on the net lock.

tested by me sthen@ chris@
ok sashan@ kn@ claudio@

date 2022-11-07T14:25:44Z
author robert
files src/sys/kern/kern_sysctl.c log diff annotate
src/sys/kern/subr_autoconf.c log diff annotate
src/sys/sys/sysctl.h log diff annotate
message introduce a new kern.autoconf_serial sysctl that can be used by userland
to monitor state changes of the kernel device tree

input from dnd ok dlg@, deraadt@

date 2022-11-07T16:35:11Z
author dlg
files src/sys/net/pf.c log diff annotate
message revert "move pf_purge out from under the kernel lock".

hrvoje popovski showed me pfsync blowing up with this. im backing
it out quickly in case something else at the hackathon makes it
harder to do later.

kn@ agrees

date 2022-11-07T16:35:12Z
author dlg
files src/sys/net/pf_ioctl.c log diff annotate
src/sys/net/pfvar.h log diff annotate
src/sys/net/pfvar_priv.h log diff annotate
message revert "move pf_purge out from under the kernel lock".

hrvoje popovski showed me pfsync blowing up with this. im backing
it out quickly in case something else at the hackathon makes it
harder to do later.

kn@ agrees

date 2022-11-07T18:56:20Z
author kettenis
files src/sys/arch/arm64/dev/aplintc.c log diff annotate
message Implement the "halt" IPI.

ok patrick@

date 2022-11-07T19:07:31Z
author patrick
files src/sys/dev/ofw/ofw_misc.c log diff annotate
message The ARM SMMUv2 does actually support #iommu-cells = <2>, where the second
cell is used as a mask for SMR to match a number of IDs. So far we have
asserted that it's always 1, so loosen the restriction and pass both cells
instead of only the sid.

ok kettenis@

date 2022-11-07T20:15:44Z
author patrick
files src/sys/dev/fdt/dwpcie.c log diff annotate
message Add support for the PCIe controller on the Qualcomm SC8280XP. Thankfully
UEFI already initializes those, so we can simply just make use of that.

That said, the ctrl/dbi region isn't the first in the register list, so
instead try and look it up first and use it if available. Furthermore,
the ATU region isn't part of the ctrl/dbi region, so if we are able to
retrieve a separate reg for the ATU, use that instead. Some reshuffling
is necessary to make that work.

Tested on my Lenovo x13s and the MacchiatoBin
ok kettenis@

date 2022-11-07T20:28:23Z
author patrick
files src/sys/dev/fdt/gpiokeys.c log diff annotate
message The gpiokeys(4) 'label' property seems to be optional. If we don't have
any, don't try and print it, and especially don't error out.

Tested on Lenovo x13s (myself) and Pinebook Poop (kn@)
ok kn@