[PATCH v4 00/14] Add Andes AE350 fdt driver support

Anup Patel anup at brainfault.org
Mon Oct 24 01:10:37 PDT 2022


On Mon, Oct 24, 2022 at 12:43 PM Yu-Chien Peter Lin
<peterlin at andestech.com> wrote:
>
> On Sun, Oct 23, 2022 at 10:42:52AM +0530, Anup Patel wrote:
> > On Fri, Oct 14, 2022 at 6:03 AM Yu Chien Peter Lin
> > <peterlin at andestech.com> wrote:
> > >
> > > We move the devices used by AE350 to fdt driver framework, reuse
> > > existing driver and add timer, ipi and reset drivers.
> > > The OpenSBI domain support is also enabled. As of now, we can use
> > > Kconfig to manage these configurations that can support variants of
> > > Andes platform and SoC like Kendryte K510.
> > >
> > > Changes v1 -> v2
> > >   - Rename Andes-specific devices (PLMT, PLICSW) compatible string
> > >   - Update ISA string in CPU nodes
> > > Changes v2 -> v3
> > >   - Add PATCH1 and PATCH2 to fix typos
> > >   - Add PATCH3 which factors out a function for adding mtimer and ipi
> > >     device regions to root domain
> > >   - Remove unused variable "num_src" and "riscv,ndev" property of ipi
> > >     device node
> > > Changes v3 -> v4
> > >   - Add PATCH3 to fix grammar
> > >   - Move plmt_{cold,warm}_timer_init() to andes_plmt.c and define
> > >     fdt_plmt_cold_timer_init() which adds PLMT region and sets
> > >     timer device
> > >   - Move plicsw_{cold,warm}_ipi_init() to andes_plicsw.c and define
> > >     fdt_plicsw_cold_ipi_init() which adds PLICSW region and sets
> > >     ipi device
> > >
> > >
> > > Yu Chien Peter Lin (14):
> > >   include: sbi: Fix typo in comment
> > >   lib: sbi: Fix typo in comment
> > >   include: sbi: Fix grammar in comment
> > >   lib: sbi: Add sbi_domain_root_add_memrange() API
> > >   platform: andes/ae350: Remove enabling cache from an350_final_init
> > >   platform: andes/ae350: Use kconfig to set platform version and default
> > >     name
> > >   platform: andes/ae350: Use fdt serial driver
> > >   lib: utils/timer: Add Andes fdt timer support
> > >   lib: utils/reset: Add Andes fdt reset driver support
> > >   platform: andes/ae350: Use fdt irqchip driver
> > >   platform: andes/ae350: Add fw_platform_init for platform
> > >     initialization
> > >   lib: utils/ipi: Add Andes fdt ipi driver support
> > >   platform: andes/ae350: Add AE350 domain support
> > >   docs: andes-ae350.md: Update ae350 documentation for fdt driver
> > >     support
> >
> > Applied this series to the riscv/opensbi repo.
> >
> > Any thoughts on using the generic platform ?
> >
> > Thanks,
> > Anup
>
> Hi Anup,
>
> The FW_TEXT_START on AE350 is different from generic platform.
> Will it become a configuration?

The generic platform has FW_PIC enabled so you can load and
run generic firmwares from any address.

> I think we would keep the platform specific files in andes/ae350
> until we have to refactor the duplicate code.

You can add platform specific overrides to generic platforms which
are selected based on compatible string in the root DT node.

Regards,
Anup

>
> Thanks,
> Peter Lin
>
> >
> > >
> > >  docs/platform/andes-ae350.md            | 184 +++++++++++++++++++++++-
> > >  include/sbi/sbi_domain.h                |  16 ++-
> > >  include/sbi/sbi_scratch.h               |   2 +-
> > >  include/sbi_utils/fdt/fdt_helper.h      |   6 +
> > >  include/sbi_utils/ipi/andes_plicsw.h    |  46 ++++++
> > >  include/sbi_utils/timer/aclint_mtimer.h |   2 +
> > >  include/sbi_utils/timer/andes_plmt.h    |  29 ++++
> > >  lib/sbi/sbi_domain.c                    |  27 ++++
> > >  lib/sbi/sbi_expected_trap.S             |   2 +-
> > >  lib/utils/fdt/fdt_helper.c              | 108 ++++++++++++++
> > >  lib/utils/ipi/Kconfig                   |   9 ++
> > >  lib/utils/ipi/andes_plicsw.c            | 137 ++++++++++++++++++
> > >  lib/utils/ipi/fdt_ipi_plicsw.c          |  47 ++++++
> > >  lib/utils/ipi/objects.mk                |   4 +
> > >  lib/utils/reset/Kconfig                 |   4 +
> > >  lib/utils/reset/fdt_reset_atcwdt200.c   | 122 ++++++++++++++++
> > >  lib/utils/reset/objects.mk              |   3 +
> > >  lib/utils/timer/Kconfig                 |   9 ++
> > >  lib/utils/timer/aclint_mtimer.c         |  50 ++-----
> > >  lib/utils/timer/andes_plmt.c            | 104 ++++++++++++++
> > >  lib/utils/timer/fdt_timer_plmt.c        |  51 +++++++
> > >  lib/utils/timer/objects.mk              |   4 +
> > >  platform/andes/ae350/Kconfig            |  30 +++-
> > >  platform/andes/ae350/objects.mk         |   2 +-
> > >  platform/andes/ae350/platform.c         | 165 +++++++++------------
> > >  platform/andes/ae350/platform.h         |  17 ---
> > >  platform/andes/ae350/plicsw.c           | 139 ------------------
> > >  platform/andes/ae350/plicsw.h           |  44 ------
> > >  platform/andes/ae350/plmt.c             | 107 --------------
> > >  platform/andes/ae350/plmt.h             |  17 ---
> > >  30 files changed, 1021 insertions(+), 466 deletions(-)
> > >  create mode 100644 include/sbi_utils/ipi/andes_plicsw.h
> > >  create mode 100644 include/sbi_utils/timer/andes_plmt.h
> > >  create mode 100644 lib/utils/ipi/andes_plicsw.c
> > >  create mode 100644 lib/utils/ipi/fdt_ipi_plicsw.c
> > >  create mode 100644 lib/utils/reset/fdt_reset_atcwdt200.c
> > >  create mode 100644 lib/utils/timer/andes_plmt.c
> > >  create mode 100644 lib/utils/timer/fdt_timer_plmt.c
> > >  delete mode 100644 platform/andes/ae350/plicsw.c
> > >  delete mode 100644 platform/andes/ae350/plicsw.h
> > >  delete mode 100644 platform/andes/ae350/plmt.c
> > >  delete mode 100644 platform/andes/ae350/plmt.h
> > >
> > > --
> > > 2.34.1
> > >
> > >
> > > --
> > > opensbi mailing list
> > > opensbi at lists.infradead.org
> > > http://lists.infradead.org/mailman/listinfo/opensbi



More information about the opensbi mailing list