All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 00/30] Initial i.MX7 support
@ 2017-11-06 15:47 Andrey Smirnov
  2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 01/30] imx_fec: Do not link to netdev Andrey Smirnov
                   ` (29 more replies)
  0 siblings, 30 replies; 58+ messages in thread
From: Andrey Smirnov @ 2017-11-06 15:47 UTC (permalink / raw)
  To: qemu-arm
  Cc: Andrey Smirnov, Peter Maydell, Jason Wang,
	Philippe Mathieu-Daudé,
	qemu-devel, yurovsky

Hi everyone,

This v3 of the patch series containing the work that I've done in
order to enable support for i.MX7 emulation in QEMU.

As the one before last commit in the series states the supported i.MX7
features are:

    * up to 2 Cortex A9 cores (SMP works with PSCI)
    * A7 MPCORE (identical to A15 MPCORE)
    * 4 GPTs modules
    * 7 GPIO controllers
    * 2 IOMUXC controllers
    * 1 CCM module
    * 1 SVNS module
    * 1 SRC module
    * 1 GPCv2 controller
    * 4 eCSPI controllers
    * 4 I2C controllers
    * 7 i.MX UART controllers
    * 2 FlexCAN controllers
    * 2 Ethernet controllers (FEC)
    * 3 SD controllers (USDHC)
    * 4 WDT modules
    * 1 SDMA module
    * 1 GPR module
    * 2 USBMISC modules
    * 2 ADC modules
    * 1 PCIe controller
    * 3 USB controllers
    * 1 LCD controller
    * 1 ARMv7 DAP IP block

Feedback is welcome!

Changes since [v2]:

    - Added stubs for more blocks that were causing memory
      transactions when booting Linux guest as were revealed by
      additional testing of the patchest

    - Added proper USB emulation code, so now it should be possible to
      emulated guest's USB bus

Changes since [v1]:

    - Patchset no longer relies on "ignore_memory_transaction_failures = false"
      for its functionality

    - As a consequnce of implementing the above a number of patches
      implementing dummy IP block emulation as well as PCIe emulation
      patches that I alluded to in [v1] are now included in this patch
      series

    - "has_el3" property is no longer being set to "false" as a part
      of intialization of A7 CPU. I couldn't reproduce the issues that
      I thought I was having, so I just dropped that code.

    - A number of smaller feedback items from Peter and other has been
      incorporated into the patches.


Peter, I didn't hear anything from you about the code of
mcimx7d_add_psci_node(), as discussed here:

https://www.mail-archive.com/qemu-devel@nongnu.org/msg486874.html

so I kept the original code intact. As I mentioned before, my goal was
to be able to boot into vanilla Linux kerenel and have working SMP
without needing to use a PSCI implementing bootloader. If that is
something that new board code shouldn't do, please let me know.

Thanks,
Andrey Smirnov

[v2] https://lists.gnu.org/archive/html/qemu-devel/2017-10/msg05516.html
[v1] https://lists.gnu.org/archive/html/qemu-devel/2017-09/msg04770.html


Andrey Smirnov (30):
  imx_fec: Do not link to netdev
  imx_fec: Refactor imx_eth_enable_rx()
  imx_fec: Change queue flushing heuristics
  imx_fec: Use ENET_FTRL to determine truncation length
  imx_fec: Use MIN instead of explicit ternary operator
  imx_fec: Emulate SHIFT16 in ENETx_RACC
  imx_fec: Add support for multiple Tx DMA rings
  imx_fec: Use correct length for packet size
  imx_fec: Fix a typo in imx_enet_receive()
  imx_fec: Reserve full 4K page for the register file
  sdhci: Add i.MX specific subtype of SDHCI
  sdhci: Implement write method of ACMD12ERRSTS register
  i.MX: Add code to emulate i.MX7 CCM, PMU and ANALOG IP blocks
  i.MX: Add code to emulate i.MX2 watchdog IP block
  i.MX: Add code to emulate i.MX7 SNVS IP-block
  i.MX: Add code to emulate GPCv2 IP block
  i.MX: Add code to emulate i.MX7 IOMUXC IP block
  i.MX: Add i.MX7 GPT variant
  i.MX: Add code to emulate SDMA IP block
  i.MX: Add code to emulate FlexCAN IP block
  i.MX: Add implementation of i.MX7 GPR IP block
  pci: Add support for Designware IP block
  i.MX: Add code to emulate i.MX7 USBMISC IP block
  i.MX: Add code to emulate i.MX7 ADC IP block
  i.MX: Add code to emulate i.MX7 SRC IP-block
  usb: Add basic code to emulate Chipidea USB IP
  ARM: Add basic code to emulate A7MPCore DAP block
  i.MX: Add code to emulate i.MX LCD block
  i.MX: Add i.MX7 SOC implementation.
  Implement support for i.MX7 Sabre board

 default-configs/arm-softmmu.mak  |   3 +
 hw/arm/Makefile.objs             |   4 +-
 hw/arm/coresight.c               | 120 ++++++++
 hw/arm/fsl-imx6.c                |   1 +
 hw/arm/fsl-imx7.c                | 646 +++++++++++++++++++++++++++++++++++++++
 hw/arm/mcimx7d-sabre.c           | 101 ++++++
 hw/display/Makefile.objs         |   2 +
 hw/display/imx_lcdif.c           |  71 +++++
 hw/dma/Makefile.objs             |   1 +
 hw/dma/imx_sdma.c                |  99 ++++++
 hw/intc/Makefile.objs            |   2 +-
 hw/intc/imx_gpcv2.c              | 125 ++++++++
 hw/misc/Makefile.objs            |   8 +
 hw/misc/imx2_wdt.c               |  88 ++++++
 hw/misc/imx7_adc.c               |  99 ++++++
 hw/misc/imx7_ccm.c               | 233 ++++++++++++++
 hw/misc/imx7_gpr.c               | 119 ++++++++
 hw/misc/imx7_iomuxc.c            |  99 ++++++
 hw/misc/imx7_snvs.c              |  83 +++++
 hw/misc/imx7_src.c               |  93 ++++++
 hw/misc/imx_flexcan.c            |  99 ++++++
 hw/net/imx_fec.c                 | 163 +++++++---
 hw/pci-host/Makefile.objs        |   2 +
 hw/pci-host/designware.c         | 614 +++++++++++++++++++++++++++++++++++++
 hw/sd/sdhci-internal.h           |  15 +
 hw/sd/sdhci.c                    | 130 +++++++-
 hw/timer/imx_gpt.c               |  25 ++
 hw/usb/Makefile.objs             |   2 +
 hw/usb/chipidea.c                | 176 +++++++++++
 hw/usb/imx-usbmisc.c             |  99 ++++++
 include/hw/arm/coresight.h       |  24 ++
 include/hw/arm/fsl-imx7.h        | 233 ++++++++++++++
 include/hw/display/imx_lcdif.h   |  16 +
 include/hw/dma/imx_sdma.h        |  22 ++
 include/hw/intc/imx_gpcv2.h      |  22 ++
 include/hw/misc/imx2_wdt.h       |  34 +++
 include/hw/misc/imx7_adc.h       |  22 ++
 include/hw/misc/imx7_ccm.h       | 130 ++++++++
 include/hw/misc/imx7_gpr.h       |  28 ++
 include/hw/misc/imx7_iomuxc.h    |  22 ++
 include/hw/misc/imx7_snvs.h      |  35 +++
 include/hw/misc/imx7_src.h       |  22 ++
 include/hw/misc/imx_flexcan.h    |  22 ++
 include/hw/net/imx_fec.h         |  24 +-
 include/hw/pci-host/designware.h |  92 ++++++
 include/hw/pci/pci_ids.h         |   2 +
 include/hw/sd/sdhci.h            |   8 +
 include/hw/timer/imx_gpt.h       |   1 +
 include/hw/usb/chipidea.h        |  16 +
 include/hw/usb/imx-usbmisc.h     |  22 ++
 50 files changed, 4074 insertions(+), 45 deletions(-)
 create mode 100644 hw/arm/coresight.c
 create mode 100644 hw/arm/fsl-imx7.c
 create mode 100644 hw/arm/mcimx7d-sabre.c
 create mode 100644 hw/display/imx_lcdif.c
 create mode 100644 hw/dma/imx_sdma.c
 create mode 100644 hw/intc/imx_gpcv2.c
 create mode 100644 hw/misc/imx2_wdt.c
 create mode 100644 hw/misc/imx7_adc.c
 create mode 100644 hw/misc/imx7_ccm.c
 create mode 100644 hw/misc/imx7_gpr.c
 create mode 100644 hw/misc/imx7_iomuxc.c
 create mode 100644 hw/misc/imx7_snvs.c
 create mode 100644 hw/misc/imx7_src.c
 create mode 100644 hw/misc/imx_flexcan.c
 create mode 100644 hw/pci-host/designware.c
 create mode 100644 hw/usb/chipidea.c
 create mode 100644 hw/usb/imx-usbmisc.c
 create mode 100644 include/hw/arm/coresight.h
 create mode 100644 include/hw/arm/fsl-imx7.h
 create mode 100644 include/hw/display/imx_lcdif.h
 create mode 100644 include/hw/dma/imx_sdma.h
 create mode 100644 include/hw/intc/imx_gpcv2.h
 create mode 100644 include/hw/misc/imx2_wdt.h
 create mode 100644 include/hw/misc/imx7_adc.h
 create mode 100644 include/hw/misc/imx7_ccm.h
 create mode 100644 include/hw/misc/imx7_gpr.h
 create mode 100644 include/hw/misc/imx7_iomuxc.h
 create mode 100644 include/hw/misc/imx7_snvs.h
 create mode 100644 include/hw/misc/imx7_src.h
 create mode 100644 include/hw/misc/imx_flexcan.h
 create mode 100644 include/hw/pci-host/designware.h
 create mode 100644 include/hw/usb/chipidea.h
 create mode 100644 include/hw/usb/imx-usbmisc.h

-- 
2.13.6

^ permalink raw reply	[flat|nested] 58+ messages in thread

end of thread, other threads:[~2017-11-23  9:52 UTC | newest]

Thread overview: 58+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-06 15:47 [Qemu-devel] [PATCH v3 00/30] Initial i.MX7 support Andrey Smirnov
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 01/30] imx_fec: Do not link to netdev Andrey Smirnov
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 02/30] imx_fec: Refactor imx_eth_enable_rx() Andrey Smirnov
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 03/30] imx_fec: Change queue flushing heuristics Andrey Smirnov
2017-11-21 17:27   ` Peter Maydell
2017-11-22 20:22     ` Andrey Smirnov
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 04/30] imx_fec: Use ENET_FTRL to determine truncation length Andrey Smirnov
2017-11-21 17:31   ` Peter Maydell
2017-11-22 20:22     ` Andrey Smirnov
2017-11-23  9:50       ` Peter Maydell
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 05/30] imx_fec: Use MIN instead of explicit ternary operator Andrey Smirnov
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 06/30] imx_fec: Emulate SHIFT16 in ENETx_RACC Andrey Smirnov
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 07/30] imx_fec: Add support for multiple Tx DMA rings Andrey Smirnov
2017-11-21 17:44   ` Peter Maydell
2017-11-22 20:25     ` Andrey Smirnov
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 08/30] imx_fec: Use correct length for packet size Andrey Smirnov
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 09/30] imx_fec: Fix a typo in imx_enet_receive() Andrey Smirnov
2017-11-21 17:44   ` Peter Maydell
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 10/30] imx_fec: Reserve full 4K page for the register file Andrey Smirnov
2017-11-21 17:48   ` Peter Maydell
2017-11-22 20:34     ` Andrey Smirnov
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 11/30] sdhci: Add i.MX specific subtype of SDHCI Andrey Smirnov
2017-11-21 18:02   ` Peter Maydell
2017-11-22 20:43     ` Andrey Smirnov
2017-11-23  9:52       ` Peter Maydell
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 12/30] sdhci: Implement write method of ACMD12ERRSTS register Andrey Smirnov
2017-11-21 18:04   ` Peter Maydell
2017-11-22 20:50     ` Andrey Smirnov
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 13/30] i.MX: Add code to emulate i.MX7 CCM, PMU and ANALOG IP blocks Andrey Smirnov
2017-11-21 18:08   ` Peter Maydell
2017-11-22 21:06     ` Andrey Smirnov
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 14/30] i.MX: Add code to emulate i.MX2 watchdog IP block Andrey Smirnov
2017-11-21 18:10   ` Peter Maydell
2017-11-22 21:07     ` Andrey Smirnov
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 15/30] i.MX: Add code to emulate i.MX7 SNVS IP-block Andrey Smirnov
2017-11-21 18:15   ` Peter Maydell
2017-11-06 15:47 ` [Qemu-devel] [PATCH v3 16/30] i.MX: Add code to emulate GPCv2 IP block Andrey Smirnov
2017-11-21 18:18   ` Peter Maydell
2017-11-06 15:48 ` [Qemu-devel] [PATCH v3 17/30] i.MX: Add code to emulate i.MX7 IOMUXC " Andrey Smirnov
2017-11-06 15:48 ` [Qemu-devel] [PATCH v3 19/30] i.MX: Add code to emulate SDMA " Andrey Smirnov
2017-11-21 18:20   ` Peter Maydell
2017-11-22 21:08     ` Andrey Smirnov
2017-11-06 15:48 ` [Qemu-devel] [PATCH v3 20/30] i.MX: Add code to emulate FlexCAN " Andrey Smirnov
2017-11-06 15:48 ` [Qemu-devel] [PATCH v3 21/30] i.MX: Add implementation of i.MX7 GPR " Andrey Smirnov
2017-11-06 15:48 ` [Qemu-devel] [PATCH v3 22/30] pci: Add support for Designware " Andrey Smirnov
2017-11-06 15:48 ` [Qemu-devel] [PATCH v3 23/30] i.MX: Add code to emulate i.MX7 USBMISC " Andrey Smirnov
2017-11-06 15:48 ` [Qemu-devel] [PATCH v3 24/30] i.MX: Add code to emulate i.MX7 ADC " Andrey Smirnov
2017-11-06 15:48 ` [Qemu-devel] [PATCH v3 25/30] i.MX: Add code to emulate i.MX7 SRC IP-block Andrey Smirnov
2017-11-06 15:48 ` [Qemu-devel] [PATCH v3 26/30] usb: Add basic code to emulate Chipidea USB IP Andrey Smirnov
2017-11-06 15:48 ` [Qemu-devel] [PATCH v3 27/30] ARM: Add basic code to emulate A7MPCore DAP block Andrey Smirnov
2017-11-06 15:48 ` [Qemu-devel] [PATCH v3 28/30] i.MX: Add code to emulate i.MX LCD block Andrey Smirnov
2017-11-06 15:48 ` [Qemu-devel] [PATCH v3 29/30] i.MX: Add i.MX7 SOC implementation Andrey Smirnov
2017-11-22 15:34   ` Igor Mammedov
2017-11-22 21:08     ` Andrey Smirnov
     [not found] ` <20171106154813.19936-31-andrew.smirnov@gmail.com>
2017-11-21 18:22   ` [Qemu-devel] [PATCH v3 30/30] Implement support for i.MX7 Sabre board Peter Maydell
2017-11-22 19:24     ` Andrey Smirnov
2017-11-21 18:34 ` [Qemu-devel] [PATCH v3 00/30] Initial i.MX7 support Peter Maydell
2017-11-22 20:19   ` Andrey Smirnov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.