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-02/msg05248.html.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Based-on: <20220224115956.29997-1-mark.cave-ayland@ilande.co.uk>
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 | 79 +++++++++++++++++++++++++++++++++-----
include/hw/display/macfb.h | 5 +--
include/hw/scsi/esp.h | 11 +++++-
4 files changed, 129 insertions(+), 23 deletions(-)
--
2.20.1