[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC 00/10] hw/mos6522: VIA timer emulation fixes and improvements
From: |
David Gibson |
Subject: |
Re: [RFC 00/10] hw/mos6522: VIA timer emulation fixes and improvements |
Date: |
Wed, 25 Aug 2021 13:11:25 +1000 |
On Tue, Aug 24, 2021 at 08:09:36PM +1000, Finn Thain wrote:
> This is a patch series that I started last year. The aim was to try to
> get a monotonic clocksource for Linux/m68k guests. That aim hasn't been
> achieved yet (for q800 machines) but I'm submitting the patch series as
> an RFC because,
>
> - It does improve 6522 emulation fidelity.
>
> - It allows Linux/m68k to make use of the additional timer that the
> hardware indeed offers but which QEMU omits. This has several
> benefits for Linux guests [1].
>
> - I see that Mark has been working on timer emulation issues in his
> github repo [2] and it seems likely that MacOS, NetBSD or A/UX guests
> will also require better 6522 emulation.
>
> To make collaboration easier these patches can also be fetched from
> github [3].
>
> On a real Quadra, accesses to the SY6522 chips are slow because they are
> synchronous with the 783360 Hz "phase 2" clock. In QEMU, they are slow
> only because of the division operation in the timer count calculation.
>
> This patch series improves the fidelity of the emulated chip, but the
> price is more division ops. I haven't tried to measure this yet.
>
> The emulated 6522 still deviates from the behaviour of the real thing,
> however. For example, two consecutive accesses to a real 6522 timer
> counter can never yield the same value. This is not true of the 6522 in
> QEMU 6 wherein two consecutive accesses to a timer count register have
> been observed to yield the same value.
>
> Linux is not particularly robust in the face of a 6522 that deviates
> from the usual behaviour. The problem presently affecting a Linux guest
> is that its 'via' clocksource is prone to monotonicity failure. That is,
> the clocksource counter can jump backwards. This can be observed by
> patching Linux like so:
I'm afraid I know very little about Mac hardware, and almost nothing
about m68k, so I can't really review these. I have a batch of updates
for MAINTAINERS underway, which will take me off the list for this
file.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
- [RFC 02/10] hw/mos6522: Remove get_counter_value() methods and functions, (continued)