The UFS controller implementation is currently tied to its PCI QOM
device. This series separates the controller core from the PCI frontend
and adds a reusable SysBus frontend, following the AHCI model.
The existing "ufs" PCI device and its properties remain unchanged.
Platform-specific controllers can derive from TYPE_SYSBUS_UFS and keep
only their hardware-specific behavior.
Jeuk Kim (2):
hw/ufs: Separate the controller core from the PCI frontend
hw/ufs: Add a generic SysBus frontend
hw/ufs/Kconfig | 9 ++++
hw/ufs/lu.c | 2 +-
hw/ufs/meson.build | 4 +-
hw/ufs/trace-events | 4 +-
hw/ufs/ufs-pci.c | 112 ++++++++++++++++++++++++++++++++++++++++++++
hw/ufs/ufs-sysbus.c | 81 ++++++++++++++++++++++++++++++++
hw/ufs/ufs-sysbus.h | 22 +++++++++
hw/ufs/ufs.c | 108 +++++++++---------------------------------
hw/ufs/ufs.h | 14 ++++--
9 files changed, 262 insertions(+), 94 deletions(-)
create mode 100644 hw/ufs/ufs-pci.c
create mode 100644 hw/ufs/ufs-sysbus.c
create mode 100644 hw/ufs/ufs-sysbus.h
--
2.43.0