netinet6: allow binding to anycast addresses
the restriction on sending packets from anycast source addresses was
removed in RFC4291, so there's no reason to forbid binding to such
addresses. this allows anycast services (e.g., DNS) to actually use
anycast addresses, which was previously impossible.
RFC4291 also removes the restriction that only routers may configure
anycast addresses; this was never enforced in code but was documented in
ifconfig.8. update ifconfig.8 to document both changes.
PR: 285545
Reviewed by: des, adrian
Approved by: des (mentor)
Differential Revision: https://reviews.freebsd.org/D49905
HBSD: Resolve merge conflict
With commit 9c4f1497dae7832e2727682e9161ca9572e56dfe, FreeBSD moved the
object file suffix transformation rules into a separate file. As part of
resolving this merge conflict, we need to remove references to the
PIE-related objects (.pieo and similar).
As part of the 2013-2015 ASLR work, we came up with a different method
for building with PIC/PIE. As such, we don't need to use FreeBSD's .pieo
and related.
Signed-off-by: Shawn Webb <shawn.webb at hardenedbsd.org>
mpi3mr: configure larger max I/O size if the HBA firmware supports it
The max I/O size that an mpi3mr HBA supports is reported in the IOCFacts
structure (with 0 representing the legacy max I/O size of 1 MB).
By default, set the max I/O size of devices attached to mpi3mr controllers
to the smaller of the HBA's max I/O size and the kernel's maxphys.
Allow this default to be overriden by a global tunable
"hw.mpi3mr.max_sgl_entries" or by a per-controller tunable
"dev.mpi3mr.N.max_sgl_entries".
Sponsored by: Netflix
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D49090
libefivar: Simplify Z / zero define
This really onl needs to be one zero long for the entire structure to be
initialized. Use this form instead.
Sponsored by: Netflix
bnxt_en: Thor2 Ring counters not incrementing during traffic
The ctx_hw_stats_ext DMA address was not correctly passed to the
firmware during the HWRM_STAT_CTX_ALLOC allocation, causing stats to not
populate for Thor2. Passing the correct DMA length resolved the issue
MFC-After: 3 days
Differential-Revision: https://reviews.freebsd.org/D49732
bnxt_en: Unhandled async event type 76
The completion event type 76 is not supported by the driver. Instead of
flooding the dmesg with "Unknown event type" messages when this event
occurs, move the print under debug level.
MFC-After: 3 days
Differential-Revision: https://reviews.freebsd.org/D49731
bnxt_en: Thor2 Specific Doorbell related changes
Doorbell offset :
For Thor controllers doorbell offset was always hardcoded to 0x10000 for
PF devices where as for Thor2 controllers doorbell offset will be
legacy_l2_db_size_kb value provided by firmware through hwrm_func_qcfg
command.
CQ Toggle & Epoch bits support :
In order to handle out of order doorbell handling as part of Dropped
Doorbell Recovery, HW expects two changes in the driver in data path.
- First change is the epoch bit changes while updating the producer
indexes of Tx. This epoch bit is toggled by the driver, each time the
queue is wrapped for that specific doorbell.
- The second change is to add a toggle bit pair to each ARM type
doorbell. This includes the CQ_ARMALL, CQ_ARMSE, CQ_ARMENA
doorbells. The toggle bit pair in context is incremented by the chip
[12 lines not shown]
if_bnxt: add support for RX completion record type V3
Added support for RX V3 completion record types-
CMPL_BASE_TYPE_RX_TPA_START_V3 and CMPL_BASE_TYPE_RX_L2_V3.
MFC-After: 3 days
Differential-Revision: https://reviews.freebsd.org/D49728
bnxt_en: Add backing store V2 support
Add backing store V2 support.
Thor2 controllers supports only the V2 support.
MFC-After: 3 days
Reviewed-by: Warner Losh <imp at FreeBSD.org>
Differential-Revision: https://reviews.freebsd.org/D49727
libefivar: Prefer EFI_GUID to GUID
There's more references to EFI_GUID than to GUID, so prefer using
that. The EFI_GUID is closely relate to UUID, but not quite identical to
it and those slight differences matter sometimes as well (which is how I
found these). Since nearly all the EFI code (ours and EDK2) prefers
EGI_GUID, use that proactively here.
Sponsored by: Netflix
edk2: #ifdef out STATIC_ASSERTS when !_STANDALONE
All FreeBSD ABIs do not conform to the EDK2 preconditions (except boot
loader). These asserts test those things. Since the code from EDK2 that
we use does not depend on L" and L' details, commenting them out is fine.
Note: This was not in the update since I had to redo it too many times
due to lost races and it was a tricky update.
Sponsored by: Netflix
edk2: Update to not build libefivar for lib32 on amd64
This dropped from the last commit because I had to redo it so many
times...
edk2 headers just aren't setup for the weird, hybrid enviornment we're
compiling in when building i386 libraries for amd64 lib32. Since we
can't use it there anyway (there's no 32-bit efibootmgr or efivar), and
native i386 doesn't have them (we don't support EFI Runtime Services on
i386 because we don't support EFI booting there).
Sponsored by: Netflix
edk2: Merge edk2-stable202502
Merge in edk2 stable202502 to pick up latest definitions. This is a
subset import, as outlined in FREEBSD-update, since the full thing has
only gotten larger.
I also had to disable building of libefivar for i386 build. The
precondition for EDK2 isn't met by our ABI there. And we can't call
EFIRT there anyway. We normally don't build the EFI binaries for i386
anyway. We likely never should have built this, but disabling one
library in 32-bit mode is hard.
I also had to ifdef the L" and L' asserts on _STANDALONE. In the boot
loader build enviornment, we met these conditions. All the other places
we do not. But we also are careful to massage the code so that we do not
depend on these preconditions.
Sponsored by: Netflix
Fix build with WITH_CLANG_BOOTSTRAP and WITHOUT_CLANG
When WITH_CLANG_BOOTSTRAP and WITHOUT_CLANG are both set, the
cross-tools stage does not build a cross clang binary. This is because
the Makefile in usr.bin/clang checks for WITHOUT_CLANG, and skips
building the binary.
To fix this, ensure that WITH_CLANG is set for the cross-tools phase
whenever WITH_CLANG_BOOTSTRAP is set. While here, skip using the
Makefile in usr.bin/clang, and directly use the Makefile in
usr.bin/clang/clang instead.
PR: 286154
Reported by: avg
Reviewed by: avg, emaste
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D49886
(cherry picked from commit ea231471d024e93279dc2196d6d5d87e199ad55b)
Remove OMAP4 support leftovers
Remove options.arm for OMAP3&4 and the makefile for building FDT
Approved by: manu (mentor)
Differential revision: https://reviews.freebsd.org/D49985
Import edk2 edk2-stable202502 (hash fbe0805b2091393406952e84724188f8c1941837)
Bring in the latest stable branch for updated defines (especailly
Loongson). Remove ^M as described in sys/contrib/edk2/FREEBSD-upgrade.
Not the absolute latest, but aligned to the edk2-stable202502 tag.
Sponsored by: Netflix