diff mbox series

[3/3] ARM: dts: bcm2711: Enable HWRNG support

Message ID 20191118075807.165126-4-stephen@brennan.io (mailing list archive)
State New, archived
Headers show
Series Raspberry Pi 4 HWRNG Support | expand

Commit Message

Stephen Brennan Nov. 18, 2019, 7:58 a.m. UTC
From: Stefan Wahren <wahrenst@gmx.net>

This enables hardware random number generator support for the BCM2711
on the Raspberry Pi 4 board.

Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
Signed-off-by: Stephen Brennan <stephen@brennan.io>
---
 arch/arm/boot/dts/bcm2711.dtsi | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Nicolas Saenz Julienne Nov. 18, 2019, 11:44 a.m. UTC | #1
Hi Stephen,

On Sun, 2019-11-17 at 23:58 -0800, Stephen Brennan wrote:
> From: Stefan Wahren <wahrenst@gmx.net>
> 
> This enables hardware random number generator support for the BCM2711
> on the Raspberry Pi 4 board.
> 
> Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
> Signed-off-by: Stephen Brennan <stephen@brennan.io>
> ---
>  arch/arm/boot/dts/bcm2711.dtsi | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi
> index ac83dac2e6ba..2c19e5de284a 100644
> --- a/arch/arm/boot/dts/bcm2711.dtsi
> +++ b/arch/arm/boot/dts/bcm2711.dtsi
> @@ -92,10 +92,9 @@ pm: watchdog@7e100000 {
>  		};
>  
>  		rng@7e104000 {
> +			compatible = "brcm,bcm2711-rng200";
>  			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
> -
> -			/* RNG is incompatible with brcm,bcm2835-rng */
> -			status = "disabled";
> +			status = "okay";
>  		};
>  
>  		uart2: serial@7e201400 {

We inherit the reg property from bcm283x.dtsi, on which we only define a size
of 0x10 bytes. I gather from the driver that iproc-rng200's register space is
at least 0x28 bytes big. We should also update the 'reg' property to:

	reg = <0x7e104000 0x28>;

Regards,
Nicolas
Stefan Wahren Nov. 18, 2019, 7:44 p.m. UTC | #2
Hi,

Am 18.11.19 um 12:44 schrieb Nicolas Saenz Julienne:
> Hi Stephen,
>
> On Sun, 2019-11-17 at 23:58 -0800, Stephen Brennan wrote:
>> From: Stefan Wahren <wahrenst@gmx.net>
>>
>> This enables hardware random number generator support for the BCM2711
>> on the Raspberry Pi 4 board.
>>
>> Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
>> Signed-off-by: Stephen Brennan <stephen@brennan.io>
>> ---
>>  arch/arm/boot/dts/bcm2711.dtsi | 5 ++---
>>  1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi
>> index ac83dac2e6ba..2c19e5de284a 100644
>> --- a/arch/arm/boot/dts/bcm2711.dtsi
>> +++ b/arch/arm/boot/dts/bcm2711.dtsi
>> @@ -92,10 +92,9 @@ pm: watchdog@7e100000 {
>>  		};
>>
>>  		rng@7e104000 {
>> +			compatible = "brcm,bcm2711-rng200";
>>  			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
>> -
>> -			/* RNG is incompatible with brcm,bcm2835-rng */
>> -			status = "disabled";
>> +			status = "okay";
>>  		};
>>
>>  		uart2: serial@7e201400 {
> We inherit the reg property from bcm283x.dtsi, on which we only define a size
> of 0x10 bytes. I gather from the driver that iproc-rng200's register space is
> at least 0x28 bytes big. We should also update the 'reg' property to:
>
> 	reg = <0x7e104000 0x28>;

Thanks for sending and noticing. A proper solution would be to move the
whole rng node from bcm283x.dtsi to bcm283x-common.dtsi and define a
completely new rng node in bcm2711.dtsi.

Regards
Stefan

>
> Regards,
> Nicolas
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Stephen Brennan Nov. 19, 2019, 5:49 a.m. UTC | #3
Hello Stefan & Nicolas,

On Mon Nov 18, 2019 at 8:44 PM, Stefan Wahren wrote:
> Hi,
>
> 
> Am 18.11.19 um 12:44 schrieb Nicolas Saenz Julienne:
> > Hi Stephen,
> >
> > On Sun, 2019-11-17 at 23:58 -0800, Stephen Brennan wrote:
> >> From: Stefan Wahren <wahrenst@gmx.net>
> >>
> >> This enables hardware random number generator support for the BCM2711
> >> on the Raspberry Pi 4 board.
> >>
> >> Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
> >> Signed-off-by: Stephen Brennan <stephen@brennan.io>
> >> ---
> >>  arch/arm/boot/dts/bcm2711.dtsi | 5 ++---
> >>  1 file changed, 2 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi
> >> index ac83dac2e6ba..2c19e5de284a 100644
> >> --- a/arch/arm/boot/dts/bcm2711.dtsi
> >> +++ b/arch/arm/boot/dts/bcm2711.dtsi
> >> @@ -92,10 +92,9 @@ pm: watchdog@7e100000 {
> >>  		};
> >>
> >>  		rng@7e104000 {
> >> +			compatible = "brcm,bcm2711-rng200";
> >>  			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
> >> -
> >> -			/* RNG is incompatible with brcm,bcm2835-rng */
> >> -			status = "disabled";
> >> +			status = "okay";
> >>  		};
> >>
> >>  		uart2: serial@7e201400 {
> > We inherit the reg property from bcm283x.dtsi, on which we only define a size
> > of 0x10 bytes. I gather from the driver that iproc-rng200's register space is
> > at least 0x28 bytes big. We should also update the 'reg' property to:
> >
> > 	reg = <0x7e104000 0x28>;
>
> 
> Thanks for sending and noticing. A proper solution would be to move the
> whole rng node from bcm283x.dtsi to bcm283x-common.dtsi and define a
> completely new rng node in bcm2711.dtsi.

Thanks both for your time and consideration. I'm not terribly familiar with 
device tree source but I think I understand what you'd like here. I'll send 
a v2 that does this!

Regards,
Stephen

>
> 
> Regards
> Stefan
>
> 
> >
> > Regards,
> > Nicolas
> >
> >
> > _______________________________________________
> > linux-arm-kernel mailing list
> > linux-arm-kernel@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
> 
>
>
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi
index ac83dac2e6ba..2c19e5de284a 100644
--- a/arch/arm/boot/dts/bcm2711.dtsi
+++ b/arch/arm/boot/dts/bcm2711.dtsi
@@ -92,10 +92,9 @@  pm: watchdog@7e100000 {
 		};
 
 		rng@7e104000 {
+			compatible = "brcm,bcm2711-rng200";
 			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
-
-			/* RNG is incompatible with brcm,bcm2835-rng */
-			status = "disabled";
+			status = "okay";
 		};
 
 		uart2: serial@7e201400 {