History log of /netbsd-current/sys/stand/efiboot/exec.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.24 14-Jun-2023 rin

Use %zd instead of %ld for ssize_t.


Revision tags: netbsd-10-base bouyer-sunxi-drm-base
# 1.23 06-Oct-2021 jmcneill

efiboot: Make FDT support optional on a per-arch basis.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base thorpej-i2c-spi-conf-base
# 1.22 20-Jun-2021 jmcneill

Enable the twiddle spinner when loading the kernel, ramdisk images, and
modules.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.21 21-May-2021 jmcneill

Disable ACPI support when booting big endian kernels.


# 1.20 11-May-2021 skrll

Consistently have ALIGN sizes as the power of two size, i.e. change
FDT_ALIGN, and use the same math(s) to round.

In the process fix the load_offset for the kernel to use the EFIBOOT_ALIGN
aligned address if that's what we get from AllocatePages.


Revision tags: cjep_staticlib_x-base thorpej-cfargs-base thorpej-futex-base
# 1.19 10-Oct-2020 jmcneill

branches: 1.19.6; 1.19.8;
Support EFI runtime and GOP FB for devicetree (non-ACPI) setups.


# 1.18 28-Jun-2020 jmcneill

Remove support for storing settings in EFI environment variables now that
we have boot.cfg support.


# 1.17 26-Jun-2020 thorpej

Add dtoverlay command to specify device tree overlays from the boot
loader command line. Add support for specifying device tree overlays
in boot.cfg, with the syntax:

dtoverlay=/path/to/overlay.dtbo
dtoverlay=hd0e:/overlays/example.dtbo

Multiple overlays can be specified, and they are loaded in the order
they appear in boot.cfg.

Remove support for efiboot.plist.


# 1.16 21-Jun-2020 jmcneill

Add module support.


# 1.15 23-May-2020 thorpej

If a device tree overlay does not have a "compatible" match, don't
load it. (Oops, missing return statement.)


# 1.14 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.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2
# 1.13 25-Jan-2020 jmcneill

Hide the twiddle while loading efiboot plist


Revision tags: ad-namecache-base1 ad-namecache-base
# 1.12 18-Dec-2019 riastradh

branches: 1.12.2;
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


Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base
# 1.11 24-Jul-2019 jmcneill

branches: 1.11.2;
Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.23 06-Oct-2021 jmcneill

efiboot: Make FDT support optional on a per-arch basis.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base thorpej-i2c-spi-conf-base
# 1.22 20-Jun-2021 jmcneill

Enable the twiddle spinner when loading the kernel, ramdisk images, and
modules.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.21 21-May-2021 jmcneill

Disable ACPI support when booting big endian kernels.


# 1.20 11-May-2021 skrll

Consistently have ALIGN sizes as the power of two size, i.e. change
FDT_ALIGN, and use the same math(s) to round.

In the process fix the load_offset for the kernel to use the EFIBOOT_ALIGN
aligned address if that's what we get from AllocatePages.


Revision tags: cjep_staticlib_x-base thorpej-cfargs-base thorpej-futex-base
# 1.19 10-Oct-2020 jmcneill

branches: 1.19.6; 1.19.8;
Support EFI runtime and GOP FB for devicetree (non-ACPI) setups.


# 1.18 28-Jun-2020 jmcneill

Remove support for storing settings in EFI environment variables now that
we have boot.cfg support.


# 1.17 26-Jun-2020 thorpej

Add dtoverlay command to specify device tree overlays from the boot
loader command line. Add support for specifying device tree overlays
in boot.cfg, with the syntax:

dtoverlay=/path/to/overlay.dtbo
dtoverlay=hd0e:/overlays/example.dtbo

Multiple overlays can be specified, and they are loaded in the order
they appear in boot.cfg.

Remove support for efiboot.plist.


# 1.16 21-Jun-2020 jmcneill

Add module support.


# 1.15 23-May-2020 thorpej

If a device tree overlay does not have a "compatible" match, don't
load it. (Oops, missing return statement.)


# 1.14 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.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2
# 1.13 25-Jan-2020 jmcneill

Hide the twiddle while loading efiboot plist


Revision tags: ad-namecache-base1 ad-namecache-base
# 1.12 18-Dec-2019 riastradh

branches: 1.12.2;
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


Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base
# 1.11 24-Jul-2019 jmcneill

branches: 1.11.2;
Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.22 20-Jun-2021 jmcneill

Enable the twiddle spinner when loading the kernel, ramdisk images, and
modules.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 thorpej-i2c-spi-conf-base
# 1.21 21-May-2021 jmcneill

Disable ACPI support when booting big endian kernels.


# 1.20 11-May-2021 skrll

Consistently have ALIGN sizes as the power of two size, i.e. change
FDT_ALIGN, and use the same math(s) to round.

In the process fix the load_offset for the kernel to use the EFIBOOT_ALIGN
aligned address if that's what we get from AllocatePages.


Revision tags: cjep_staticlib_x-base thorpej-cfargs-base thorpej-futex-base
# 1.19 10-Oct-2020 jmcneill

branches: 1.19.6; 1.19.8;
Support EFI runtime and GOP FB for devicetree (non-ACPI) setups.


# 1.18 28-Jun-2020 jmcneill

Remove support for storing settings in EFI environment variables now that
we have boot.cfg support.


# 1.17 26-Jun-2020 thorpej

Add dtoverlay command to specify device tree overlays from the boot
loader command line. Add support for specifying device tree overlays
in boot.cfg, with the syntax:

dtoverlay=/path/to/overlay.dtbo
dtoverlay=hd0e:/overlays/example.dtbo

Multiple overlays can be specified, and they are loaded in the order
they appear in boot.cfg.

Remove support for efiboot.plist.


# 1.16 21-Jun-2020 jmcneill

Add module support.


# 1.15 23-May-2020 thorpej

If a device tree overlay does not have a "compatible" match, don't
load it. (Oops, missing return statement.)


# 1.14 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.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2
# 1.13 25-Jan-2020 jmcneill

Hide the twiddle while loading efiboot plist


Revision tags: ad-namecache-base1 ad-namecache-base
# 1.12 18-Dec-2019 riastradh

branches: 1.12.2;
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


Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base
# 1.11 24-Jul-2019 jmcneill

branches: 1.11.2;
Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.21 21-May-2021 jmcneill

Disable ACPI support when booting big endian kernels.


Revision tags: thorpej-i2c-spi-conf-base
# 1.20 11-May-2021 skrll

Consistently have ALIGN sizes as the power of two size, i.e. change
FDT_ALIGN, and use the same math(s) to round.

In the process fix the load_offset for the kernel to use the EFIBOOT_ALIGN
aligned address if that's what we get from AllocatePages.


Revision tags: cjep_staticlib_x-base thorpej-cfargs-base thorpej-futex-base
# 1.19 10-Oct-2020 jmcneill

branches: 1.19.6;
Support EFI runtime and GOP FB for devicetree (non-ACPI) setups.


# 1.18 28-Jun-2020 jmcneill

Remove support for storing settings in EFI environment variables now that
we have boot.cfg support.


# 1.17 26-Jun-2020 thorpej

Add dtoverlay command to specify device tree overlays from the boot
loader command line. Add support for specifying device tree overlays
in boot.cfg, with the syntax:

dtoverlay=/path/to/overlay.dtbo
dtoverlay=hd0e:/overlays/example.dtbo

Multiple overlays can be specified, and they are loaded in the order
they appear in boot.cfg.

Remove support for efiboot.plist.


# 1.16 21-Jun-2020 jmcneill

Add module support.


# 1.15 23-May-2020 thorpej

If a device tree overlay does not have a "compatible" match, don't
load it. (Oops, missing return statement.)


# 1.14 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.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2
# 1.13 25-Jan-2020 jmcneill

Hide the twiddle while loading efiboot plist


Revision tags: ad-namecache-base1 ad-namecache-base
# 1.12 18-Dec-2019 riastradh

branches: 1.12.2;
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


Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base
# 1.11 24-Jul-2019 jmcneill

branches: 1.11.2;
Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.20 11-May-2021 skrll

Consistently have ALIGN sizes as the power of two size, i.e. change
FDT_ALIGN, and use the same math(s) to round.

In the process fix the load_offset for the kernel to use the EFIBOOT_ALIGN
aligned address if that's what we get from AllocatePages.


Revision tags: cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
# 1.19 10-Oct-2020 jmcneill

Support EFI runtime and GOP FB for devicetree (non-ACPI) setups.


# 1.18 28-Jun-2020 jmcneill

Remove support for storing settings in EFI environment variables now that
we have boot.cfg support.


# 1.17 26-Jun-2020 thorpej

Add dtoverlay command to specify device tree overlays from the boot
loader command line. Add support for specifying device tree overlays
in boot.cfg, with the syntax:

dtoverlay=/path/to/overlay.dtbo
dtoverlay=hd0e:/overlays/example.dtbo

Multiple overlays can be specified, and they are loaded in the order
they appear in boot.cfg.

Remove support for efiboot.plist.


# 1.16 21-Jun-2020 jmcneill

Add module support.


# 1.15 23-May-2020 thorpej

If a device tree overlay does not have a "compatible" match, don't
load it. (Oops, missing return statement.)


# 1.14 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.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2
# 1.13 25-Jan-2020 jmcneill

Hide the twiddle while loading efiboot plist


Revision tags: ad-namecache-base1 ad-namecache-base
# 1.12 18-Dec-2019 riastradh

branches: 1.12.2;
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


Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base
# 1.11 24-Jul-2019 jmcneill

branches: 1.11.2;
Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.19 10-Oct-2020 jmcneill

Support EFI runtime and GOP FB for devicetree (non-ACPI) setups.


# 1.18 28-Jun-2020 jmcneill

Remove support for storing settings in EFI environment variables now that
we have boot.cfg support.


# 1.17 26-Jun-2020 thorpej

Add dtoverlay command to specify device tree overlays from the boot
loader command line. Add support for specifying device tree overlays
in boot.cfg, with the syntax:

dtoverlay=/path/to/overlay.dtbo
dtoverlay=hd0e:/overlays/example.dtbo

Multiple overlays can be specified, and they are loaded in the order
they appear in boot.cfg.

Remove support for efiboot.plist.


# 1.16 21-Jun-2020 jmcneill

Add module support.


# 1.15 23-May-2020 thorpej

If a device tree overlay does not have a "compatible" match, don't
load it. (Oops, missing return statement.)


# 1.14 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.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2
# 1.13 25-Jan-2020 jmcneill

Hide the twiddle while loading efiboot plist


Revision tags: ad-namecache-base1 ad-namecache-base
# 1.12 18-Dec-2019 riastradh

branches: 1.12.2;
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


Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base
# 1.11 24-Jul-2019 jmcneill

branches: 1.11.2;
Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.18 28-Jun-2020 jmcneill

Remove support for storing settings in EFI environment variables now that
we have boot.cfg support.


# 1.17 26-Jun-2020 thorpej

Add dtoverlay command to specify device tree overlays from the boot
loader command line. Add support for specifying device tree overlays
in boot.cfg, with the syntax:

dtoverlay=/path/to/overlay.dtbo
dtoverlay=hd0e:/overlays/example.dtbo

Multiple overlays can be specified, and they are loaded in the order
they appear in boot.cfg.

Remove support for efiboot.plist.


# 1.16 21-Jun-2020 jmcneill

Add module support.


# 1.15 23-May-2020 thorpej

If a device tree overlay does not have a "compatible" match, don't
load it. (Oops, missing return statement.)


# 1.14 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.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2
# 1.13 25-Jan-2020 jmcneill

Hide the twiddle while loading efiboot plist


Revision tags: ad-namecache-base1 ad-namecache-base
# 1.12 18-Dec-2019 riastradh

branches: 1.12.2;
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


Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base
# 1.11 24-Jul-2019 jmcneill

branches: 1.11.2;
Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.17 26-Jun-2020 thorpej

Add dtoverlay command to specify device tree overlays from the boot
loader command line. Add support for specifying device tree overlays
in boot.cfg, with the syntax:

dtoverlay=/path/to/overlay.dtbo
dtoverlay=hd0e:/overlays/example.dtbo

Multiple overlays can be specified, and they are loaded in the order
they appear in boot.cfg.

Remove support for efiboot.plist.


# 1.16 21-Jun-2020 jmcneill

Add module support.


# 1.15 23-May-2020 thorpej

If a device tree overlay does not have a "compatible" match, don't
load it. (Oops, missing return statement.)


# 1.14 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.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2
# 1.13 25-Jan-2020 jmcneill

Hide the twiddle while loading efiboot plist


Revision tags: ad-namecache-base1 ad-namecache-base
# 1.12 18-Dec-2019 riastradh

branches: 1.12.2;
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


Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base
# 1.11 24-Jul-2019 jmcneill

branches: 1.11.2;
Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.16 21-Jun-2020 jmcneill

Add module support.


# 1.15 23-May-2020 thorpej

If a device tree overlay does not have a "compatible" match, don't
load it. (Oops, missing return statement.)


# 1.14 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.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2
# 1.13 25-Jan-2020 jmcneill

Hide the twiddle while loading efiboot plist


Revision tags: ad-namecache-base1 ad-namecache-base
# 1.12 18-Dec-2019 riastradh

branches: 1.12.2;
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


Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base
# 1.11 24-Jul-2019 jmcneill

branches: 1.11.2;
Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.15 23-May-2020 thorpej

If a device tree overlay does not have a "compatible" match, don't
load it. (Oops, missing return statement.)


# 1.14 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.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2
# 1.13 25-Jan-2020 jmcneill

Hide the twiddle while loading efiboot plist


Revision tags: ad-namecache-base1 ad-namecache-base
# 1.12 18-Dec-2019 riastradh

branches: 1.12.2;
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


Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base
# 1.11 24-Jul-2019 jmcneill

branches: 1.11.2;
Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.14 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.


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2
# 1.13 25-Jan-2020 jmcneill

Hide the twiddle while loading efiboot plist


Revision tags: ad-namecache-base1 ad-namecache-base
# 1.12 18-Dec-2019 riastradh

branches: 1.12.2;
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


Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base
# 1.11 24-Jul-2019 jmcneill

branches: 1.11.2;
Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.13 25-Jan-2020 jmcneill

Hide the twiddle while loading efiboot plist


Revision tags: ad-namecache-base1 ad-namecache-base
# 1.12 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


Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base
# 1.11 24-Jul-2019 jmcneill

Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.12 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


Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base
# 1.11 24-Jul-2019 jmcneill

Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.11 24-Jul-2019 jmcneill

Add support for simple framebuffers when booting in ACPI mode.


Revision tags: phil-wifi-20190609
# 1.10 21-Apr-2019 thorpej

branches: 1.10.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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.


# 1.10 21-Apr-2019 thorpej

- 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.)


Revision tags: isaki-audio2-base
# 1.9 30-Mar-2019 jmcneill

Build fixes for 32-bit targets.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.8 28-Oct-2018 jmcneill

Make EFI runtime services available to the kernel. Bump version to 1.5.


Revision tags: pgoyette-compat-1020
# 1.7 12-Oct-2018 jmcneill

Add ACPI support (enable with -DEFIBOOT_ACPI, currently disabled).

When UEFI reports that ACPI tables are available, generate a DTB with
compatible string "netbsd,generic-acpi" and pass this to the booted
kernel.

The DTB contains a /chosen property "netbsd,acpi-root-table" that contains
the physical address of the ACPI RSDP, along with a special /acpi node
with compatible string "netbsd,acpi" for the kernel to attach an acpi(4)
device driver.


Revision tags: pgoyette-compat-0930
# 1.6 15-Sep-2018 jmcneill

Suppress printing size info when calling loadfile with COUNT_KERNEL


# 1.5 09-Sep-2018 jmcneill

Add "dtb" command for loading a custom .dtb file.


# 1.4 07-Sep-2018 jmcneill

Add initrd support.


Revision tags: pgoyette-compat-0906
# 1.3 02-Sep-2018 jmcneill

branches: 1.3.2;
Support loading kernels at PAs above 0x3fffffffff on arm64


# 1.2 27-Aug-2018 jmcneill

Pass a hash of the MBR and the booted partition to the kernel.


# 1.1 24-Aug-2018 jmcneill

Add MI EFI bootloader and AArch64 glue.