[PATCH v2 0/3] riscv: Add ACLINT mtimer and mswi devices support

Bin Meng bmeng at tinylab.org
Wed Jun 21 17:11:43 CEST 2023


This RISC-V ACLINT specification [1] defines a set of memory mapped
devices which provide inter-processor interrupts (IPI) and timer
functionalities for each HART on a multi-HART RISC-V platform.

This seriesl updates U-Boot existing SiFive CLINT driver to handle
the ACLINT changes, and is now able to support both CLINT and ACLINT.

With this series, U-Boot is able to boot on:

- QEMU 'virt' machine with 'aclint=on'
- Rocket Chip with ACLINT changes [2]

[1] https://github.com/riscv/riscv-aclint/blob/main/riscv-aclint.adoc
[2] https://github.com/chipsalliance/rocket-chip/pull/3330

Changes in v2:
- drop ae350.h changes

Bin Meng (3):
  riscv: timer: Update the sifive clint timer driver to support aclint
  riscv: clint: Update the sifive clint ipi driver to support aclint
  riscv: Rename SiFive CLINT to RISC-V ALINT

 MAINTAINERS                                   |  2 +-
 arch/riscv/Kconfig                            | 12 ++-
 arch/riscv/cpu/fu540/Kconfig                  |  2 +-
 arch/riscv/cpu/fu740/Kconfig                  |  2 +-
 arch/riscv/cpu/generic/Kconfig                |  4 +-
 arch/riscv/cpu/jh7110/Kconfig                 |  2 +-
 arch/riscv/include/asm/global_data.h          |  4 +-
 arch/riscv/include/asm/syscon.h               |  2 +-
 arch/riscv/lib/Makefile                       |  2 +-
 .../lib/{sifive_clint.c => aclint_ipi.c}      | 31 ++++++--
 board/openpiton/riscv64/Kconfig               |  2 +-
 board/sipeed/maix/Kconfig                     |  2 +-
 drivers/timer/Makefile                        |  2 +-
 drivers/timer/riscv_aclint_timer.c            | 74 +++++++++++++++++++
 drivers/timer/sifive_clint_timer.c            | 68 -----------------
 include/configs/qemu-riscv.h                  |  2 +-
 include/configs/sifive-unleashed.h            |  2 +-
 include/configs/starfive-visionfive2.h        |  1 +
 18 files changed, 123 insertions(+), 93 deletions(-)
 rename arch/riscv/lib/{sifive_clint.c => aclint_ipi.c} (53%)
 create mode 100644 drivers/timer/riscv_aclint_timer.c
 delete mode 100644 drivers/timer/sifive_clint_timer.c

-- 
2.25.1



More information about the U-Boot mailing list