Hi, This series adds emulation of the UFS Host Initiated Defragmentation (HID) extended feature, plus a qtest covering its host-visible interface.
HID lets the host trigger and control device-side defragmentation through five attributes (IDN 0x35-0x39): bDefragOperation trigger: Disable / Analysis / Defrag dHIDAvailableSize fragmented 4KB units (published by analysis) dHIDSize host-requested defrag target (4KB units) bHIDProgressRatio 0-100%; reading 100 resets HID bHIDState current state; terminal-state read resets HID Each successful user-data SCSI WRITE increments an internal fragment counter, which analysis publishes via `dHIDAvailableSize`. The state machine is driven from `ufs_process_idle()` and only advances while the device is idle. Support is advertised via `dExtendedUFSFeaturesSupport` bit 13. Thanks, Keoseong Keoseong Park (2): hw/ufs: Add Host Initiated Defragmentation (HID) support tests/qtest: Add UFS HID qtest hw/ufs/lu.c | 16 ++- hw/ufs/trace-events | 4 + hw/ufs/ufs.c | 155 +++++++++++++++++++++- hw/ufs/ufs.h | 4 + include/block/ufs.h | 18 +++ tests/qtest/ufs-test.c | 290 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 480 insertions(+), 7 deletions(-) -- 2.25.1
