This patchset contains fixes for the macfb and esp devices which enable
migration of the q800 machine to succeed here in local testing.
Patches 1-5 contain fixes and improvements for migrating the macfb device
whilst patches 6-9 change the ESPState pdma_cb field from being a
function pointer to an integer index that can be included in the migration
stream.
Finally patch 10 ensures that any in-flight SCSI requests active during
migration are resumed correctly post-migration. This is required because
PDMA requires the guest to read/write DMA data and hence an active
SCSI request cannot run to completion before migration starts.
NOTE: this patchset is based upon my previous mos6522 patchset posted at
https://lists.gnu.org/archive/html/qemu-devel/2022-03/msg01641.html.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Based-on: <20220305150957.5053-1-mark.cave-ayland@ilande.co.uk>
v3:
- Add R-B tags from Peter
- Add paragraph to commit messages in patches 3 and 4 indicating why we don't
care about the migration break
- Add comment in patch 9 explaining the logic around esp_pdma_is_needed()
- Add R-B tags from Laurent
v2:
- Rebase onto master
- Add R-B tags from Phil
- Update patch 8 to use an unsigned type for pdma_cb along with an enum
- Squash fixes into patch 3 (missing default in switch)
Mark Cave-Ayland (10):
macfb: add VMStateDescription for MacfbNubusState and MacfbSysBusState
macfb: don't use special irq_state and irq_mask variables in
MacfbState
macfb: increase number of registers saved in MacfbState
macfb: add VMStateDescription fields for display type and VBL timer
macfb: set initial value of mode control registers in
macfb_common_realize()
esp: introduce esp_set_pdma_cb() function
esp: introduce esp_pdma_cb() function
esp: convert ESPState pdma_cb from a function pointer to an integer
esp: include the current PDMA callback in the migration stream
esp: recreate ESPState current_req after migration
hw/display/macfb.c | 57 ++++++++++++++++++++-----
hw/scsi/esp.c | 87 ++++++++++++++++++++++++++++++++++----
include/hw/display/macfb.h | 5 +--
include/hw/scsi/esp.h | 11 ++++-
4 files changed, 137 insertions(+), 23 deletions(-)
--
2.20.1