2019-11-13 10:14:40

by Richard Henderson

[permalink] [raw]
Subject: [PATCH v6 0/1] arm64: Implement archrandom.h for ARMv8.5-RNG

From: Richard Henderson <[email protected]>

Here's v6. I believe I've collected all of the comments
from both Ard and Mark across v4 and v5, as well as from
the cafe in Lyon.

I had thought about using a simple function pointer for
arch_get_random_seed_long, but didn't see a good place
where I could update that at the end of boot.

Which lead me to ALTERNATIVE_CB, which is way overkill,
but is already part of the update infrastructure.

Tested with qemu -cpu {max,cortex-a57}, which covers both
sides of the alternative. GDB breakpoints confirm that
boot_get_random_seed_long is what is called from rand_initialize,
and that this_cpu_has_cap returns the correct result.


r~


Documentation/arm64/cpu-feature-registers.rst | 2 +
arch/arm64/include/asm/archrandom.h | 55 +++++++++++++++
arch/arm64/include/asm/cpucaps.h | 3 +-
arch/arm64/include/asm/sysreg.h | 4 ++
arch/arm64/kernel/cpufeature.c | 13 ++++
arch/arm64/kernel/random.c | 67 +++++++++++++++++++
arch/arm64/Kconfig | 12 ++++
arch/arm64/kernel/Makefile | 1 +
drivers/char/Kconfig | 4 +-
9 files changed, 158 insertions(+), 3 deletions(-)
create mode 100644 arch/arm64/include/asm/archrandom.h
create mode 100644 arch/arm64/kernel/random.c

--
2.17.1