qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 5/7] rust: pl011: extend registers to 32 bits


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH 5/7] rust: pl011: extend registers to 32 bits
Date: Wed, 18 Dec 2024 14:43:04 +0100
User-agent: Mozilla Thunderbird

On 12/12/24 18:22, Paolo Bonzini wrote:
The PL011 Technical Reference Manual lists the "real" size of the
registers in table 3-1, and only rounds up to the next byte when
describing the registers; for example, UARTDR is listed as having
width 12/8 (12 bits read, 8 written) and only bits 15:0 are listed
in "Table 3-2 UARTDR Register".

However, in practice these are 32-bit registers, accessible only
through 32-bit MMIO accesses; preserving the fiction that they're
smaller introduces multiple casts (to go from the bilge bitfield
type to e.g u16 to u64) and more importantly it breaks the
migration stream (though only on big-endian machines) because
the Rust vmstate macros are not yet type safe.

This also better matches PL011_OPS::impl_.


So, just make everything 32-bits wide.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
  rust/hw/char/pl011/src/device.rs | 36 ++++++++++++++------------------
  rust/hw/char/pl011/src/lib.rs    | 23 +++++++++-----------
  2 files changed, 26 insertions(+), 33 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]