FreeBSD/src d029670 (r346482)share/mk src.opts.mk, stand defs.mk loader.mk

MFC r341101, r341231, r341276, r341329, r341433, r341780, r342054-r342055,
r342721, r342742, r342840, r343008, r343225

r341101:
powerpcspe: Don't crash the loader on ubldr with SPE instructions.

-msoft-float seems to be insufficient for disabling the SPE on powerpcspe.
Force it off with -mno-spe as well.  This prevents a crash in ubldr on
powerpcspe.

r341231:
loader: command_bcache() should print unsigned values

All bcache counters are unsigned.

r341276:
When handling CMD_CRIT error set command_errmsg to NULL after we dump it out,
so that it does not result in error message printed twice.

OK load doodoo
can't find 'doodoo'
can't find 'doodoo'
OK

r341329:
loader.efi: fix EFI getchar() for multiple consoles

This fix is ported from illumos (issue #9970), the analysis and initial
implementation was done by John Levon.

See also: https://www.illumos.org/issues/9970

Currently, efi_cons_getchar() will wait for a key. While this seems to make
sense, the implementation of getchar() in common/console.c will loop across
getchar() for all consoles without doing ischar() first.

This means that if we've configured multiple consoles, we can't input into
the serial, as getchar() will be sat waiting for input only from efi_console.c

This patch does implement a bit more generic key buffer to support
translation of input keys, and we use generic efi_readkey() to reduce
duplication from calls from getchar() and poll().

r341433:
Move inclusion of src.opts.mk later.

src.opts.mk includes bsd.own.mk. This in turn defines CTFCONVERT_CMD
depending on the MK_CTF value. We then set MK_CTF to no, which has no
real effect. The solution is to set all the MK_foo values before
including src.opts.mk.

This should stop the cdboot binary from exploding in size for releases
built WITH_CTF=yes in src.conf.

r341780:
powerpc/ubldr: Teach powerpc's ubldr to boot 64-bit kernels

This is just a copy of powerpc/ofw's ppc64_elf_freebsd.c modified to fit
ubldr's boot format.

r342054:
Print an error message in efi_main.c if we can't allocate memory for the heap

With the default Qemu parameters, only 128MB RAM gets given to a VM. This causes
the loader to be unable to allocate the 64MB it needs for the heap. This change
makes the cause of the error more obvious.

r342055:
Cast error message in efi_main.c to CHAR16* to avoid build error

r342721:
loader.efi: update memmap command to recognize new attributes

Also move memory type to string translation to libefi for later use.

r342742:
loader.efi: efi variable rework and lsefi command added

This update does add diag and debug capabilities to interpret the efi
variables, configuration and protocols (lsefi).

The side effect is that we add/update bunch of related headers.

r342840:
Create MK_LOADER_VERBOSE and connect it to ELF_VERBOSE in the loader
code.

r343008:
Add Dell Chromebook to the list of devices with E820 extmem quirk enabled

Just like for Acer C270 chromebook the E820 extmem workaround is required for
FreeBSD to boot on Dell chromebook.

r343225:
Unbreak mip64 build after r328437

Add exit and getchar functions to beri/boot2 code. They are required by
panic_action functin introduced in r328437

PR:             18498, 204916
DeltaFile
+743-85stand/efi/libefi/env.c
+460-0stand/efi/include/efiip.h
+392-0stand/efi/include/efitcp.h
+285-3stand/efi/include/efiapi.h
+273-0stand/efi/include/efiudp.h
+240-22stand/efi/include/eficon.h
+92-73stand/efi/loader/main.c
+104-38stand/efi/libefi/efi_console.c
+116-0stand/efi/include/efipoint.h
+101-0stand/powerpc/uboot/ppc64_elf_freebsd.c
+69-0stand/efi/include/efigpt.h
+68-0stand/efi/include/Protocol/EdidOverride.h
+53-0stand/efi/include/Protocol/EdidActive.h
+51-0stand/efi/include/Protocol/EdidDiscovered.h
+37-0stand/efi/include/Guid/MemoryTypeInformation.h
+26-9stand/efi/include/efidef.h
+32-0stand/efi/include/Guid/MtcVendor.h
+26-0stand/efi/include/Guid/ZeroGuid.h
+13-4stand/defs.mk
+16-0stand/mips/beri/boot2/boot2.c
+6-6stand/common/bcache.c
+9-0stand/efi/include/efilib.h
+7-0stand/efi/include/efi.h
+5-0tools/build/options/WITH_LOADER_VERBOSE
+3-1stand/efi/loader/efi_main.c
+4-0stand/loader.mk
+3-0stand/efi/include/efipciio.h
+1-1stand/powerpc/uboot/Makefile
+2-0stand/powerpc/uboot/conf.c
+1-0share/mk/src.opts.mk
+1-0stand/common/interp_forth.c
+1-0stand/i386/libi386/biosmem.c
+3,240-24232 files

UnifiedSplitRaw