On Wed, Oct 23, 2019 at 1:39 PM Tony Lindgren <tony@xxxxxxxxxxx> wrote: > > Looks like omap3 RNG is similar to the omap2 rng, let's get it working > by configring the dts node for it. Thank you for doing this. This really helps reduce the startup delays while waiting for entropy. > > We must also add rng_ick to core_l4_clkdm as noted by Adam Ford. > > And please note that the RNG is likely disabled on HS devices. At least > n900 does not have it accessible, and instead omap3-rom-rng driver must > be used. So let's tag RNG as disabled on n900 as noted by Pali Rohár > <pali.rohar@xxxxxxxxx>. > > On am3517 at least the clocks need to be configured to get it working > as noted by Adam Ford, so let's tag it disabled for now. > Tested-by: Adam Ford <aford173@xxxxxxxxx> #logicpd-torpedo-37xx-devkit > Cc: Aaro Koskinen <aaro.koskinen@xxxxxx> > Cc: Adam Ford <aford173@xxxxxxxxx> > Cc: Pali Rohár <pali.rohar@xxxxxxxxx> > Cc: Sebastian Reichel <sre@xxxxxxxxxx> > Cc: Tero Kristo <t-kristo@xxxxxx> > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> > --- > > Sorry for the delay on getting this posted, please test. > > --- > arch/arm/boot/dts/am3517.dtsi | 6 +++++ > arch/arm/boot/dts/omap3-n900.dts | 5 ++++ > arch/arm/boot/dts/omap3.dtsi | 25 +++++++++++++++++++ > .../boot/dts/omap34xx-omap36xx-clocks.dtsi | 2 +- > 4 files changed, 37 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/boot/dts/am3517.dtsi b/arch/arm/boot/dts/am3517.dtsi > --- a/arch/arm/boot/dts/am3517.dtsi > +++ b/arch/arm/boot/dts/am3517.dtsi > @@ -115,6 +115,12 @@ > }; > }; > > +/* Not currently working, probably needs at least different clocks */ > +&rng_target { > + status = "disabled"; > + /delete-property/ clocks; > +}; > + > /* Table Table 5-79 of the TRM shows 480ab000 is reserved */ > &usb_otg_hs { > status = "disabled"; > diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts > --- a/arch/arm/boot/dts/omap3-n900.dts > +++ b/arch/arm/boot/dts/omap3-n900.dts > @@ -1013,6 +1013,11 @@ > }; > }; > > +/* RNG not directly accessible on n900, se omap3-rom-rng instead */ > +&rng_target { > + status = "disabled"; > +}; > + > &usb_otg_hs { > interface-type = <0>; > usb-phy = <&usb2_phy>; > diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi > --- a/arch/arm/boot/dts/omap3.dtsi > +++ b/arch/arm/boot/dts/omap3.dtsi > @@ -8,6 +8,7 @@ > * kind, whether express or implied. > */ > > +#include <dt-bindings/bus/ti-sysc.h> > #include <dt-bindings/gpio/gpio.h> > #include <dt-bindings/interrupt-controller/irq.h> > #include <dt-bindings/pinctrl/omap.h> > @@ -502,6 +503,30 @@ > status = "disabled"; > }; > > + /* Likely needs to be tagged disabled on HS devices */ > + rng_target: target-module@480a0000 { > + compatible = "ti,sysc-omap2", "ti,sysc"; > + reg = <0x480a003c 0x4>, > + <0x480a0040 0x4>, > + <0x480a0044 0x4>; > + reg-names = "rev", "sysc", "syss"; > + ti,sysc-mask = <(SYSC_OMAP2_AUTOIDLE)>; > + ti,sysc-sidle = <SYSC_IDLE_FORCE>, > + <SYSC_IDLE_NO>; > + ti,syss-mask = <1>; > + clocks = <&rng_ick>; > + clock-names = "ick"; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges = <0 0x480a0000 0x2000>; > + > + rng: rng@0 { > + compatible = "ti,omap2-rng"; > + reg = <0x0 0x2000>; > + interrupts = <52>; > + }; > + }; > + > mcbsp2: mcbsp@49022000 { > compatible = "ti,omap3-mcbsp"; > reg = <0x49022000 0xff>, > diff --git a/arch/arm/boot/dts/omap34xx-omap36xx-clocks.dtsi b/arch/arm/boot/dts/omap34xx-omap36xx-clocks.dtsi > --- a/arch/arm/boot/dts/omap34xx-omap36xx-clocks.dtsi > +++ b/arch/arm/boot/dts/omap34xx-omap36xx-clocks.dtsi > @@ -260,6 +260,6 @@ > <&gpt10_ick>, <&mcbsp5_ick>, <&mcbsp1_ick>, > <&omapctrl_ick>, <&aes2_ick>, <&sha12_ick>, <&icr_ick>, > <&des2_ick>, <&mspro_ick>, <&mailboxes_ick>, > - <&mspro_fck>; > + <&rng_ick>, <&mspro_fck>; > }; > }; > -- > 2.23.0