freebsd-src/stand
Warner Losh 1c98cd1569 kboot: aarch64 memory enumeration enumerate_memory_arch()
We have an odd situation with aarch64 memory enumeration. The fdt that
we can get has a PA of the UEFI memory map, as modified by the current
running Linux kernel so it can retain those pages it needs for EFI and
other services. We have to pass in this EFI tablem but don't have access
to it in the boot loader. We do in the trampoline code, so a forthcoming
commit will copy it there for the kernel to use. All for want of /dev/mem
in the target environment sometimes.

However, we also have to find a place to load the kernel, so we have to
fallback to /proc/iomem when we can't read the UEFI memory map directly
from /dev/mem. It will give us good enough results to do this task. This
table isn't quite suitable to be converted to the EFI table, so we use
both methods. We'll fall back to this method also if there's no EFI
table advertised in the fdt. There's no /sys file on aarch64 that has
this information, hence using the old-style /proc/iomem. We're unlikely
to work if there's no EFI, though.

Note: The underlying Linux mechanism is different than the amd64 method
which seems like it should be MI, but unimplemented on aarch64.

Sponsored by:		Netflix
Discussed with:		kevans
Differential Revision:	https://reviews.freebsd.org/D38249
2023-02-03 08:41:39 -07:00
..
arm64 stand: Remove extra efi.h include 2022-07-15 12:00:49 -06:00
common stand: only compute symidx on x86 2023-02-02 13:04:05 -07:00
defaults Add support for getting early entropy from UEFI 2022-02-17 13:01:11 -08:00
efi efiserialio: use port settings (sio->Mode) for initial setup 2023-02-03 11:53:32 +02:00
fdt Remove "All Rights Reserved" from Foundation copyrights 2022-06-30 10:49:09 -04:00
ficl Revert "stand: Grammar fix for a source code comment" 2022-09-05 15:40:55 +02:00
ficl32
fonts loader: really use bold font for vga text mode 2021-01-08 01:24:30 +02:00
forth loader.4th(8): Fix a typo in the manual page 2022-04-02 15:11:59 +02:00
i386 stand: create common set_currdev 2023-01-11 15:15:15 -07:00
images loader: implement framebuffer console 2021-01-02 21:41:36 +02:00
kboot kboot: aarch64 memory enumeration enumerate_memory_arch() 2023-02-03 08:41:39 -07:00
kshim stand/usb: Fix build by declaring missing functions and types. 2022-03-17 15:26:24 +01:00
liblua lua: reduce diffs between luaconf.h copies 2023-01-26 12:38:19 -05:00
liblua32
libofw stand/ofw: dev can't be NULL here 2023-01-13 14:22:38 -07:00
libsa stand: dev can't be NULL in default_prasedev 2023-01-13 15:54:44 -07:00
libsa32
lua lualoader: Add loader_menu_multi_user_prompt config variable 2022-09-02 20:30:40 +01:00
man loader.efi(8): document slop control, amd64 nocopy, and amd64 fault commands 2022-09-06 18:55:45 +03:00
powerpc stand: Create common gen_setcurrdev and replace code 2023-01-11 15:15:14 -07:00
uboot stand/uboot: Remove -fPIC here 2023-01-25 08:04:59 -07:00
usb stand: For all disk drivers, connect dv_parsedev to disk_parsedev 2022-11-30 15:30:32 -07:00
userboot stand: create common set_currdev 2023-01-11 15:15:15 -07:00
defs.mk stand: remove mips support 2021-12-10 11:05:31 -07:00
fdt.mk
ficl.mk stand: remove mips support 2021-12-10 11:05:31 -07:00
loader.mk stand: Move md_copymodules into modinfo.c and reduce copies 2022-09-16 09:18:56 -06:00
lua.mk
Makefile stand: Add a helper 'universe' target 2022-07-30 05:01:47 -06:00
Makefile.amd64 stand: properly declare subdir deps or .WAIT, do parallel build 2020-12-31 11:15:45 -06:00
Makefile.inc stand: properly declare subdir deps or .WAIT, do parallel build 2020-12-31 11:15:45 -06:00
veriexec.mk EFI secure boot VECTX related changes 2021-04-30 12:53:45 -05:00