diff options
author | Colin Percival <cperciva@FreeBSD.org> | 2022-02-17 21:01:11 +0000 |
---|---|---|
committer | Colin Percival <cperciva@FreeBSD.org> | 2022-02-17 21:01:11 +0000 |
commit | 5c73b3e0a3db79a3d8b96b3b4c8bc4fb7fee35f2 (patch) | |
tree | 17344b6529cefa5018858a228f007bb662594fcb /stand/lua | |
parent | c44160d8ad32b5415fda13c56352424f9d56e949 (diff) | |
download | src-5c73b3e0a3db79a3d8b96b3b4c8bc4fb7fee35f2.tar.gz src-5c73b3e0a3db79a3d8b96b3b4c8bc4fb7fee35f2.zip |
Add support for getting early entropy from UEFI
UEFI provides a protocol for accessing randomness. This is a good way
to gather early entropy, especially when there's no driver for the RNG
on the platform (as is the case on the Marvell Armada8k (MACCHIATObin)
for now).
If the entropy_efi_seed option is enabled in loader.conf (default: YES)
obtain 2048 bytes of entropy from UEFI and pass is to the kernel as a
"module" of name "efi_rng_seed" and type "boot_entropy_platform"; if
present, ingest it into the kernel RNG.
Submitted by: Greg V
Reviewed by: markm, kevans
Approved by: csprng (markm)
MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D20780
Diffstat (limited to 'stand/lua')
-rw-r--r-- | stand/lua/core.lua | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/stand/lua/core.lua b/stand/lua/core.lua index 67d51b992858..27e3c14de9ff 100644 --- a/stand/lua/core.lua +++ b/stand/lua/core.lua @@ -351,6 +351,14 @@ function core.changeRewindCheckpoint() end end +function core.loadEntropy() + if core.isUEFIBoot() then + if (loader.getenv("entropy_efi_seed") or "no"):lower() == "yes" then + loader.perform("efi-seed-entropy") + end + end +end + function core.setDefaults() core.setACPI(core.getACPIPresent(true)) core.setSafeMode(default_safe_mode) @@ -363,6 +371,7 @@ function core.autoboot(argstr) if loader.getenv("kernelname") == nil then config.loadelf() end + core.loadEntropy() loader.perform(composeLoaderCmd("autoboot", argstr)) end @@ -371,6 +380,7 @@ function core.boot(argstr) if loader.getenv("kernelname") == nil then config.loadelf() end + core.loadEntropy() loader.perform(composeLoaderCmd("boot", argstr)) end |