OpenBSD cvs log

created 2023-04-30T19:16:42Z
begin 2023-04-23T00:00:00Z
end 2023-04-24T00:00:00Z
path src/sys
commits 10

date 2023-04-23T00:01:40Z
author cheloha
files src/sys/kern/kern_clockintr.c log diff annotate
message clockintr_advance: don't use cached uptime when called outside of dispatch

When clockintr_advance() is eventually used by outside callers, there
will be no way to know how fresh cq_uptime is. If we're not running
in the dispatch loop, we need to call nsecuptime(9) to get a high-res
uptime before advancing a clockintr.

date 2023-04-23T00:08:36Z
author cheloha
files src/sys/kern/kern_clockintr.c log diff annotate
message clockintr_cpu_init: don't update cached uptime

clockintr_advance() now calls nsecuptime(9) when called outside
clockintr_dispatch(). There is no need for clockintr_cpu_init() to
update the queue's cached uptime (cq->cq_uptime) to ensure it is
fresh.

date 2023-04-23T00:20:26Z
author dlg
files src/sys/conf/files log diff annotate
src/sys/dev/acpi/files.acpi log diff annotate
src/sys/dev/acpi/iosf_acpi.c log diff annotate
src/sys/dev/ic/iosf.c log diff annotate
src/sys/dev/ic/iosfvar.h log diff annotate
src/sys/dev/pci/files.pci log diff annotate
src/sys/dev/pci/iosf_pci.c log diff annotate
message add iosf(4), a driver for the Intel OnChip System Fabric

The OnChip System Fabric is mostly an implementation detail on a
bunch of Intel SoC platforms we usually don't care about, except
on some of these machines there are devices shared between the
kernel and the platform that need to coordinate. The iosf(4) driver
allows the kernel to talk via a mailbox interface to take and
release a semaphore that the hardware also uses to lock around
accesses to some components.

There are two ways to talk to the mailbox interface, one via mmio
ops on an INT33BD acpi device. The other is via magic pci conf space
operations on the pci host device. This provides a generic iosf
driver with attachment glue for both acpi and pci so either can be
used. According to linux, the pci ops are a lot more reliable and
less buggy, so if both acpi and pci are available we will prefer
the pci ops after they attach.

I found this because I got a Dell Wyse 3040, which is a cherry
trail/braswell system that has an acpitz(4) which talks to a tipmic(4)
device attached to dwiic(4) on acpi. This box almost always locked
up by the time it got to showing the console login prompt, and it
turns out one of the reasons for this is because acpitz was touching
the tipmic device at the same time the powerunit on the platform
was also trying to use it. The tipmic device lists the iosf mailbox
as a dependency, and the dwiic controller has a _SEM property, both
of which indicate we should use an iosf device to coordinate iic
ops when talking to the tipmic.

This adds the code, but doesn't wire it into dwiic or the build yet.

help from patrick@ jsg@ kettenis@
ok kettenis@ patrick@

date 2023-04-23T00:33:02Z
author dlg
files src/sys/dev/acpi/dwiic_acpi.c log diff annotate
message add support for coordinating i2c bus access with iosf(4)

if the acpi node has a _SEM property, add wrappers around the i2c
bus acquire and release handlers to try and call the iosf provided
hardware semaphore ops. this means bus accesses can be coordinate
with other parts of the platform such as the punit.

this stops my Dell Wyse 3040 from locking up.

ok kettenis@ patrick@

date 2023-04-23T00:49:04Z
author dlg
files src/sys/dev/pci/drm/include/asm/iosf_mbi.h log diff annotate
message iosf(4) implements functionality that was stubbed out in drm

date 2023-04-23T00:50:29Z
author dlg
files src/sys/arch/amd64/conf/GENERIC log diff annotate
message enable iosf(4)

this should help some braswell and bay trail machines. it definitely
helps my dell wyse 3040 avoid locking up.

ok kettenis@ patrick@

date 2023-04-23T06:22:15Z
author dlg
files src/sys/dev/ic/dwqe.c log diff annotate
src/sys/dev/ic/dwqevar.h log diff annotate
message rename sc_tick to sc_phy_tick. no functional change.

date 2023-04-23T10:29:35Z
author patrick
files src/sys/dev/pv/viogpu.c log diff annotate
message Stop setting ri->ri_bs to prevent a panic caused by rasops accessing its
uninitialized content. When we rasops_init() with RI_VCONS, a new screen
is allocated. If ri->ri_bs is set, this will be copied. Otherwise a new
one will be allocated and filled with ASCII spaces. Copying the ri->ri_bs
is useful in case we have an early console which contents we want to keep.
As we do not have an early console here, there's no point in setting it at
the moment.

With this my Hetzner arm64 VM doesn't panic anymore.

ok jcs@ kettenis@

date 2023-04-23T22:48:03Z
author jmatthew
files src/sys/dev/pci/if_aq_pci.c log diff annotate
message Prepare for adding Atlantic 2 support by renaming functions and defines
specific to Atlantic 1, shuffling some of the setup code, and adding
get_mac_addr to the firmware ops struct.

ok dlg@

date 2023-04-23T22:57:23Z
author jmatthew
files src/sys/dev/pci/if_aq_pci.c log diff annotate
message Adjust some printfs in the attach code path to make more sense,
and include the mac address of the interface on the attach line.

ok dlg@