mbox series

[00/14] i.MX and SDHCI improvements

Message ID 20250108092538.11474-1-shentey@gmail.com (mailing list archive)
Headers show
Series i.MX and SDHCI improvements | expand

Message

Bernhard Beschow Jan. 8, 2025, 9:25 a.m. UTC
This series fixes some details in i.MX platform devices, improves SDHCI
compatibility with U-Boot and modernizes some code.

The first 6 patches are bugfixes 1/ resolving infinite loop in U-Boot esdhc
driver, 2/ fixing a character echoing issue in imx-serial, 3/ fixing IRQ sharing
issue in Designware PCIe emulation, and 4/ fixing GPIO level preservation across
resets in imx-gpio. The IRQ sharing issue is fixed using a new device type
"TYPE_SHARED_IRQ" which is inspired by TYPE_SPLIT_IRQ.

Patches 7 and 8 modernize SD card emulation by turning presence and
write-protect GPIOs into qdev GPIOs and then further allowing the GPIOs to be
inverted, just like device tree allows.

The rest of the series is cosmetics including turning DPRINTF() into trace
events which eases debugging.

Bernhard Beschow (14):
  hw/sd/sdhci: Set SDHC_NIS_DMA bit when appropriate
  hw/char/imx_serial: Fix reset value of UFCR register
  hw/char/imx_serial: Update all state before restarting ageing timer
  hw/core: Introduce TYPE_SHARED_IRQ
  hw/pci-host/designware: Expose MSI IRQ
  hw/gpio/imx_gpio: Don't clear input GPIO values upon reset
  hw/sd/sd: Remove legacy sd_set_cb() in favor of GPIOs
  hw/sd/sd: Allow for inverting polarities of presence and write-protect
    GPIOs
  hw/char/imx_serial: Turn some DPRINTF() statements into trace events
  hw/timer/imx_gpt: Remove unused define
  tests/qtest/libqos: Reuse TYPE_IMX_I2C define
  hw/i2c/imx_i2c: Convert DPRINTF() to trace events
  hw/misc/imx6_src: Convert DPRINTF() to trace events
  hw/gpio/imx_gpio: Turn DPRINTF() into trace events

 include/hw/arm/fsl-imx6.h                  |  4 +-
 include/hw/arm/fsl-imx7.h                  |  4 +-
 include/hw/char/imx_serial.h               |  2 +-
 include/hw/core/shared-irq.h               | 39 ++++++++++
 include/hw/pci-host/designware.h           |  1 +
 include/hw/sd/sdcard_legacy.h              |  1 -
 hw/arm/fsl-imx6.c                          | 13 +++-
 hw/arm/fsl-imx7.c                          | 13 +++-
 hw/char/imx_serial.c                       | 65 ++++++++++------
 hw/core/shared-irq.c                       | 88 ++++++++++++++++++++++
 hw/gpio/imx_gpio.c                         | 17 ++---
 hw/i2c/imx_i2c.c                           | 21 ++----
 hw/misc/imx6_src.c                         | 23 ++----
 hw/pci-host/designware.c                   |  7 +-
 hw/sd/sd.c                                 | 39 +++++-----
 hw/sd/sdhci.c                              | 11 ++-
 hw/timer/imx_gpt.c                         |  4 -
 tests/qtest/libqos/arm-imx25-pdk-machine.c |  5 +-
 tests/qtest/libqos/i2c-imx.c               |  4 +-
 hw/arm/Kconfig                             |  2 +
 hw/char/trace-events                       |  5 ++
 hw/core/Kconfig                            |  3 +
 hw/core/meson.build                        |  1 +
 hw/gpio/trace-events                       |  5 ++
 hw/i2c/trace-events                        |  5 ++
 hw/misc/trace-events                       |  6 ++
 26 files changed, 280 insertions(+), 108 deletions(-)
 create mode 100644 include/hw/core/shared-irq.h
 create mode 100644 hw/core/shared-irq.c