Home | History | Annotate | Download | only in efiboot
History log of /src/sys/stand/efiboot/efifdt.h
RevisionDateAuthorComments
 1.14  15-Aug-2024  riastradh efifdt.h: Break overlong line.
 1.13  15-Aug-2024  skrll Move function declarations into correct header.

NFCI.
 1.12  25-Mar-2022  jmcneill branches: 1.12.10;
efiboot: Add support for 'userconf' command.

Add support for the 'userconf' command at the boot prompt and in boot.cfg,
and for FDT based booting, pass the commands as a string list property
named "netbsd,userconf" on the /chosen node.
 1.11  06-Oct-2021  jmcneill efiboot: Make FDT support optional on a per-arch basis.
 1.10  10-Oct-2020  jmcneill Support EFI runtime and GOP FB for devicetree (non-ACPI) setups.
 1.9  21-Jun-2020  jmcneill Add module support.
 1.8  14-May-2020  riastradh Pass EFI RNG output via /chosen/netbsd,efirng-{start,end}.

This is separate from /chosen/netbsd,rndseed-{start,end}, which
specifies NetBSD's persistent on-disk seed; efirng is the firmware's
RNG device.
 1.7  18-Dec-2019  riastradh Implement rndseed support in efiboot and fdt arm.

The EFI environment variable `rndseed' specifies the path to the
random seed. It is loaded only for fdt platforms at the moment.

Since the rndseed (an rndsave_t object as defined in <sys/rndio.h>)
is 536 bytes long (for hysterical raisins), and to avoid having to
erase parts of the fdt tree, we load it into a physical page whose
address is passed in the fdt tree, rather than passing the content of
the file as an fdt node directly; the kernel then reserves the page
from uvm, and maps it into kva to call rnd_seed.

For now, the only kernel that does use efiboot with fdt is evbarm,
which knows to handle the rndseed. Any new kernels that use efiboot
with fdt must do the same; otherwise uvm may hand out the page with
the secret key on it for a normal page allocation in the kernel --
which should be OK if there are no kernel memory disclosure bugs, but
would lead to worse consequences than simply loading the seed late in
userland with /etc/rc.d/random_seed otherwise.

ok jmcneill
 1.6  24-Jul-2019  jmcneill branches: 1.6.2;
Add support for simple framebuffers when booting in ACPI mode.
 1.5  21-Apr-2019  thorpej branches: 1.5.2;
- Add support for a boot configuration file, defaulting to /etc/efiboot.plist.
- Add support for pre-loading EFI environment variables from efiboot.plist.
- Add support for device tree overlays specified in efiboot.plist.

(Man page for efiboot forthcoming.)
 1.4  09-Sep-2018  jmcneill Add "dtb" command for loading a custom .dtb file.
 1.3  07-Sep-2018  jmcneill Add initrd support.
 1.2  03-Sep-2018  jmcneill branches: 1.2.2;
Print FDT model and compatible strings with "version" command
 1.1  24-Aug-2018  jmcneill Add MI EFI bootloader and AArch64 glue.
 1.2.2.3  30-Sep-2018  pgoyette Ssync with HEAD
 1.2.2.2  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.2.2.1  03-Sep-2018  pgoyette file efifdt.h was added on branch pgoyette-compat on 2018-09-06 06:56:47 +0000
 1.5.2.4  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.5.2.3  08-Apr-2020  martin Merge changes from current as of 20200406
 1.5.2.2  10-Jun-2019  christos Sync with HEAD
 1.5.2.1  21-Apr-2019  christos file efifdt.h was added on branch phil-wifi on 2019-06-10 22:09:56 +0000
 1.6.2.1  12-Feb-2020  martin Pull up following revision(s) (requested by riastradh in ticket #705):

sys/arch/aarch64/aarch64/aarch64_machdep.c: revision 1.35
sys/stand/efiboot/efifdt.c: revision 1.20
sys/stand/efiboot/efifdt.h: revision 1.7
sys/arch/aarch64/include/machdep.h: revision 1.9
sys/stand/efiboot/efiboot.h: revision 1.11
sys/arch/arm/arm32/arm32_machdep.c: revision 1.129
sys/arch/arm/include/arm32/machdep.h: revision 1.30
sys/stand/efiboot/exec.c: revision 1.12
sys/arch/evbarm/fdt/fdt_machdep.c: revision 1.65
sys/stand/efiboot/version: revision 1.14
sys/stand/efiboot/boot.c: revision 1.19

New function cpu_startup_hook on arm.

Called at end of cpu_startup. Can be defined in, e.g., evbarm to do
additional stuff after cpu_startup. Defined as a weak alias to a
function that does nothing, so optional.
ok jmcneill

Implement rndseed support in efiboot and fdt arm.

The EFI environment variable `rndseed' specifies the path to the
random seed. It is loaded only for fdt platforms at the moment.
Since the rndseed (an rndsave_t object as defined in <sys/rndio.h>)
is 536 bytes long (for hysterical raisins), and to avoid having to
erase parts of the fdt tree, we load it into a physical page whose
address is passed in the fdt tree, rather than passing the content of
the file as an fdt node directly; the kernel then reserves the page
from uvm, and maps it into kva to call rnd_seed.

For now, the only kernel that does use efiboot with fdt is evbarm,
which knows to handle the rndseed. Any new kernels that use efiboot
with fdt must do the same; otherwise uvm may hand out the page with
the secret key on it for a normal page allocation in the kernel --
which should be OK if there are no kernel memory disclosure bugs, but
would lead to worse consequences than simply loading the seed late in
userland with /etc/rc.d/random_seed otherwise.

ok jmcneill
 1.12.10.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed