Since v3:
- Fix "hw/qdev-properties-system.h" (first patch)
- Convert to EndianMode (patch #10)
Rainy saturday, time for some hobbyist contributions :)
In this series we try to address the issue Zoltan reported
and try to fix in [*], but using a more generic approach.
The SDHCI code ends up better consolidated and ready to
scale for more vendor implementations.
I expect (with few QOM knowledge) this to be trivial to review.
- Remove SDHCIState::vendor field
- Convert state fields to class ones
- Simplify endianness handling
- Add default reset values as class fields
[*] https://lore.kernel.org/qemu-devel/20250210160329.DDA7F4E600E@zero.eik.bme.hu/
Philippe Mathieu-Daudé (14):
hw/qdev-properties-system: Include missing 'qapi/qapi-types-common.h'
hw/sd/sdhci: Remove need for SDHCIState::vendor field
hw/sd/sdhci: Introduce SDHCIClass stub
hw/sd/sdhci: Make quirks a class property
hw/sd/sdhci: Make I/O region size a class property
hw/sd/sdhci: Enforce little endianness on PCI devices
hw/sd/sdhci: Allow SDHCI classes to register their own MemoryRegionOps
hw/sd/sdhci: Simplify MemoryRegionOps endianness check
hw/sd/sdhci: Unify default MemoryRegionOps
hw/sd/sdhci: Convert SDHCIState::endianness to EndianMode
hw/sd/sdhci: Add SDHCIClass::ro::capareg field
hw/sd/sdhci: Allow SDHCI classes to have different register reset
values
hw/sd/sdhci: Implement Freescale eSDHC as TYPE_FSL_ESDHC
hw/ppc/e500: Replace generic SDHCI by Freescale eSDHC
hw/sd/sdhci-internal.h | 28 ++---
include/hw/qdev-properties-system.h | 1 +
include/hw/sd/sdhci.h | 46 +++++++-
hw/arm/fsl-imx25.c | 2 -
hw/arm/fsl-imx6.c | 2 -
hw/arm/fsl-imx6ul.c | 2 -
hw/arm/fsl-imx7.c | 2 -
hw/arm/fsl-imx8mp.c | 2 -
hw/ppc/e500.c | 12 +-
hw/sd/sdhci-pci.c | 1 +
hw/sd/sdhci.c | 172 ++++++++++++++++++----------
11 files changed, 170 insertions(+), 100 deletions(-)
--
2.47.1