[PATCH v3 1/5] lib: utils/fdt: Add fdt_parse_timebase_frequency() function

Anup Patel anup at brainfault.org
Sun Sep 26 20:57:27 PDT 2021


On Sat, Sep 25, 2021 at 12:58 PM Xiang W <wxjstz at 126.com> wrote:
>
> 在 2021-09-25星期六的 10:07 +0530,Anup Patel写道:
> > We add fdt_parse_timebase_frequency() function which can be used
> > by ACLINT mtimer driver and platform code to get timebase frequency.
> >
> > Signed-off-by: Anup Patel <anup.patel at wdc.com>
> > Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
> Reviewed-by: Xiang W <wxjstz at 126.com>

Applied this patch to the riscv/opensbi repo

Regards,
Anup

> > ---
> >  include/sbi_utils/fdt/fdt_helper.h |  2 ++
> >  lib/utils/fdt/fdt_helper.c         | 21 +++++++++++++++++++++
> >  2 files changed, 23 insertions(+)
> >
> > diff --git a/include/sbi_utils/fdt/fdt_helper.h
> > b/include/sbi_utils/fdt/fdt_helper.h
> > index 2246254..5cb7340 100644
> > --- a/include/sbi_utils/fdt/fdt_helper.h
> > +++ b/include/sbi_utils/fdt/fdt_helper.h
> > @@ -50,6 +50,8 @@ int fdt_parse_hart_id(void *fdt, int cpu_offset,
> > u32 *hartid);
> >
> >  int fdt_parse_max_hart_id(void *fdt, u32 *max_hartid);
> >
> > +int fdt_parse_timebase_frequency(void *fdt, unsigned long *freq);
> > +
> >  int fdt_parse_gaisler_uart_node(void *fdt, int nodeoffset,
> >                                 struct platform_uart_data *uart);
> >
> > diff --git a/lib/utils/fdt/fdt_helper.c b/lib/utils/fdt/fdt_helper.c
> > index 5628337..5bf4021 100644
> > --- a/lib/utils/fdt/fdt_helper.c
> > +++ b/lib/utils/fdt/fdt_helper.c
> > @@ -269,6 +269,27 @@ int fdt_parse_max_hart_id(void *fdt, u32
> > *max_hartid)
> >         return 0;
> >  }
> >
> > +int fdt_parse_timebase_frequency(void *fdt, unsigned long *freq)
> > +{
> > +       const fdt32_t *val;
> > +       int len, cpus_offset;
> > +
> > +       if (!fdt || !freq)
> > +               return SBI_EINVAL;
> > +
> > +       cpus_offset = fdt_path_offset(fdt, "/cpus");
> > +       if (cpus_offset < 0)
> > +               return cpus_offset;
> > +
> > +       val = fdt_getprop(fdt, cpus_offset, "timebase-frequency",
> > &len);
> > +       if (len > 0 && val)
> > +               *freq = fdt32_to_cpu(*val);
> > +       else
> > +               return SBI_ENOENT;
> > +
> > +       return 0;
> > +}
> > +
> >  int fdt_parse_gaisler_uart_node(void *fdt, int nodeoffset,
> >                                 struct platform_uart_data *uart)
> >  {
> > --
> > 2.25.1
> >
> >
>
>



More information about the opensbi mailing list