hwrng: add hwrng support for Rockchip RK3568
Subsystems (5)
Daniel Golle
maintainerv4 cover hwrng: add hwrng support for Rockchip RK3568
Rockchip SoCs used to have a random number generator as part of their crypto device, and support for it has to be added to the corresponding driver.
However newer Rockchip SoCs like the RK3568 have an independent True Random Number Generator device. This patchset adds a driver for it and enable it in the device tree.
v3 -> v4:
* Patch 1: minor corrections
- fix Rokchip -> Rockchip typo
- change commit title as requested
* Patch 2: improved error handling and resource management
- Always use writel() instead of writel_relaxed()
- Use pm_runtime_resume_and_get
- Correctly return error code in rk_rng_read()
- Make use of devm_reset_control_array_get_exclusive
- Use devm_pm_runtime_enable and there by get rid of rk_rng_remove()
* Patch 3:
- Move node to conform with ordering by address
v2 -> v3: patch adopted by Daniel Golle
* Patch 1: address comments of Krzysztof Kozlowski, add MAINTAINERS
- improved description
- meaningful clock-names
- add entry in MAINTAINERS files
* Patch 2: numerous code-style improvements
- drop misleading rk_rng_write_ctl(), simplify I/O writes
- drop unused TRNG_RNG_DOUT_[1-7] macros
- handle error handling for pm_runtime_get_sync()
- use memcpy_fromio() instead of open coding for-loop
- some minor white-spaces fixes
* Patch 3:
- use clock-names as defined in dt-bindings
v1 -> v2:
* Patch 1: fix issues reported by Rob Herring and Krzysztof Kozlowski:
- Rename rockchip-rng.yaml into rockchip,rk3568-rng.yaml
- Fix binding title and description
- Fix compatible property
- Rename clocks and add the corresponding descriptions
- Drop reset-names
- Add a bus definition with #address-cells and #size-cells to the example.
* Patch 2: fix issue reported by kernel test robot <[email protected]>
- Do not read the random registers as big endian, looking at the RK3568 TRM this is actually not needed. This fixes a sparse warning.
* Patch 3: unchanged
Aurelien Jarno (3):
dt-bindings: rng: Add Rockchip RNG bindings
hwrng: add Rockchip SoC hwrng driver
arm64: dts: rockchip: add DT entry for RNG to RK356x
.../bindings/rng/rockchip,rk3568-rng.yaml | 61 +++++ MAINTAINERS | 7 + arch/arm64/boot/dts/rockchip/rk356x.dtsi | 9 + drivers/char/hw_random/Kconfig | 14 ++ drivers/char/hw_random/Makefile | 1 + drivers/char/hw_random/rockchip-rng.c | 222 ++++++++++++++++++ 6 files changed, 314 insertions(+) create mode 100644 Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml create mode 100644 drivers/char/hw_random/rockchip-rng.c
Signature · 1 line
2.45.2
Daniel Golle
maintainerPATCH v4 1/3 dt-bindings: rng: Add Rockchip RNG bindings
From: Aurelien Jarno <[email protected]>
Add the True Random Number Generator on the Rockchip RK3568 SoC.
--- .../bindings/rng/rockchip,rk3568-rng.yaml | 61 +++++++++++++++++++ MAINTAINERS | 6 ++ 2 files changed, 67 insertions(+) create mode 100644 Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml
Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml new file +61 -0
@@ -0,0 +1,61 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/rng/rockchip,rk3568-rng.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Rockchip TRNG + +description: True Random Number Generator on Rockchip RK3568 SoC + +maintainers: + - Aurelien Jarno <[email protected]> + - Daniel Golle <[email protected]> + +properties: + compatible: + enum: + - rockchip,rk3568-rng + + reg: + maxItems: 1 + + clocks: + items: + - description: TRNG clock + - description: TRNG AHB clock + + clock-names: + items: + - const: core + - const: ahb + + resets: + maxItems: 1 + +required: + - compatible + - reg + - clocks + - clock-names + - resets + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/rk3568-cru.h> + bus { + #address-cells = <2>; + #size-cells = <2>; + + rng@fe388000 { + compatible = "rockchip,rk3568-rng"; + reg = <0x0 0xfe388000 0x0 0x4000>; + clocks = <&cru CLK_TRNG_NS>, <&cru HCLK_TRNG_NS>; + clock-names = "core", "ahb"; + resets = <&cru SRST_TRNG_NS>; + }; + }; + +...
MAINTAINERS +6 -0
@@ -19498,6 +19498,12 @@ F: Documentation/userspace-api/media/v4l/metafmt-rkisp1.rst F: drivers/media/platform/rockchip/rkisp1 F: include/uapi/linux/rkisp1-config.h +ROCKCHIP RANDOM NUMBER GENERATOR SUPPORT +M: Daniel Golle <[email protected]> +M: Aurelien Jarno <[email protected]> +S: Maintained +F: Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml + ROCKCHIP RASTER 2D GRAPHIC ACCELERATION UNIT DRIVER M: Jacob Chen <[email protected]> M: Ezequiel Garcia <[email protected]>
Signature · 1 line
2.45.2
Re: [PATCH v4 1/3] dt-bindings: rng: Add Rockchip RNG bindings
Quoted 6 lines · Daniel Golle
From: Aurelien Jarno <[email protected]>
Add the True Random Number Generator on the Rockchip RK3568 SoC.
Signed-off-by Aurelien Jarno <[email protected]>Signed-off-by Daniel Golle <[email protected]>
My comments from v2, which I reminded at v3, were not addressed.
Respond to each of them and acknowledge that you are going to implement the change.
Best regards,
Krzysztof
Daniel Golle
maintainerRe: [PATCH v4 1/3] dt-bindings: rng: Add Rockchip RNG bindings
Hi Krzysztof,
thank you for your patiente and repeated review of this series.
Quoted 5 lines · Krzysztof Kozlowski
Quoted 4 lines · Daniel Golle
From: Aurelien Jarno <[email protected]>
Add the True Random Number Generator on the Rockchip RK3568 SoC.
Quoted 7 lines
Quoted 2 lines
Signed-off-by Aurelien Jarno <[email protected]>Signed-off-by Daniel Golle <[email protected]>My comments from v2, which I reminded at v3, were not addressed.
Respond to each of them and acknowledge that you are going to implement the change.
Your comments to v1which I'm aware of are:
https://patchwork.kernel.org/comment/25087874/
Quoted 2 lines
Quoted 1 line
+++
b/Documentation/devicetree/bindings/rng/rockchip-rng.yamlFilename matching compatible, so "rockchip,rk3568-rng.yaml"
I've changed the filename.
Quoted 3 lines
Quoted 1 line
+title: Rockchip TRNG bindings
Drop "bindings"
I've changed the title accordingly (now: "Rockchip TRNG" in v4).
Quoted 5 lines
Review
Quoted 2 lines
(quoted diff) +2
-0+description: + This driver interface with the True Random Number Generator present in someDrop "This driver interface" and make it a proper sentence. Bindings are not about drivers.
This has been addressed by Aurelien and further improved by me in v3.
Quoted 4 lines
Review
Quoted 2 lines
(quoted diff) +2
-0+ clocks: + minItems: 2Drop minItems.
Aurelien did that in v2.
Quoted 7 lines
Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml
Quoted 4 lines
Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml new file +4
-0+ clock-names: + items: + - const: clk + - const: hclkYou need to explain what are these in clocks. Also you need better names. A clock name "clk" is useless.
Clocks now have meaningful names and descriptions.
Quoted 5 lines
Review
Quoted 3 lines
(quoted diff) +3
-0+ reset-names: + items: + - const: resetDrop reset-names entirely, not useful.
Aurelien did so in v2.
Your comments to v2 which I'm aware of are:
https://patchwork.kernel.org/comment/25111597/
Quoted 7 lines
Quoted 1 line
Add the RNG bindings for the RK3568 SoC from Rockchip
Use subject prefixes matching the subsystem (git log --oneline -- ...), so it is rng, not RNG. Also, you are not adding all-Rockhip RNG but a specific device.
Subject: drop second, redundant "bindings".
I've changed 'RNG' into 'rng' in the subject and spelled it out in the commit message.
Quoted 3 lines
Quoted 1 line
+description: True Random Number Generator for some Rockchip SoCs
s/for some Rockchip SoCs/on Rokchip RK3568 SoC/
I've adopted your suggestion in v3 and then fixed the typo in v4.
Quoted 9 lines
Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml
Quoted 5 lines
Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml new file +4
-0+ clock-names: + items: + - const: trng_clk + - const: trng_hclkThese are too vague names. Everything is a clk in clock-names, so no need usually to add it as name suffix. Give them some descriptive names, e.g. core and ahb.
If changed the names to the suggested 'core' and 'ahb'.
Before sending another round of patches, just to make sure we are on the same page, please confirm that what remains is
Subject: dt-bindings: rng: Add Rockchip RNG bindings
which not only should be 'rng' in small letters but also name the exact chip, eg.:
Subject: dt-bindings: rng: add TRNG on the Rockchip RK3568 SoC
If there are any other comments you made which I'm not aware of, please point me to them.
Cheers
Daniel
Re: [PATCH v4 1/3] dt-bindings: rng: Add Rockchip RNG bindings
Quoted 13 lines · Daniel Golle
Hi Krzysztof,
thank you for your patiente and repeated review of this series.
Quoted 8 lines · Krzysztof Kozlowski
Quoted 6 lines · Daniel Golle
From: Aurelien Jarno <[email protected]>
Add the True Random Number Generator on the Rockchip RK3568 SoC.
Signed-off-by Aurelien Jarno <[email protected]>Signed-off-by Daniel Golle <[email protected]>
Quoted 7 lines
Quoted 4 lines
My comments from v2, which I reminded at v3, were not addressed.
Respond to each of them and acknowledge that you are going to implement the change.
Your comments to v1which I'm aware of are:
https://patchwork.kernel.org/comment/25087874/
We talk about comments from v2, not v1.
Quoted 50 lines
Quoted 3 lines
Quoted 2 lines
+++
b/Documentation/devicetree/bindings/rng/rockchip-rng.yamlFilename matching compatible, so "rockchip,rk3568-rng.yaml"
I've changed the filename.
Quoted 3 lines
Quoted 1 line
+title: Rockchip TRNG bindings
Drop "bindings"
I've changed the title accordingly (now: "Rockchip TRNG" in v4).
Quoted 5 lines
Review
Quoted 2 lines
(quoted diff) +2
-0+description: + This driver interface with the True Random Number Generator present in someDrop "This driver interface" and make it a proper sentence. Bindings are not about drivers.
This has been addressed by Aurelien and further improved by me in v3.
Quoted 4 lines
Review
Quoted 2 lines
(quoted diff) +2
-0+ clocks: + minItems: 2Drop minItems.
Aurelien did that in v2.
Quoted 7 lines
Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml
Quoted 4 lines
Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml new file +4
-0+ clock-names: + items: + - const: clk + - const: hclkYou need to explain what are these in clocks. Also you need better names. A clock name "clk" is useless.
Clocks now have meaningful names and descriptions.
Quoted 5 lines
Review
Quoted 3 lines
(quoted diff) +3
-0+ reset-names: + items: + - const: resetDrop reset-names entirely, not useful.
Aurelien did so in v2.
Your comments to v2 which I'm aware of are:
https://patchwork.kernel.org/comment/25111597/Quoted 1 line
Quoted 1 line
Add the RNG bindings for the RK3568 SoC from Rockchip
Quoted 8 lines
Quoted 5 lines
Use subject prefixes matching the subsystem (git log --oneline -- ...), so it is rng, not RNG. Also, you are not adding all-Rockhip RNG but a specific device.
Subject: drop second, redundant "bindings".
I've changed 'RNG' into 'rng' in the subject and spelled it out in the commit message.
And where did you drop the redundant bindings? You just quoted the sentence and ignored it.
Best regards,
Krzysztof
Daniel Golle
maintainerPATCH v4 2/3 hwrng: add Rockchip SoC hwrng driver
In reply to Daniel GolleFrom: Aurelien Jarno <[email protected]>
Rockchip SoCs used to have a random number generator as part of their crypto device, and support for it has to be added to the corresponding driver. However newer Rockchip SoCs like the RK356x have an independent True Random Number Generator device. This patch adds a driver for it, greatly inspired from the downstream driver.
The TRNG device does not seem to have a signal conditionner and the FIPS 140-2 test returns a lot of failures. They can be reduced by increasing RK_RNG_SAMPLE_CNT, in a tradeoff between quality and speed. This value has been adjusted to get ~90% of successes and the quality value has been set accordingly.
--- MAINTAINERS | 1 + drivers/char/hw_random/Kconfig | 14 ++ drivers/char/hw_random/Makefile | 1 + drivers/char/hw_random/rockchip-rng.c | 222 ++++++++++++++++++++++++++ 4 files changed, 238 insertions(+) create mode 100644 drivers/char/hw_random/rockchip-rng.c
MAINTAINERS +1 -0
@@ -19503,6 +19503,7 @@ M: Daniel Golle <[email protected]> M: Aurelien Jarno <[email protected]> S: Maintained F: Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml +F: drivers/char/hw_random/rockchip-rng.c ROCKCHIP RASTER 2D GRAPHIC ACCELERATION UNIT DRIVER M: Jacob Chen <[email protected]>
drivers/char/hw_random/Kconfig +14 -0
@@ -573,6 +573,20 @@ config HW_RANDOM_JH7110 To compile this driver as a module, choose M here. The module will be called jh7110-trng. +config HW_RANDOM_ROCKCHIP + tristate "Rockchip True Random Number Generator" + depends on HW_RANDOM && (ARCH_ROCKCHIP || COMPILE_TEST) + depends on HAS_IOMEM + default HW_RANDOM + help + This driver provides kernel-side support for the True Random Number + Generator hardware found on some Rockchip SoC like RK3566 or RK3568. + + To compile this driver as a module, choose M here: the + module will be called rockchip-rng. + + If unsure, say Y. + endif # HW_RANDOM config UML_RANDOM
drivers/char/hw_random/Makefile +1 -0
@@ -48,4 +48,5 @@ obj-$(CONFIG_HW_RANDOM_XIPHERA) += xiphera-trng.o obj-$(CONFIG_HW_RANDOM_ARM_SMCCC_TRNG) += arm_smccc_trng.o obj-$(CONFIG_HW_RANDOM_CN10K) += cn10k-rng.o obj-$(CONFIG_HW_RANDOM_POLARFIRE_SOC) += mpfs-rng.o +obj-$(CONFIG_HW_RANDOM_ROCKCHIP) += rockchip-rng.o obj-$(CONFIG_HW_RANDOM_JH7110) += jh7110-trng.o
drivers/char/hw_random/rockchip-rng.c new file +222 -0
222 lines not on this page · raw message
Signature · 1 line
2.45.2
Re: [PATCH v4 2/3] hwrng: add Rockchip SoC hwrng driver
drivers/char/hw_random/rockchip-rng.c line 162
Quoted 9 lines · Daniel Golle
drivers/char/hw_random/rockchip-rng.c new file +9
-0+ + rk_rng->rng.name =dev_driver_string (dev); +#ifndef CONFIG_PM + rk_rng->rng.init = rk_rng_init; + rk_rng->rng.cleanup = rk_rng_cleanup; +#endif + rk_rng->rng.read = rk_rng_read; + rk_rng->rng.priv = (unsigned long ) dev; + rk_rng->rng.quality =900 ;
I doubt in this value. Usually SoC vendors do not provide datasheet with any reliable and verifiable (so one which could be proven by 3rd party) information. Can you provide a source? (and vendor downstream tree does not really count)
drivers/char/hw_random/rockchip-rng.c line 172
Quoted 10 lines
drivers/char/hw_random/rockchip-rng.c new file +10
-0+ +pm_runtime_set_autosuspend_delay (dev,RK_RNG_AUTOSUSPEND_DELAY ); +pm_runtime_use_autosuspend (dev); +devm_pm_runtime_enable (dev); + + ret =devm_hwrng_register (dev, &rk_rng->rng); +if (ret) +return dev_err_probe (&pdev->dev, ret,"Failed to register Rockchip hwrng\n" ); + +dev_dbg (&pdev->dev,"Registered Rockchip hwrng\n" );
Drop, it is not useful at all. Srsly, we had already long enough talk, which wasted time of three people. Why do you insist on wasting more?
There is no single benefit of such debug statement. sysfs already provides you this information. Simple entry/exit is provided by tracing. You duplicate existing interfaces without any benefit, because this prints nothing more.
Best regards,
Krzysztof
Re: [PATCH v4 2/3] hwrng: add Rockchip SoC hwrng driver
Hello Krzysztof,
Quoted 14 lines · Krzysztof Kozlowski
drivers/char/hw_random/rockchip-rng.c line 172
Quoted 10 lines · Daniel Golle
drivers/char/hw_random/rockchip-rng.c new file +10
-0+ +pm_runtime_set_autosuspend_delay (dev,RK_RNG_AUTOSUSPEND_DELAY ); +pm_runtime_use_autosuspend (dev); +devm_pm_runtime_enable (dev); + + ret =devm_hwrng_register (dev, &rk_rng->rng); +if (ret) +return dev_err_probe (&pdev->dev, ret,"Failed to register Rockchip hwrng\n" ); + +dev_dbg (&pdev->dev,"Registered Rockchip hwrng\n" );Drop, it is not useful at all. Srsly, we had already long enough talk, [...]
And in this long talk using dev_dbg() was one of the suggestions for a compromise. For me this is ok.
Quoted 4 lines
There is no single benefit of such debug statement. sysfs already provides you this information. Simple entry/exit is provided by tracing. You duplicate existing interfaces without any benefit, because this prints nothing more.
There might be a (small) value if you want to know when during boot the device becomes available. So having a dev_dbg() that can be enabled dynamically (assuming DYNAMIC_DEBUG=y) and isn't in the way otherwise might be justified. IMHO a dev_dbg is lightweight enough that *I* won't continue the discussion.
Best regards
Uwe
Re: [PATCH v4 2/3] hwrng: add Rockchip SoC hwrng driver
Hello Uwe,
Quoted 25 lines · Uwe Kleine-König
Quoted 15 lines · Krzysztof Kozlowski
Review
Quoted 11 lines · Daniel Golle
drivers/char/hw_random/rockchip-rng.c new file +8
-0+ +pm_runtime_set_autosuspend_delay (dev,RK_RNG_AUTOSUSPEND_DELAY ); +pm_runtime_use_autosuspend (dev); +devm_pm_runtime_enable (dev); + + ret =devm_hwrng_register (dev, &rk_rng->rng); +if (ret) + return dev_err_probe(&pdev->dev, ret, "Failed to register Rockchiphwrng\n");
(quoted diff) +2
-0+ + dev_dbg(&pdev->dev, "Registered Rockchip hwrng\n");Drop, it is not useful at all. Srsly, we had already long enough talk, [...]
And in this long talk using
dev_dbg()was one of the suggestions for a compromise. For me this is ok.Quoted 4 lines
There is no single benefit of such debug statement. sysfs already provides you this information. Simple entry/exit is provided by tracing. You duplicate existing interfaces without any benefit, because this prints nothing more.
Quoted 5 lines
There might be a (small) value if you want to know when during boot the device becomes available. So having a
dev_dbg()that can be enabled dynamically (assuming DYNAMIC_DEBUG=y) and isn't in the way otherwise might be justified. IMHO adev_dbgis lightweight enough that *I* won't continue the discussion.
For anyone interested, below is an example that shows the usability of knowing when a device becomes available:
https://gitlab.manjaro.org/manjaro-arm/packages/core/linux/-/issues/21
Aurelien Jarno
maintainerRe: [PATCH v4 2/3] hwrng: add Rockchip SoC hwrng driver
In reply to Krzysztof KozlowskiHi,
Quoted 15 lines · Krzysztof Kozlowski
drivers/char/hw_random/rockchip-rng.c line 162
Quoted 9 lines · Daniel Golle
drivers/char/hw_random/rockchip-rng.c new file +9
-0+ + rk_rng->rng.name =dev_driver_string (dev); +#ifndef CONFIG_PM + rk_rng->rng.init = rk_rng_init; + rk_rng->rng.cleanup = rk_rng_cleanup; +#endif + rk_rng->rng.read = rk_rng_read; + rk_rng->rng.priv = (unsigned long ) dev; + rk_rng->rng.quality =900 ;I doubt in this value. Usually SoC vendors do not provide datasheet with any reliable and verifiable (so one which could be proven by 3rd party) information. Can you provide a source? (and vendor downstream tree does not really count)
As the original author of the patch, I am the one who have chosen the value. I did it as explained in the commit message:
| The TRNG device does not seem to have a signal conditionner and the FIPS | 140-2 test returns a lot of failures. They can be reduced by increasing | RK_RNG_SAMPLE_CNT, in a tradeoff between quality and speed. This value | has been adjusted to get ~90% of successes and the quality value has | been set accordingly.
It is also explained, admittedly more briefly, above the RK_RNG_SAMPLE_CNT #define, as the commit messages are not really relevant anymore once the patches are accepted:
| * TRNG collects osc ring output bit every RK_RNG_SAMPLE_CNT time. The value is | * a tradeoff between speed and quality and has been adjusted to get a quality | * of ~900 (~90% of FIPS 140-2 successes). | */
The decision to adjust RK_RNG_SAMPLE_CNT to reach ~90% of FIPS 140-2 successes was based on the quality chosen by most hw_random drivers currently in the kernel sources. The FIPS 140-2 tests were performed using rngtest from the rng-tools project.
All that said, I am not an expert in that domain, so feel free to point to the documentation or provide the correct method to determine the quality.
Regards
Aurelien
[1] https://git.kernel.org/pub/scm/utils/kernel/rng-tools/rng-tools.git/
Signature · 7 lines
Aurelien Jarno GPG: 4096R/1DDD8C9B [email protected] http://aurel32.net _______________________________________________ Linux-rockchip mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-rockchip
Re: [PATCH v4 2/3] hwrng: add Rockchip SoC hwrng driver
Hi,
Quoted 43 lines · Aurelien Jarno
Hi,
Quoted 15 lines · Krzysztof Kozlowski
drivers/char/hw_random/rockchip-rng.c line 162
Quoted 9 lines · Daniel Golle
drivers/char/hw_random/rockchip-rng.c new file +9
-0+ + rk_rng->rng.name =dev_driver_string (dev); +#ifndef CONFIG_PM + rk_rng->rng.init = rk_rng_init; + rk_rng->rng.cleanup = rk_rng_cleanup; +#endif + rk_rng->rng.read = rk_rng_read; + rk_rng->rng.priv = (unsigned long ) dev; + rk_rng->rng.quality =900 ;I doubt in this value. Usually SoC vendors do not provide datasheet with any reliable and verifiable (so one which could be proven by 3rd party) information. Can you provide a source? (and vendor downstream tree does not really count)
As the original author of the patch, I am the one who have chosen the value. I did it as explained in the commit message:
| The TRNG device does not seem to have a signal conditionner and the FIPS | 140-2 test returns a lot of failures. They can be reduced by increasing | RK_RNG_SAMPLE_CNT, in a tradeoff between quality and speed. This value | has been adjusted to get ~90% of successes and the quality value has | been set accordingly.It is also explained, admittedly more briefly, above the
RK_RNG_SAMPLE_CNT#define, as the commit messages are not really relevant anymore once the patches are accepted:| * TRNG collects osc ring output bit every RK_RNG_SAMPLE_CNT time. The value is | * a tradeoff between speed and quality and has been adjusted to get a quality | * of ~900 (~90% of FIPS 140-2 successes). | */The decision to adjust
RK_RNG_SAMPLE_CNTto reach ~90% of FIPS 140-2 successes was based on the quality chosen by mosthw_randomdrivers currently in the kernel sources. The FIPS 140-2 tests were performed using rngtest from the rng-tools project.
Quoted 8 lines
All that said, I am not an expert in that domain, so feel free to point to the documentation or provide the correct method to determine the quality.
Regards
Aurelien[1] https://git.kernel.org/pub/scm/utils/kernel/rng-tools/rng-tools.git/
This is an old repository, the latest can be found below
[1] https://github.com/nhorman/rng-tools
However, I could not find the support from ARM and ARM64 in the repository below because all the assembly is written for the X86 arch.
Thanks
-Anand
Daniel Golle
maintainerPATCH v4 3/3 arm64: dts: rockchip: add DT entry for RNG to RK356x
In reply to Daniel GolleFrom: Aurelien Jarno <[email protected]>
Enable the just added Rockchip RNG driver for RK356x SoCs.
--- arch/arm64/boot/dts/rockchip/rk356x.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+)
arch/arm64/boot/dts/rockchip/rk356x.dtsi +9 -0
@@ -1112,6 +1112,15 @@ sdhci: mmc@fe310000 { status = "disabled"; }; + rng: rng@fe388000 { + compatible = "rockchip,rk3568-rng"; + reg = <0x0 0xfe388000 0x0 0x4000>; + clocks = <&cru CLK_TRNG_NS>, <&cru HCLK_TRNG_NS>; + clock-names = "core", "ahb"; + resets = <&cru SRST_TRNG_NS>; + reset-names = "reset"; + }; + i2s0_8ch: i2s@fe400000 { compatible = "rockchip,rk3568-i2s-tdm"; reg = <0x0 0xfe400000 0x0 0x1000>;
Signature · 1 line
2.45.2