Hi, This series attempts to add support for Xilinx Versal's PMC SLCR (system-level control registers) and OSPI flash memory controller to Xilinx Versal virt machine.
The series start with adding a model of Versal's PMC SLCR and connecting the model to the Versal virt machine. The series then adds a couple of headers into the xlnx_csu_dma.h needed for building and reusing it later with the OSPI. The series thereafter introduces a DMA control interface and implements the interface in the xlnx_csu_dma for being able to reuse and control the DMA with the OSPI controller. Thereafter a model of Versal's OSPI controller is added and connected to the Versal virt machine. The series then ends with adding initial support for the Micron Xccelera mt35xu01g flash and flashes of this type are connected to the OSPI in the Versal virt machine. Best regards, Francisco Iglesias Changelog: v3 -> v4 * Correct indentation (patch: "hw/arm/xlnx-versal: Connect Versal's PMC SLCR") * Rename to include "If" in names related to the DMA control interface * In dma-ctrl-if.h: - Don't include qemu-common.h - Use DECLARE_CLASS_CHECKERS dma-ctrl.h * Add a docs/devel documentation patch for the DMA control interface * Improve git messages on the dma-ctrl-if patches v2 -> v3 * Correct and also include hw/sysbus.h and hw/register.h into xlnx_csu_dma.h (patch: "include/hw/dma/xlnx_csu_dma: Add in missing includes in the header") v1 -> v2 * Correct the reset in the PMC SLCR model * Create a sub structure for the OSPI in the Versal structure (in patch: "hw/arm/xlnx-versal: Connect the OSPI flash memory controller model") * Change to use 'drive_get' instead of 'drive_get_next' (in patch: "hw/arm/xlnx-versal-virt: Connect mt35xu01g flashes to the OSPI") * Add a maintainers patch and list myself as maintainer for the OSPI controller Francisco Iglesias (11): hw/misc: Add a model of Versal's PMC SLCR hw/arm/xlnx-versal: Connect Versal's PMC SLCR include/hw/dma/xlnx_csu_dma: Add in missing includes in the header hw/dma: Add the DMA control interface hw/dma/xlnx_csu_dma: Implement the DMA control interface hw/ssi: Add a model of Xilinx Versal's OSPI flash memory controller hw/arm/xlnx-versal: Connect the OSPI flash memory controller model hw/block/m25p80: Add support for Micron Xccela flash mt35xu01g hw/arm/xlnx-versal-virt: Connect mt35xu01g flashes to the OSPI MAINTAINERS: Add an entry for Xilinx Versal OSPI docs/devel: Add documentation for the DMA control interface MAINTAINERS | 7 + docs/devel/dma-ctrl-if.rst | 320 +++++ docs/devel/index.rst | 1 + hw/arm/xlnx-versal-virt.c | 23 + hw/arm/xlnx-versal.c | 105 ++ hw/block/m25p80.c | 2 + hw/dma/dma-ctrl-if.c | 31 + hw/dma/meson.build | 1 + hw/dma/xlnx_csu_dma.c | 32 + hw/misc/meson.build | 5 +- hw/misc/xlnx-versal-pmc-iou-slcr.c | 1445 +++++++++++++++++++++ hw/ssi/meson.build | 1 + hw/ssi/xlnx-versal-ospi.c | 1892 ++++++++++++++++++++++++++++ include/hw/arm/xlnx-versal.h | 26 + include/hw/dma/dma-ctrl-if.h | 72 ++ include/hw/dma/xlnx_csu_dma.h | 9 + include/hw/misc/xlnx-versal-pmc-iou-slcr.h | 51 + include/hw/ssi/xlnx-versal-ospi.h | 86 ++ 18 files changed, 4108 insertions(+), 1 deletion(-) create mode 100644 docs/devel/dma-ctrl-if.rst create mode 100644 hw/dma/dma-ctrl-if.c create mode 100644 hw/misc/xlnx-versal-pmc-iou-slcr.c create mode 100644 hw/ssi/xlnx-versal-ospi.c create mode 100644 include/hw/dma/dma-ctrl-if.h create mode 100644 include/hw/misc/xlnx-versal-pmc-iou-slcr.h create mode 100644 include/hw/ssi/xlnx-versal-ospi.h -- 2.11.0