[RTEMS][PATCH v2 0/2] riscv: add freedom E310 Arty A7

Pragnesh Patel pragnesh.patel at sifive.com
Wed Sep 11 07:27:09 UTC 2019


Hello Hesham,

Thanks for the clarification. i am also agree with your comments but
let's say in future, we want to add I2C and SPI for Freedom E310 then
what's your suggestion?

- Pragnesh

On Tue, Sep 10, 2019 at 4:13 PM Hesham Almatary
<heshamelmatary at gmail.com> wrote:
>
> Hi Pragnesh,
>
> Thanks for the v2 update. I guess our question/comment on the previous
> v1 patch was about the addition of bsps/riscv/frdme310arty/ directory
> at all. That is, you might be able to just use  bsps/riscv/riscv
> already. Are there any significant changes that prevent you from just
> using "bsps/riscv/riscv"? For example, griscv doesn't have FDT, and
> has its own way of managing (external) interrupts, so a new gricv bsp
> is added. On the other hand, it looks to me that frdme310arty has FDT
> and the same PLIC/CLINT drivers that riscv/riscv already uses, which
> doesn't really need any special handling or additions. I managed, for
> example, to get bsps/riscv/riscv running on Piccolo [1] on a Xilinx
> FPGA (with FDT, PLIC, CLINT and 16550 Xilinx UART IP) without having
> to do anything (except for just two lines of FDT handling code that I
> submitted patches for).
>
> [1] https://github.com/bluespec/Piccolo
>
> Cheers,
> Hesham
>
> On Tue, 10 Sep 2019 at 07:34, Pragnesh Patel <pragnesh.patel at sifive.com> wrote:
> >
> > This series added a support for RISCV freedom E310 Arty A7 bsp
> > and add bsps/riscv/shared code for reusability
> >
> > Changes in v2:
> >
> >   bsps/riscv/frdme310arty/btimer/btimer.c
> >     - Remove the read_csr() function from btimer.c
> >     - Remove CONFIG_BTIMER_RISCV_GET_MCYCLES macro to get time in
> >       microseconds
> >
> >   bsps/riscv/frdme310arty/clock/clockdrv.c
> >   bsps/riscv/riscv/clock/clockdrv.c
> >     - Delete both files and Add bsps/riscv/shared/clock/clockdrv.c
> >     - riscv_clock_get_timebase_frequency(): Get timebase-frequency from
> >       cpus or cpu at 0 devicetree node because riscv uses "cpus" node and
> >       frdme310arty uses "cpu at 0" node to look for timebase-frequency
> >     - Remove rtems_counter_initialize_converter() and
> >       rtems_timecounter_simple_install() functions
> >
> >   bsps/riscv/frdme310arty/include/bsp/riscv.h
> >     - Remove unused frdme310arty_l2c_base;
> >
> >   bsps/riscv/frdme310arty/start/bsp_fatal_halt.c
> >   bsps/riscv/riscv/start/bsp_fatal_halt.c
> >     - Delete this file and Add bsps/riscv/shared/start/bsp_fatal_halt.c
> >
> >   bsps/riscv/frdme310arty/start/bspstart.c
> >     - Remove unused function riscv_get_node_byname()
> >
> >   bsps/riscv/frdme310arty/start/linkcmds.in
> >     - Use @RISCV_RAM_REGION_BEGIN@ and @RISCV_RAM_REGION_SIZE@ instead of
> >       hard coded values
> >
> >   c/src/lib/libbsp/riscv/frdme310arty/Makefile.am
> >     - librtemsbsp_a_SOURCES -> bsps/riscv/shared/start/bsp_fatal_halt.c
> >     - librtemsbsp_a_SOURCES -> bsps/riscv/shared/clock/clockdrv.c
> >
> >   c/src/lib/libbsp/riscv/frdme310arty/configure.ac
> >     - change RISCV_RAM_REGION_SIZE to default 256MiB
> >
> >   bsps/riscv/riscv/irq/irq.c
> >     - Delete this irq.c and it will now use bsps/riscv/shared/irq/irq.c
> >
> >   c/src/lib/libbsp/riscv/riscv/Makefile.am
> >     - librtemsbsp_a_SOURCES -> bsps/riscv/shared/start/bsp_fatal_halt.c
> >     - librtemsbsp_a_SOURCES -> bsps/riscv/shared/clock/clockdrv.c
> >     - librtemsbsp_a_SOURCES -> bsps/riscv/shared/irq/irq.c
> >
> > Pragnesh Patel (2):
> >   riscv: add freedom E310 Arty A7 bsp
> >   bsp/riscv:  Remove duplicate files
> >
> >  bsps/include/bsp/fatal.h                           |   6 +-
> >  bsps/riscv/frdme310arty/btimer/btimer.c            | 104 ++++++
> >  bsps/riscv/frdme310arty/config/frdme310arty.cfg    |  11 +
> >  bsps/riscv/frdme310arty/console/console-config.c   | 146 ++++++++
> >  bsps/riscv/frdme310arty/console/uart.c             | 100 ++++++
> >  bsps/riscv/frdme310arty/dts/frdme310arty.dts       | 130 +++++++
> >  .../frdme310arty/dts/frdme310arty_dtb_array.c      | 259 ++++++++++++++
> >  bsps/riscv/frdme310arty/headers.am                 |  15 +
> >  bsps/riscv/frdme310arty/include/bsp.h              |  57 ++++
> >  bsps/riscv/frdme310arty/include/bsp/fe310_uart.h   |  42 +++
> >  bsps/riscv/frdme310arty/include/bsp/irq.h          |  73 ++++
> >  bsps/riscv/frdme310arty/include/bsp/riscv.h        |  59 ++++
> >  bsps/riscv/frdme310arty/include/tm27.h             | 334 ++++++++++++++++++
> >  bsps/riscv/frdme310arty/start/bsp_specs            |   9 +
> >  bsps/riscv/frdme310arty/start/bspstart.c           | 204 +++++++++++
> >  bsps/riscv/frdme310arty/start/linkcmds.in          |  49 +++
> >  bsps/riscv/frdme310arty/start/start.S              | 147 ++++++++
> >  bsps/riscv/riscv/clock/clockdrv.c                  | 212 ------------
> >  bsps/riscv/riscv/irq/irq.c                         | 379 ---------------------
> >  bsps/riscv/riscv/start/bsp_fatal_halt.c            |  53 ---
> >  bsps/riscv/shared/clock/clockdrv.c                 | 231 +++++++++++++
> >  bsps/riscv/shared/irq/irq.c                        | 379 +++++++++++++++++++++
> >  bsps/riscv/shared/start/bsp_fatal_halt.c           |  53 +++
> >  c/src/lib/libbsp/riscv/acinclude.m4                |   2 +
> >  c/src/lib/libbsp/riscv/frdme310arty/Makefile.am    |  75 ++++
> >  c/src/lib/libbsp/riscv/frdme310arty/configure.ac   |  68 ++++
> >  c/src/lib/libbsp/riscv/riscv/Makefile.am           |   6 +-
> >  27 files changed, 2555 insertions(+), 648 deletions(-)
> >  create mode 100644 bsps/riscv/frdme310arty/btimer/btimer.c
> >  create mode 100644 bsps/riscv/frdme310arty/config/frdme310arty.cfg
> >  create mode 100644 bsps/riscv/frdme310arty/console/console-config.c
> >  create mode 100644 bsps/riscv/frdme310arty/console/uart.c
> >  create mode 100644 bsps/riscv/frdme310arty/dts/frdme310arty.dts
> >  create mode 100644 bsps/riscv/frdme310arty/dts/frdme310arty_dtb_array.c
> >  create mode 100644 bsps/riscv/frdme310arty/headers.am
> >  create mode 100644 bsps/riscv/frdme310arty/include/bsp.h
> >  create mode 100644 bsps/riscv/frdme310arty/include/bsp/fe310_uart.h
> >  create mode 100644 bsps/riscv/frdme310arty/include/bsp/irq.h
> >  create mode 100644 bsps/riscv/frdme310arty/include/bsp/riscv.h
> >  create mode 100644 bsps/riscv/frdme310arty/include/tm27.h
> >  create mode 100644 bsps/riscv/frdme310arty/start/bsp_specs
> >  create mode 100644 bsps/riscv/frdme310arty/start/bspstart.c
> >  create mode 100644 bsps/riscv/frdme310arty/start/linkcmds.in
> >  create mode 100644 bsps/riscv/frdme310arty/start/start.S
> >  delete mode 100644 bsps/riscv/riscv/clock/clockdrv.c
> >  delete mode 100644 bsps/riscv/riscv/irq/irq.c
> >  delete mode 100644 bsps/riscv/riscv/start/bsp_fatal_halt.c
> >  create mode 100644 bsps/riscv/shared/clock/clockdrv.c
> >  create mode 100644 bsps/riscv/shared/irq/irq.c
> >  create mode 100644 bsps/riscv/shared/start/bsp_fatal_halt.c
> >  create mode 100644 c/src/lib/libbsp/riscv/frdme310arty/Makefile.am
> >  create mode 100644 c/src/lib/libbsp/riscv/frdme310arty/configure.ac
> >
> > --
> > 2.7.4
> >
> > _______________________________________________
> > devel mailing list
> > devel at rtems.org
> > http://lists.rtems.org/mailman/listinfo/devel
>
> --
> Hesham



More information about the devel mailing list