Age | Commit message (Collapse) | Author |
|
It looks like twe was refactored in 2011 and one error check was missed.
While the device may no longer be widely used, this helps reduce the
coverity alert count.
CID 1453371
ok krw@
|
|
the limit after every character, and wait for the FIFO to empty before
sending out more bytes. With this I can now use ipmitool(1) to change
IPMI passwords on the Ampere eMAG.
ok kettenis@
|
|
a botched merge meant i was posting the previously used slot to the
chip to process before posting the current slot.
ok deraadt@
|
|
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.
|
|
This fixes an issue introduced with our workaround for bogus michael
mic failures seen when hardware receives control frames. We do need
to ignore the michael mic failure in this case but we should not call
ieee80211_find_rxnode() on such frames unconditionally. Do this only
if the transmitter's address has already been cached.
When ieee80211_find_rxnode() is called with an unknown source MAC address
it will create a new entry in the node cache. Frames flagged as incorrectly
received by hardware should not be passed to ieee80211_find_rxnode() without
further verification to avoid creating bogus cache entries based on corrupt
frame headers.
Prompted by an issue seen by kettenis@ on arm64 where the node cache
contains bogus entries. This change doesn't fix the issue but it is
a step in the right direction regardless since it fixes one possible
cause for the issue.
ok kettenis@
tested by myself and Mikolaj Kucharski
|
|
brackets to manage operator precedence. Otherwise we'd attempt to sync
more than needed, which doesn't cause issues, but it's still wrong.
ok dlg@ jmatthew@
|
|
hopefully big endian still works.
|
|
"makes sense" jmatthew@
|
|
OK jsg@ deraadt@
|
|
This makes the NVMe storage on the Apple M1 machines actually work!
ok patrick@, dlg@
|
|
|
|
this paves the way for supporting the apple nvme storage controllers.
hopefully most of the remaining work on that is in the bus glue for
those controllers and this code won't need more tweaks.
hibernate still works, but it's relying on luck at the moment.
hibernate on arm64 and the apple controllers in particular will
almost certainly require more work here.
ok jmatthew@
|
|
the Apple NVME Storage (ans) controller is almost but not quite a
vanilla nvme controller. one difference is that it doesnt attach
to a pci bus, so it will need custom bus glue to attach on those
machines. the other differences are around command submission.
vanilla nvme command submission is done via rings where the host
fills in one or more entries on the ring and then posts where the
ring is up to in a doorbell. ans nvme command submission is done
via an array of command slots where the host picks a slot and then
posts every slot number it fills in to a doorbell instead. this is
kind of clever because once a command slot is allocated, you don't
need any coordination between multiple cpus using that array of
slots to fill in and post the entry they were allocated. on the
other hand, it's different, so the code needs to be specialised.
ans also seems to have some weird iommu thing that needs to be
maintained as commands are posted and completed.
the nvme_ops struct will allow vanilla and ans controllers to provide
their own backens for these different semantics.
ok jmatthew@
|
|
ok jmatthew@
|
|
|
|
|
|
ok jmatthew@
|
|
this allows nvme bus glue to use the macros too.
ok jmatthew@
|
|
Timeout callback functions need to be void (*)(void *). No need to cast
the function pointer if fixing the type is trivial.
ok kettenis@
|
|
Also, increment the error counter when an unexpected fragment is seen.
OK claudio@
|
|
|
|
ok jmc@ kevlo@
|
|
from Stephen Taylor who tested on a ThinkCenter M75n Nano IoT
with RTL8111FP-CG
|
|
From miod@
|
|
Clients using Tx aggregation against an athn(4) hostap will send block ack
request control frames whenever they need to sync their Tx block ack window.
athn(4) dropped such frames due to bogus Michael MIC failures reported by
the hardware decryption engine. Ignore such failures for control frames in
order to fix athn(4) hostap mode against clients which use Tx aggregation.
Additionally, only report Michael MIC failures to the net80211 stack if the
offending client is actually using TKIP, which would also have prevented the
problem since we require CCMP as group cipher in our default configuration.
Problem reported and fix tested by kettenis@
|
|
This is what was tested, but I forgot to commit a file.
|
|
OK deraadt@
|
|
|
|
contents executable using pmap_kenter_pa(9) since uvm stops us from doing
so using higher-level interfaces (for good reasons).
Maintaining W^X of course!
ok mpi@
|
|
from miod@
|
|
board's compatible string, when printing an error about not being able
to load the firmware. Since most NVRAM files are board- or package-
specific, having the compatible makes it easier for us to find the
correct files, so that we can add them to the bwfm-firmware port.
ok kurt@
|
|
Tests:
AR5418: Uwe Werler
AR9280: kn, jmatthew, Lauri Tirkkonen, Scott Bennett, Mikolaj Kucharski
AR9285: kevlo, trondd, myself
ok deraadt@
|
|
Fixes a problem where the hardware would end up using a different channel
than the one selected by net80211.
Found while investigating issues reported by trondd testing my athn RA patch.
ok deraadt@
|
|
|
|
ok claudio@ deraadt@
|
|
nvram files used for the different Apple devices. The device tree and
the OTP hold the information which of those we will have to use. For
now this information will simply be printed, but depending on how we
choose to do the firmare distribution we could use it for loadfirmware().
|
|
to load the CLM blob like the SDIO backend already does. Additionally it
is also helpful for the PCIe backend to try a file named after the device
tree compatible. Thus refactor the SDIO code and make it available for
both SDIO and PCIe.
|
|
the same time.
|
|
This also fixes two NULL ptr derefs in later code path.
OK patick@, krw@
|
|
the first cut of this diff was made with coccinelle using this spatch:
@rule@
type caddr_t;
expression m, off, len, cp;
@@
-m_copydata(m, off, len, (caddr_t)cp)
+m_copydata(m, off, len, cp)
i had fix it's opinionated idea of formatting by hand though, so
i'm not sure it was worth it.
ok deraadt@ bluhm@
|
|
|
|
|
|
should ensure that we don't read a stale command ID and complete the
wrong scsi io. powerpc64 base builds were crashing like this fairly
regularly.
ok deraadt@ dlg@
|
|
little bit more to do though before it can be enabled.
|
|
This works around an issue on the BCM43602 where ieee80211 calls
this too quickly during authentication and triggers "unexpected
pairwise key update" errors.
ok patrick
|
|
OK dlg@, bluhm@
No Opinion mpi@
Not against it claudio@
|
|
In an_wait() we spin for up to (3 * hz) iterations awaiting AN_EV_CMD.
If we don't see it in a given iteration we block for up to 1 tick and
spin again.
jsg@ suggests instead blocking for 100ms at a time for up to 30
iterations.
Discussed with mpi@. Idea from jsg@. Murmurs of agreement from
claudio@ and kettenis@.
probably ok jsg@
|
|
get_routefd() and set_user().
|
|
in preparation for upcoming ACPI-attachment.
ok kettenis@
|
|
|