[PATCH v2 0/4] Microchip PolarFire SoC support

Padmarao Begari padmarao.begari at microchip.com
Mon Sep 19 13:00:23 UTC 2022


This patch set adds the Microchip PolarFire SoC BSP Variant
support to RISC-V RTEMS.

The PolarFire SoC is the 4x 64-bit RISC-V U54 cores and
a 64-bit RISC-V E51 monitor core SoC from Microchip, more
info available here:
	https://www.microchip.com/en-us/products/fpgas-and-plds/
	system-on-chip-fpgas/polarfire-soc-fpgas#Overview

This new BSP variant is added for the 4x U54 cores not for E51
because the E51 monitor core is resreved for first stage
bootloader (Hart Software Services).

The boot HARTID configurable is implemented for the riscv BSP
to work with individual hart(cpu core) or SMP.

This BSP support components: 4 CPU Cores (U54), Interrupt
controller (PLIC), Timer (CLINT), UART (16550-compatible)
work fine on actual Microchip PolarFire SoC Icicle Kit.

v2:
- Add a license and copyright information in dtb header file
- Use RISCV_BOOT_HARDID instead of RTEMS_BOOT_HARDID
- Add '_RISCV_Map_hardid_to_cpu_index()' and
'_RISCV_Map_cpu_index_to_hardid()' functions
- Change bsp_fdt_get() instead of bsp_fdt_copy() function for dtb
- Move dtb and dtb header configurable build option to the bsps

Padmarao Begari (4):
  bsps/riscv: Add device tree blob
  spec/build/bsps: Add dtb support
  bsps/riscv: Add Microchip PolarFire SoC BSP variant
  bsps/shared/: Use device tree blob

 bsps/riscv/riscv/clock/clockdrv.c             |   6 +-
 bsps/riscv/riscv/config/mpfs64imafdc.cfg      |   9 +
 bsps/riscv/riscv/dts/mpfs.dts                 | 365 +++++++++++
 bsps/riscv/riscv/include/bsp/mpfs-dtb.h       | 602 ++++++++++++++++++
 bsps/riscv/riscv/include/bsp/riscv.h          |  14 +
 bsps/riscv/riscv/irq/irq.c                    |  81 +++
 bsps/riscv/riscv/start/bsp_fatal_halt.c       |   3 +
 bsps/riscv/riscv/start/bspsmp.c               |   2 +-
 bsps/riscv/riscv/start/bspstart.c             |  19 +-
 bsps/riscv/shared/start/start.S               |   2 +
 bsps/shared/start/bsp-fdt.c                   |   8 +
 .../score/cpu/riscv/include/rtems/score/cpu.h |   2 +-
 .../cpu/riscv/include/rtems/score/cpuimpl.h   |   2 +-
 spec/build/bsps/optdtb.yml                    |  19 +
 spec/build/bsps/optdtbheaderpath.yml          |  20 +
 spec/build/bsps/riscv/optextirqmax.yml        |   5 +-
 spec/build/bsps/riscv/optrambegin.yml         |   5 +-
 spec/build/bsps/riscv/optramsize.yml          |   5 +-
 spec/build/bsps/riscv/riscv/abi.yml           |   6 +
 .../bsps/riscv/riscv/bspmpfs64imafdc.yml      |  19 +
 spec/build/bsps/riscv/riscv/grp.yml           |   6 +
 spec/build/bsps/riscv/riscv/optmpfs.yml       |  18 +
 spec/build/bsps/riscv/riscv/optns16550max.yml |   3 +
 spec/build/cpukit/cpuopts.yml                 |   2 +
 spec/build/cpukit/optarchbits.yml             |   1 +
 spec/build/cpukit/optboothartid.yml           |  19 +
 spec/build/cpukit/optsmp.yml                  |   1 +
 27 files changed, 1235 insertions(+), 9 deletions(-)
 create mode 100644 bsps/riscv/riscv/config/mpfs64imafdc.cfg
 create mode 100644 bsps/riscv/riscv/dts/mpfs.dts
 create mode 100644 bsps/riscv/riscv/include/bsp/mpfs-dtb.h
 create mode 100644 spec/build/bsps/optdtb.yml
 create mode 100644 spec/build/bsps/optdtbheaderpath.yml
 create mode 100644 spec/build/bsps/riscv/riscv/bspmpfs64imafdc.yml
 create mode 100644 spec/build/bsps/riscv/riscv/optmpfs.yml
 create mode 100644 spec/build/cpukit/optboothartid.yml

-- 
2.25.1



More information about the devel mailing list