mbox series

[v2,00/13] i.MX and SDHCI improvements

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

Message

Bernhard Beschow Jan. 11, 2025, 6:36 p.m. UTC
This series fixes some details in i.MX platform devices, improves SDHCI
compatibility with U-Boot and modernizes some code.

The first 5 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.

Patches 6 and 7 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.

v2:
* Drop redundant implementation of TYPE_OR_IRQ (David, Zoltan)
* Use absolute QOM paths when tracing in imx_gpio and imx_i2c (Phil)
* Trace hexadecimal values in imx_serial (Phil)
* Do NOT move inversion of presence and write-protect GPIOs since that changes
the internal logic of the device

Bernhard Beschow (13):
  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/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/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/gpio/imx_gpio.c                         | 19 +++----
 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/gpio/trace-events                       |  5 ++
 hw/i2c/trace-events                        |  5 ++
 hw/misc/trace-events                       |  6 ++
 22 files changed, 151 insertions(+), 108 deletions(-)

Comments

Bernhard Beschow Jan. 14, 2025, 12:46 p.m. UTC | #1
Am 11. Januar 2025 18:36:58 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>This series fixes some details in i.MX platform devices, improves SDHCI
>
>compatibility with U-Boot and modernizes some code.
>
>
>
>The first 5 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.
>
>
>
>Patches 6 and 7 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.
>
>
>
>v2:
>
>* Drop redundant implementation of TYPE_OR_IRQ (David, Zoltan)
>
>* Use absolute QOM paths when tracing in imx_gpio and imx_i2c (Phil)
>
>* Trace hexadecimal values in imx_serial (Phil)
>
>* Do NOT move inversion of presence and write-protect GPIOs since that changes
>
>the internal logic of the device
>
>
>
>Bernhard Beschow (13):
>
>  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/pci-host/designware: Expose MSI IRQ
>
>  hw/gpio/imx_gpio: Don't clear input GPIO values upon reset
>

Does anybody feel comfortable enough reviewing the above four patches? I hit those issues while working on i.MX machines.

The below two patches are less critical for my work but there were patches with discussions floating around recently, e.g. [1].

Thanks,
Bernhard

[1] <https://patchew.org/QEMU/20250108100240.960593-1-clg@redhat.com/>

>  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/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/gpio/imx_gpio.c                         | 19 +++----
>
> 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/gpio/trace-events                       |  5 ++
>
> hw/i2c/trace-events                        |  5 ++
>
> hw/misc/trace-events                       |  6 ++
>
> 22 files changed, 151 insertions(+), 108 deletions(-)
>
>
>
>-- >
>2.48.0
>
>
>