From 36b404a2260361ebd6abc7bf4a9f382c373f15ec Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Fri, 12 Mar 2021 14:29:51 +0100 Subject: [PATCH] bmips: switch to upstream bcm2835-rng reset patch MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This patch has been accepted upstream. Signed-off-by: Álvaro Fernández Rojas --- ...gs-rng-bcm2835-add-clock-constraints.patch | 38 ++++++++++++++ ...s-rng-bcm2835-document-reset-support.patch | 51 +++++++++++++++++++ ...054-hwrng-bcm2835-add-reset-support.patch} | 14 +++-- 3 files changed, 98 insertions(+), 5 deletions(-) create mode 100644 target/linux/bmips/patches-5.10/052-dt-bindings-rng-bcm2835-add-clock-constraints.patch create mode 100644 target/linux/bmips/patches-5.10/053-dt-bindings-rng-bcm2835-document-reset-support.patch rename target/linux/bmips/patches-5.10/{207-hwrng-bcm2835-add-reset-support.patch => 054-hwrng-bcm2835-add-reset-support.patch} (84%) diff --git a/target/linux/bmips/patches-5.10/052-dt-bindings-rng-bcm2835-add-clock-constraints.patch b/target/linux/bmips/patches-5.10/052-dt-bindings-rng-bcm2835-add-clock-constraints.patch new file mode 100644 index 00000000000..246293e3849 --- /dev/null +++ b/target/linux/bmips/patches-5.10/052-dt-bindings-rng-bcm2835-add-clock-constraints.patch @@ -0,0 +1,38 @@ +From 0618e07ea3e0981d7765b43d3f7db39e739842eb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= +Date: Fri, 5 Mar 2021 08:01:30 +0100 +Subject: [PATCH 1/3] dt-bindings: rng: bcm2835: add clock constraints +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +brcm,bcm6368-rng controllers require enabling the IPSEC clock in order to get +a functional RNG. + +Signed-off-by: Álvaro Fernández Rojas +Reviewed-by: Rob Herring +Acked-by: Florian Fainelli +Signed-off-by: Herbert Xu +--- + .../devicetree/bindings/rng/brcm,bcm2835.yaml | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/Documentation/devicetree/bindings/rng/brcm,bcm2835.yaml ++++ b/Documentation/devicetree/bindings/rng/brcm,bcm2835.yaml +@@ -35,6 +35,16 @@ required: + - compatible + - reg + ++if: ++ properties: ++ compatible: ++ enum: ++ - brcm,bcm6368-rng ++then: ++ required: ++ - clocks ++ - clock-names ++ + additionalProperties: false + + examples: diff --git a/target/linux/bmips/patches-5.10/053-dt-bindings-rng-bcm2835-document-reset-support.patch b/target/linux/bmips/patches-5.10/053-dt-bindings-rng-bcm2835-document-reset-support.patch new file mode 100644 index 00000000000..ce14a1037c8 --- /dev/null +++ b/target/linux/bmips/patches-5.10/053-dt-bindings-rng-bcm2835-document-reset-support.patch @@ -0,0 +1,51 @@ +From 381345820db55bf8e7289de047c24c00a2e3690d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= +Date: Fri, 5 Mar 2021 08:01:31 +0100 +Subject: [PATCH 2/3] dt-bindings: rng: bcm2835: document reset support +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +brcm,bcm6368-rng controllers require resetting the IPSEC clock in order to get +a functional RNG. + +Signed-off-by: Álvaro Fernández Rojas +Reviewed-by: Rob Herring +Acked-by: Florian Fainelli +Signed-off-by: Herbert Xu +--- + .../devicetree/bindings/rng/brcm,bcm2835.yaml | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +--- a/Documentation/devicetree/bindings/rng/brcm,bcm2835.yaml ++++ b/Documentation/devicetree/bindings/rng/brcm,bcm2835.yaml +@@ -28,6 +28,12 @@ properties: + clock-names: + const: ipsec + ++ resets: ++ maxItems: 1 ++ ++ reset-names: ++ const: ipsec ++ + interrupts: + maxItems: 1 + +@@ -44,6 +50,8 @@ then: + required: + - clocks + - clock-names ++ - resets ++ - reset-names + + additionalProperties: false + +@@ -68,4 +76,7 @@ examples: + + clocks = <&periph_clk 18>; + clock-names = "ipsec"; ++ ++ resets = <&periph_rst 4>; ++ reset-names = "ipsec"; + }; diff --git a/target/linux/bmips/patches-5.10/207-hwrng-bcm2835-add-reset-support.patch b/target/linux/bmips/patches-5.10/054-hwrng-bcm2835-add-reset-support.patch similarity index 84% rename from target/linux/bmips/patches-5.10/207-hwrng-bcm2835-add-reset-support.patch rename to target/linux/bmips/patches-5.10/054-hwrng-bcm2835-add-reset-support.patch index 1da0e952a80..24b74817bec 100644 --- a/target/linux/bmips/patches-5.10/207-hwrng-bcm2835-add-reset-support.patch +++ b/target/linux/bmips/patches-5.10/054-hwrng-bcm2835-add-reset-support.patch @@ -1,12 +1,14 @@ -From 846cd2c9eee7a99de29c743911cc047fdd56db02 Mon Sep 17 00:00:00 2001 +From e5f9f41d5e62004c913bfd4ddf06abe032f5ce1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= -Date: Mon, 22 Feb 2021 20:41:04 +0100 -Subject: [PATCH] hwrng: bcm2835: add reset support +Date: Fri, 5 Mar 2021 08:01:32 +0100 +Subject: [PATCH 3/3] hwrng: bcm2835 - add reset support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -BCM6368 devices need to reset the in order to generate true random numbers. +BCM6368 devices need to reset the IPSEC controller in order to generate true +random numbers. + This is what BCM6368 produces without a reset: root@OpenWrt:/# cat /dev/hwrng | rngtest -c 1000 rngtest 6.10 @@ -25,9 +27,11 @@ rngtest: FIPS 140-2(2001-10-10) Continuous run: 0 rngtest: input channel speed: (min=37.253; avg=320.827; max=635.783)Mibits/s rngtest: FIPS tests speed: (min=12.141; avg=15.034; max=16.428)Mibits/s rngtest: Program run time: 1336176 microseconds -cat: write error: Broken pipe Signed-off-by: Álvaro Fernández Rojas +Reviewed-by: Philipp Zabel +Acked-by: Florian Fainelli +Signed-off-by: Herbert Xu --- drivers/char/hw_random/bcm2835-rng.c | 10 ++++++++++ 1 file changed, 10 insertions(+) -- 2.30.2