MFC r256815:

  Calculate the baud rate divisor rather than using a hard-coded value.
MFC	r258115 (partial);

gperf: bring a small update from Apple Developers tools 4.4

From [1]

offset.patch
Makes use the C offsetof() macro.

We are not merging the size_type.patch as it raises some
(apparently) bogus warnings and is not really used.

[1] http://opensource.apple.com/source/gperf/gperf-9/patches/
MFC r257197:

  Maximize available kva space by doing static device mapping from the top
  of the address space downwards, and then returning the lowest mapped
  device address from initarm_lastaddr().  Premap most of the device's
  on-chip peripherals.
MFC r257480:

  Convert the if/else list of compatible devices to the table-driven
  ofw_bus_search_compatible() routine.  In addition to converting existing
  strings to table entries, also add compat strings for the whole imx family.
MFC r256949:  Import basic support for Rockchip RK3188 SoC.
MFC r257062: Add the Raspberry Pi SPI controller driver.
MFV r258571:

Removes strict-aliasing warnings from newer GCC in tcpdump.

Corresponds to MFC r258573, but for some reason our new pre-commit hooks
will not let us merge it from there.
MFC r256724:

Make geom_label(4) resize-aware.  This fixes a situation when "gpart resize"
would resize a partition, but label providers - e.g. /dev/gptid/XXX - would
stay the same size.

MFC r256766:

Fix build with gcc by spelling unused format string as "unused" instead of NULL.

Sponsored by:	The FreeBSD Foundation
MFC r257199, r257200, r257217:

  Remove all #include <machine/pmap.h> from arm code.  It's already
  included by vm/pmap.h, which is a prerequisite for arm/machine/pmap.h
  so there's no reason to ever include it directly.

  Remove #include <machine/frame.h> from all the arm code that doesn't
  really need it.  That would be almost everywhere it was included.  Add
  it in a couple files that really do need it and were previously getting
  it by accident via another header.

  Remove the last dregs of trapframe_t.  It turns out only arm was using
  this type, so remove it to make arm code more consistant with other
  platforms.
MFC r257201, r257202

  Retire arm_remap_nocache() and the data and constants associated with it.
MFC r257203: Eliminate a compiler warning about extraneous parens.
MFC r256658, r256666:

Move a lot of debugging printf's to DPRINTF.
MFC r257258, r257265: Include headers (if_var.h and others) where needed.

The change that triggered the need for this on head was r257244.  That
hasn't been MFC'd yet, but there's no harm in paving the way for it with
this MFC.
MFC r257383, r257384:

Add some bare-bones support for enabling usb and usbphy clocks.

Add a "no-op" USB PHY driver for imx-family SoCs.
MFC r257390:  Add a vendor entry for Freescale Semiconductor.
MFC r257393:

  Rework the imx ehci driver so that it's four separate ehci units rather
  than one unit with four busses attached to it.  This allows us to use
  existing fdt data which describes separate devices with separate resources.
  It also allows any combination of the units to be en/disabled in the
  board dts files.

  Adjust our dts code to match what's used by linux and u-boot now that
  we're structured to do so.
MFC r257407:

  Expand the list of compatible devices this driver works with.  Increase
  the target frequency from 1 to 10 MHz because these SoCs are plenty fast
  enough to benefit from the extra event timer resolution.
MFC r257413:

  Reset the timer interrupt status register at the top rather than bottom of
  the interrupt handler.  If the event callback starts a new short timeout,
  the timer can fire before returning from the event callback, and clearing
  the interrupt status after that loses the interrupt and hangs until the
  counter wraps.  Fixing all of this removes the need for the do-nothing
  loop at the top of the handler which really just waited for the counter to
  roll over and reach the one-shot count again.

  Also add a missing return(0) in the periodic timer start case.
MFC r257418:

  Don't iterate through the bits of the pending interrupt register if the
  whole register is zero.  Most of the registers will be zero most of the time.
MFC r257419:

  Do not EOI an interrupt until the point after the filter handlers / before
  threaded handlers.