Make -f set -a, as required by the standard.

From the original OpenBSD commit message:

  restore the traditional behavior of -f implying -a; apparently Keith
  Bostic forgot to restore it when the -f flag was put back on 2nd of
  September 1989, after being removed on 16th of August as a
  consequence of issues getting it working over NFS, so deviation from
  traditional UNIX behavior in all BSDs looks like an historical
  accident; as a side effect, this change accommodates behavior of
  this option to IEEE Std 1003.1-2008 (``POSIX.1'').

  joint work with jmc@ (who found the inaccuracy in our
  implementation), schwarze@ (who provided a detailed tracking of
  historical facts) and millert@

Submitted by: Igor Sobrado
Discussed with:  mckusick
Obtained from: OpenBSD project
MFC after:  2 weeks
- Setup both secure and non-secure timer IRQs.
  We don't know our ARM security state, so one of them will operate.
- Don't set frequency, since it's unpossible in non-secure state.
  Only rely on DTS clock-frequency value or get clock from timer.

Discussed with:	ian, cognet
Add information on standards compliance of many options.

MFC after:	2 weeks
Make C_* contants fit in 32 bits again by using 4 unused bits.

Noticed by:	bde
Some xdev fixes:

- if TARGET_ARCH is not defined and XDEV_ARCH is defined then early define
  TARGET_ARCH to the valud of XDEV_ARCH: This allow the xdev-build target
  to be able to correctly chose the compiler it needs to build
- Allow overwriting XDTP to allow a user to not chose where the xdev env will
  live in
- Fix build for gcc only xdev (like ia64) by providing the proper -B to the
  toolchain and not relying on gcc being installed already in base
- Fix TOOLS_PREFIX so the generated toolchain has the right default sysroot when
  installed intead of getting the DESTDIR one
- Fix supporting DESTDIR
- Also overwrite CXX (needed for cross building c++ libraries with clang) and
  CPP (needed to cross build some libraries when gcc is the target default
  compiler but gcc is not installed on the building host)

Discussed with:	imp
Add an extra void* cast to work around a bug in FreeBSD-gcc inherited
from Apple.
Move _b functions into the 11.x symbol version namespace.
Allow overriding xz(1) path.

Requested by:	marck
MFC After:	5 days
X-MFC-With:	r264027,r264028,r264029,r264030,r264046
Sponsored by:	The FreeBSD Foundation
Add BIO_DELETE support to ZVOL.

It is an adapted merge from the vendor branch of:
    701 UNMAP support for COMSTAR  (in part related to ZFS)
    2130 zvol DKIOCFREE uses nested DMU transactions
Put each source file on a separate line

This will simplify rebasing the amd64 UEFI patch set.

Sponsored by:	The FreeBSD Foundation
Fix the inheritance of the FBSDprivate_1.0 namespace.
Move the GPIO bank initialization to a new function to make easier to detect
errors.

Reset the GPIO module during the initialization.  This is guaranteed to be
the same as a hardware reset.  Tested on AM335x (BBB) and checked against
the omap3 and omap4 TRM.

Do a better job freeing resources when there are errors and on
ti_gpio_detach().
Add the Dresden Elektronik "USB Levelshifter Stick Low Cost" to the
list of known FTDI devices.

https://shop.dresden-elektronik.de/accessories/levelshifter/usb-pegelwandler-stick-basic.html

MFC after:	1 week
Add support for the Dlink DIR-825C1 74k MIPS router based on Atheros
wireless, bridge and CPU.
MFV r258922:
3580 Want zvols to return volblocksize when queried for physical block size

illumos/illumos-gate@a0b60564dfc644f4bfaef1ce26d343b44cf68bc5

It is irrelevant for FreeBSD, just reducing diff.
Build boot/ficl as 64-bit library on amd64

The 32-bit bootloaders on amd64 now use the 32-bit version in ficl32,
as is done with libstand32.  The native 64-bit ficl will be used by the
upcoming UEFI loader.

Sponsored by:	The FreeBSD Foundation
Merge efilib changes from projects/uefi

r247216:

  Add the ability for a device to have an "alias" handle.

r247379:

  Fix network device registration.

r247380:

  Adjust our load device when we boot from CD under UEFI.

  The process for booting from a CD under UEFI involves adding a FAT
  filesystem containing your loader code as an El Torito boot image.
  When UEFI detects this, it provides a block IO instance that points
  at the FAT filesystem as a child of the device that represents the CD
  itself. The problem being that the CD device is flagged as a "raw
  device" while the boot image is flagged as a "logical partition".
  The existing EFI partition code only looks for logical partitions and
  so the CD filesystem was rendered invisible.

  To fix this, check the type of each block IO device. If it's found to
  be a CD, and thus an El Torito boot image, look up its parent device
  and add that instead so that the loader will then load the kernel from
  the CD filesystem.  This is done by using the handle for the boot
  filesystem as an alias.

  Something similar to this will be required for booting from other media
  as well as the loader will live in the EFI system partition, not on the
  partition containing the kernel.

r247381:

  Remove a scatalogical debug printf that crept in.
Detach from controlling session of parent.  This is similar
to what is done in daemon(3), which we can not use directly
in this context.

Reviewed by:	pjd
MFC after:	2 weeks
XDDESTDIR should not be set by the user, instead the user might want to tweak
XDTP and let the standard DESTDIR decide where to install.

Discussed with:	imp
Correct a PCI enumeration bug introduced in r264011

Ensure that first_func is set to 0 on every iteration of the PCI slot
enumeration loop after the first.  There is a continue statement that would
cause first_func to stay at 1 any PCI device where slot 0 has no functions
until we find a slot that does have a function.  This would cause us to
not enumerate the first PCI function on the device.

Credit to markj@ for spotting the bug.

X-MFC-With: r264011