]>
Commit | Line | Data |
---|---|---|
fe3dde3e CM |
1 | // SPDX-License-Identifier: GPL-2.0+ |
2 | /* | |
3 | * The 'kaslrseed' command takes bytes from the hardware random number | |
4 | * generator and uses them to set the kaslr-seed value in the chosen node. | |
5 | * | |
6 | * Copyright (c) 2021, Chris Morgan <[email protected]> | |
7 | */ | |
8 | ||
fe3dde3e CM |
9 | #include <command.h> |
10 | #include <dm.h> | |
11 | #include <hexdump.h> | |
12 | #include <malloc.h> | |
13 | #include <rng.h> | |
14 | #include <fdt_support.h> | |
15 | ||
16 | static int do_kaslr_seed(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) | |
17 | { | |
909321bc | 18 | int err = CMD_RET_SUCCESS; |
fe3dde3e | 19 | |
909321bc | 20 | printf("Notice: a /chosen/kaslr-seed is automatically added to the device-tree when booted via booti/bootm/bootz therefore using this command is likely no longer needed\n"); |
fe3dde3e CM |
21 | |
22 | if (!working_fdt) { | |
23 | printf("No FDT memory address configured. Please configure\n" | |
24 | "the FDT address via \"fdt addr <address>\" command.\n" | |
25 | "Aborting!\n"); | |
909321bc TH |
26 | err = CMD_RET_FAILURE; |
27 | } else { | |
28 | if (fdt_kaslrseed(working_fdt, true) < 0) | |
29 | err = CMD_RET_FAILURE; | |
fe3dde3e CM |
30 | } |
31 | ||
909321bc | 32 | return cmd_process_error(cmdtp, err); |
fe3dde3e CM |
33 | } |
34 | ||
3616218b | 35 | U_BOOT_LONGHELP(kaslrseed, |
0b07b5ed | 36 | "\n" |
3616218b | 37 | " - append random bytes to chosen kaslr-seed node\n"); |
fe3dde3e CM |
38 | |
39 | U_BOOT_CMD( | |
40 | kaslrseed, 1, 0, do_kaslr_seed, | |
41 | "feed bytes from the hardware random number generator to the kaslr-seed", | |
42 | kaslrseed_help_text | |
43 | ); |