Eric,
There is no need for a new opcode.
The behavior is simple and trivial to support.
If standard flush_cache/ext were to behave just like standard data_in
taskfile register setup, yet use a non_data command state machine it would
be done.
Special case would be deal with LBA Zero and this would have to behave
like a complete device flush. Since flushing sector zero is not generally
done ... well this would go into a design debate and it is not my issue
nor my desire to enter one today.
28-bit would support max 256 sectors
48-bit would support max 65536 sectors
Anyone could write this simple proposal to T13 for SATA and T10 for SAS.