[PATCH v2 7/7] riscv: Update SiFive device tree for new CLINT driver

Bin Meng bmeng.cn at gmail.com
Thu Sep 3 04:49:02 CEST 2020


Hi Anup,

On Thu, Sep 3, 2020 at 10:46 AM Anup Patel <anup at brainfault.org> wrote:
>
> On Thu, Sep 3, 2020 at 7:32 AM Bin Meng <bmeng.cn at gmail.com> wrote:
> >
> > Hi Anup,
> >
> > On Tue, Aug 18, 2020 at 6:03 PM Sean Anderson <seanga2 at gmail.com> wrote:
> > >
> > > On 8/18/20 5:22 AM, Bin Meng wrote:
> > > > +Anup Patel
> > > >
> > > > On Wed, Jul 29, 2020 at 5:57 PM Sean Anderson <seanga2 at gmail.com> wrote:
> > > >>
> > > >> We may need to add a clock-frequency binding like for the K210.
> > > >>
> > > >> Signed-off-by: Sean Anderson <seanga2 at gmail.com>
> > > >> ---
> > > >> This patch builds but has NOT been tested.
> > > >>
> > > >> Changes in v2:
> > > >> - Fix SiFive CLINT not getting tick-rate from rtcclk
> > > >>
> > > >>  arch/riscv/dts/fu540-c000-u-boot.dtsi           | 8 ++++++--
> > > >>  arch/riscv/dts/hifive-unleashed-a00-u-boot.dtsi | 4 ++++
> > > >>  2 files changed, 10 insertions(+), 2 deletions(-)
> > > >>
> > > >> diff --git a/arch/riscv/dts/fu540-c000-u-boot.dtsi b/arch/riscv/dts/fu540-c000-u-boot.dtsi
> > > >> index afdb4f4402..f126d3e0b3 100644
> > > >> --- a/arch/riscv/dts/fu540-c000-u-boot.dtsi
> > > >> +++ b/arch/riscv/dts/fu540-c000-u-boot.dtsi
> > > >> @@ -53,9 +53,13 @@
> > > >>                         reg = <0x0 0x10070000 0x0 0x1000>;
> > > >>                         fuse-count = <0x1000>;
> > > >>                 };
> > > >> -               clint at 2000000 {
> > > >> +               clint: clint at 2000000 {
> > > >>                         compatible = "riscv,clint0";
> > > >> -                       interrupts-extended = <&cpu0_intc 3 &cpu0_intc 7 &cpu1_intc 3 &cpu1_intc 7 &cpu2_intc 3 &cpu2_intc 7 &cpu3_intc 3 &cpu3_intc 7 &cpu4_intc 3 &cpu4_intc 7>;
> > > >> +                       interrupts-extended = <&cpu0_intc 3 &cpu0_intc 7
> > > >> +                                              &cpu1_intc 3 &cpu1_intc 7
> > > >> +                                              &cpu2_intc 3 &cpu2_intc 7
> > > >> +                                              &cpu3_intc 3 &cpu3_intc 7
> > > >> +                                              &cpu4_intc 3 &cpu4_intc 7>;
> > > >>                         reg = <0x0 0x2000000 0x0 0xc0000>;
> > > >>                         u-boot,dm-spl;
> > > >>                 };
> > > >> diff --git a/arch/riscv/dts/hifive-unleashed-a00-u-boot.dtsi b/arch/riscv/dts/hifive-unleashed-a00-u-boot.dtsi
> > > >> index e037150520..3275bb1f12 100644
> > > >> --- a/arch/riscv/dts/hifive-unleashed-a00-u-boot.dtsi
> > > >> +++ b/arch/riscv/dts/hifive-unleashed-a00-u-boot.dtsi
> > > >> @@ -26,6 +26,10 @@
> > > >>
> > > >>  };
> > > >>
> > > >> +&clint {
> > > >> +       clocks = <&rtcclk>;
> > > >> +};
> > > >
> > > > Can we consider making this property a standard property by the kernel
> > > > upstream? How does the kernel CLINT timer driver determine its running
> > > > frequency?
> > >
> > > Currently it gets it from /cpus/timebase-frequency.
> >
> > What's your comment on this? I think this should go upstream to the
> > standard bindings.
>
> My apologies for delay. Too many mailing list to track.
>
> I think "clocks" should be an optional DT property for CLINT driver (both
> Linux and U-Boot). If "clocks" is not available then we should fallback to
> "/cpus/timebase-frequency"
>

Agreed. The question is whether this should be mentioned in the DT
bindings doc in the kernel tree?

> Please note in any case the "/cpus/timebase-frequency" will remain
> mandatory for generic RISC-V timer (both Linux and U-Boot).

Regards,
Bin


More information about the U-Boot mailing list