| // SPDX-License-Identifier: GPL-2.0-only |
| |
| #include <asm/csr.h> |
| #include <linux/processor.h> |
| |
| #include "pi.h" |
| |
| /* |
| * To avoid rewriting code include asm/archrandom.h and create macros |
| * for the functions that won't be included. |
| */ |
| #undef riscv_has_extension_unlikely |
| #define riscv_has_extension_likely(...) false |
| #undef pr_err_once |
| #define pr_err_once(...) |
| |
| #include <asm/archrandom.h> |
| |
| u64 get_kaslr_seed_zkr(const uintptr_t dtb_pa) |
| { |
| unsigned long seed = 0; |
| |
| if (!fdt_early_match_extension_isa((const void *)dtb_pa, "zkr")) |
| return 0; |
| |
| if (!csr_seed_long(&seed)) |
| return 0; |
| |
| return seed; |
| } |