Age | Commit message (Collapse) | Author |
|
hardware support changes include
inteldrm: better support for tiger lake
amdgpu: support for navi12, navi21 "sienna_cichlid", arcturus
amdgpu: support for cezanne "green sardine" ryzen 5000 apu
Thanks to the OpenBSD Foundation for sponsoring this work,
patrick@ for helping adapt rockchip drm, kettenis@ and mpi@
for uvm discussions and various testers.
|
|
no matching device, fall back to xhci(4)'s PHY configuration code.
ok kettenis@
|
|
Rockchip RK3399. While the PHY allows switching between combinations
of USB3 and DisplayPort, this driver enables only USB3 functionality.
This allows USB3 devices to show up on machines where previously only
USB2 devices showed up. Driver was taken from FreeBSD and adjusted to
fit into our code base.
ok kettenis@
|
|
OK kettenis@
|
|
Suggested by and OK kettenis@
|
|
used by the hifive unmatched device tree in mainline linux and u-boot
ok visa@
|
|
This lets the driver utilize 64-bit DMA on hardware that supports it.
Currently, riscv64 does not constrain DMA-reachable memory to the 32-bit
range. This caused memory errors with cad(4) on machines that have RAM
above 4GB in the physical address space.
Prompted by Mickael Torres
OK kettenis@
|
|
From Mickael Torres.
|
|
devices, this isn't really the case. It depends on the bus topology of
how devices are connected. In the case of PCIe, devices are assigned
addresses (in PCI BARs) from the PCI address spaces. Now if we take an
address from one of these address spaces for our IOVA, transfers from
from a PCI device to that address will terminate inside of the PCI bus.
This is because from the PCI buses' point-of-view, the address we chose
is part of its address space. To make sure we don't allocate addresses
from there, reserve the PCI addresses in the IOVA.
Note that smmu(4) currently gives each device its own IOVA. So the PCI
addresses will be reserved only in IOVA from PCI devices, and only the
addresses concerning the PCI bus it is connected to will be reserved.
All other devices behind an smmu(4) will not have any changes to their
IOVA.
ok kettenis@
|
|
|
|
ok patrick@
|
|
ok deraadt@
|
|
messages on the HiFive Unmatched.
ok patrick@
|
|
controller and the latter is a driver for the Dialog DA9063 PMIC. The
dapmic(4) driver currently supports the integrated RTC and also provides
support for resetting and powering down an application processor. This
functionality is used to support rebooting the SiFive Unmatched board.
ok deraadt@
|
|
splitting the configuration space access window in a part for type 0 and
a part for type 1 commands, use a single window. The code already flips
between type 0 and type 1 so there is no benefit in having this complication.
Fixes the PCIe host bridge on the SiFive FU740 SoC.
ok drahn@, patrick@
|
|
|
|
pointed out by jsg@
|
|
SiFive FU740 SoC.
ok drahn@
|
|
change it's also not necessary to remember the old lladdr, since the
old one will be purged automatically prior to installing the current
set of multicast addresses.
Complaint filed by matthieu@
|
|
starting to see firmware that uses this instead of the "10gbase-kr" that
was used before to describe the PHYs. So recognize both and treat that
the same.
ok deraadt@, patrick@
|
|
OK jsg@ deraadt@
|
|
This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.
OK kettenis@
|
|
going to hurt, but might save you if you run the machine badly into swap.
Proposed by kettenis@
|
|
i.MX machines with a recent U-Boot come up with the watchdog enabled, so
we have to regularly ping it to make sure the watchdog doesn't reset us.
The watchdog's timeout can be configured in 0.5s steps to a maximum of
128s. Set it to the maximum, and schedule a timeout which reloads the
counter every 120s.
This only needs to be done if the watchdog is enabled when we boot up.
Tested on Cubox-i (armv7) and MNT Reform (arm64)
ok kettenis@
|
|
ok kettenis@
|
|
a driver for the Apple "sera" SPMI power management unit that contains
the RTC on Apple M1 systems.
ok patrick@
|
|
|
|
ok patrick@
|
|
pciecam(4) implementation hidden away in arch/armv7/vexpress.
Unbreaks armv7 kernel builds.
|
|
ok deraadt@
|
|
preparation for sharing PCIe host bridge drivers between arm64 and riscv64.
ok mpi@, mlarkin@, patrick@
|
|
and handle a few more device properties seen on the beaglev board.
ok jsg@
|
|
ok kettenis@
|
|
the "ciu" clock is missing as mentioned in the devicetree binding.
ok kettenis@
|
|
OK kettenis@
|
|
NS16550 clones is a bit of a mess. There are FDT properties that describe
these but these proprties are optional for some variants and the default
values depend on the compatible string being used. Most variants that have
shown up in the ARM world use 32-bit access and spacing. But true NS16550A
implementations of course use 8-bit access and spacing. So look at the
compatible strings to set up the appropriate defaults. Makes the "true"
NS16550A implemented by QEMU work for RISCV targets.
ok jsg@, drahn@
|
|
from miod@
|
|
Tested on Xilinx Zynq-7000.
Input and OK kettenis@
|
|
Goldfish Android virtual hardware platform. Used for the RTC on
qemu-system-riscv64 -M virt.
feedback and ok kettenis@
|
|
makes reboot and poweroff work with qemu
ok kettenis@
|
|
bindings in mainline Linux. Necessary to support the QEMY RISCV target.
ok jsg@
|
|
|
|
Apple M1. With this vio(4) shows up and we can properly install and
use OpenBSD as VM.
"not afraid of the virtio diff" deraadt@
"okie dokie" jcs@
|
|
based on the audio graph description that uses ports and endpoints in
the device tree.
ok patrick@
|
|
Fixes audio on the pinebook pro.
ok kn@, patrick@
|
|
simpleaudio_set_params() calls set_params() which reads sysclk off the
"i2s_clk" property before it sets that very clock's rate with
dd_set_sysclk() (in case there's multiplier specified).
Hence reverse the order so set_params() can pick up the newly set rate.
The rate is still off on the Pinebook Pro, but I came across this when
reading the code; this also matches NetBSD's sys/dev/fdt/ausoc.c r1.6
"Set sysclk rate at set_format time, so the link set_format callback can
read the new sysclk".
OK kettenis patrick
|
|
|
|
timings, and if the device tree tells us to. While the change was done to
reduce diff, it introduced a regression on some devices, hence this revert.
Reported and tested by dtucker@
Tested by kettenis@ and myself
|
|
Never used since import and probably just ported over from NetBSD as-is;
"design-capacity" does not exist in the device tree binding.
"monitor-interval-ms" defaults to 250ms as per binding and could be used
in the sensor_task_register() call, but our framework only supports whole
seconds and there's no advantage over our current fixed poll interval of 5s.
OK patrick
|
|
The current code looks for the nonexistent "cellwise,alert-level" property
and falls back to zero as threshold (like the original NetBSD code).
It also updates the CONFIG register with that very threshold to let the
hardware set a bit and thus alert us when it has been reached.
Since our sensor framework is designed to poll every N seconds and this
driver does not actually look at whether the hardware alerted, neither
using a default threshold of zero nor updating the hardware with it makes
sense.
Remove the alert level code and simply map >50%, >25% and <=25% of
remaining battery life to apm(4)'s "high", "low" and "critical" battery
state respectively; this matches exactly what acpibat(4) does and provides
more meaningful sensor readings without relying on nonexistent device tree
bindings.
Feedback OK patrick
|