[PATCH v3 00/13] hw/riscv: Add the Tenstorrent Atlantis machine

Joel Stanley posted 13 patches 7 hours ago
Failed in applying to current master (apply log)
MAINTAINERS                                  |  20 +
docs/system/riscv/tt_atlantis.rst            |  38 +
docs/system/target-riscv.rst                 |   1 +
hw/riscv/aia.h                               |  25 +
include/hw/i2c/designware_i2c.h              | 101 ++
include/hw/riscv/boot.h                      |  13 +-
include/hw/riscv/tt_atlantis.h               |  92 ++
include/hw/riscv/virt.h                      |   2 +-
hw/i2c/designware_i2c.c                      | 818 ++++++++++++++++
hw/riscv/aia.c                               |  93 ++
hw/riscv/boot.c                              |  49 +-
hw/riscv/microchip_pfsoc.c                   |   6 +-
hw/riscv/opentitan.c                         |   6 +-
hw/riscv/shakti_c.c                          |   6 +-
hw/riscv/sifive_u.c                          |   6 +-
hw/riscv/spike.c                             |   6 +-
hw/riscv/tt_atlantis.c                       | 932 +++++++++++++++++++
hw/riscv/virt-acpi-build.c                   |  27 +-
hw/riscv/virt.c                              |  96 +-
hw/riscv/xiangshan_kmh.c                     |   6 +-
target/riscv/cpu.c                           |   2 +-
hw/i2c/Kconfig                               |   4 +
hw/i2c/meson.build                           |   1 +
hw/i2c/trace-events                          |   4 +
hw/riscv/Kconfig                             |  20 +
hw/riscv/meson.build                         |   3 +-
tests/functional/riscv64/meson.build         |   1 +
tests/functional/riscv64/test_opensbi.py     |   4 +
tests/functional/riscv64/test_tt_atlantis.py |  63 ++
29 files changed, 2337 insertions(+), 108 deletions(-)
create mode 100644 docs/system/riscv/tt_atlantis.rst
create mode 100644 hw/riscv/aia.h
create mode 100644 include/hw/i2c/designware_i2c.h
create mode 100644 include/hw/riscv/tt_atlantis.h
create mode 100644 hw/i2c/designware_i2c.c
create mode 100644 hw/riscv/aia.c
create mode 100644 hw/riscv/tt_atlantis.c
create mode 100755 tests/functional/riscv64/test_tt_atlantis.py
[PATCH v3 00/13] hw/riscv: Add the Tenstorrent Atlantis machine
Posted by Joel Stanley 7 hours ago
v3 brings the atlantis work back into one patch set following review and
off-list discussion with Alistair. There have been a bunch of
improvements made since the last posting:

  - Narrow the AIA refactor, virt-specific code stays in virt.c rather
    than moving to aia.c
  - riscv_boot_info_init must be called before
    riscv_find_and_load_firmware in sifive_u
  - Fix fw_cfg_init_mem_dma API change in the Atlantis machine
  - Fix create_fdt_pmu copying RISCVCPUs by value
  - Fix memory leaks in PCIe DT string allocation
  - Fix functional test file paths and remove unused import
  - Add trace events to the DesignWare I2C driver
  - Add device tree clock to I2C integration
  - Remove unused MachineState argument from halting payload helper
  - Remove unused platform_bus from Atlantis machine
  - Use HWADDR_PRIX consistently

Original cover letter:

Introducing Tenstorrent Atlantis!

 The Tenstorrent Atlantis platform is a collaboration between Tenstorrent
 and CoreLab Technology. It is based on the Atlantis SoC, which includes
 the Ascalon-X CPU and other IP from Tenstorrent and CoreLab Technology.

 The Tenstorrent Ascalon-X is a high performance 64-bit RVA23 compliant
 RISC-V CPU.

This initial series adds the base machine support including:

 - AIA (Advanced Interrupt Architecture) support
 - PCIe controller and DesignWare I2C integration
 - Serial console and device tree generation
 - Functional tests for OpenSBI+Linux boot

Chris Rauer (1):
  hw/i2c: Add designware i2c controller

Joel Stanley (5):
  hw/riscv/virt: Move AIA initialisation to helper file
  hw/riscv/aia: Provide number of irq sources
  hw/riscv: Add Tenstorrent Atlantis machine
  hw/riscv/atlantis: Integrate i2c buses
  hw/riscv/atlantis: Add some i2c peripherals

Nicholas Piggin (7):
  hw/riscv/boot: Describe discontiguous memory in boot_info
  hw/riscv/boot: Account for discontiguous memory when loading firmware
  hw/riscv/boot: Provide a simple halting payload
  target/riscv: tt-ascalon: Enable Zkr extension
  target/riscv: tt-ascalon: Add Svadu extension
  hw/riscv/atlantis: Add PCIe controller
  tests/functional/riscv64: Add tt-atlantis tests

 MAINTAINERS                                  |  20 +
 docs/system/riscv/tt_atlantis.rst            |  38 +
 docs/system/target-riscv.rst                 |   1 +
 hw/riscv/aia.h                               |  25 +
 include/hw/i2c/designware_i2c.h              | 101 ++
 include/hw/riscv/boot.h                      |  13 +-
 include/hw/riscv/tt_atlantis.h               |  92 ++
 include/hw/riscv/virt.h                      |   2 +-
 hw/i2c/designware_i2c.c                      | 818 ++++++++++++++++
 hw/riscv/aia.c                               |  93 ++
 hw/riscv/boot.c                              |  49 +-
 hw/riscv/microchip_pfsoc.c                   |   6 +-
 hw/riscv/opentitan.c                         |   6 +-
 hw/riscv/shakti_c.c                          |   6 +-
 hw/riscv/sifive_u.c                          |   6 +-
 hw/riscv/spike.c                             |   6 +-
 hw/riscv/tt_atlantis.c                       | 932 +++++++++++++++++++
 hw/riscv/virt-acpi-build.c                   |  27 +-
 hw/riscv/virt.c                              |  96 +-
 hw/riscv/xiangshan_kmh.c                     |   6 +-
 target/riscv/cpu.c                           |   2 +-
 hw/i2c/Kconfig                               |   4 +
 hw/i2c/meson.build                           |   1 +
 hw/i2c/trace-events                          |   4 +
 hw/riscv/Kconfig                             |  20 +
 hw/riscv/meson.build                         |   3 +-
 tests/functional/riscv64/meson.build         |   1 +
 tests/functional/riscv64/test_opensbi.py     |   4 +
 tests/functional/riscv64/test_tt_atlantis.py |  63 ++
 29 files changed, 2337 insertions(+), 108 deletions(-)
 create mode 100644 docs/system/riscv/tt_atlantis.rst
 create mode 100644 hw/riscv/aia.h
 create mode 100644 include/hw/i2c/designware_i2c.h
 create mode 100644 include/hw/riscv/tt_atlantis.h
 create mode 100644 hw/i2c/designware_i2c.c
 create mode 100644 hw/riscv/aia.c
 create mode 100644 hw/riscv/tt_atlantis.c
 create mode 100755 tests/functional/riscv64/test_tt_atlantis.py

-- 
2.47.3