On Tue, 2 Jul 2024 at 16:41, Zheyu Ma <zheyum...@gmail.com> wrote: > > The current implementation of bcm2835_thermal_ops sets > impl.max_access_size and valid.min_access_size to 4, but leaves > impl.min_access_size and valid.max_access_size unset, defaulting to 1. > This causes issues when the memory system is presented with an access > of size 2 at an offset of 3, leading to an attempt to synthesize it as > a pair of byte accesses at offsets 3 and 4, which trips an assert. > > Additionally, the lack of valid.max_access_size setting causes another > issue: the memory system tries to synthesize a read using a 4-byte > access at offset 3 even though the device doesn't allow unaligned > accesses. > > This patch addresses these issues by explicitly setting both > impl.min_access_size and valid.max_access_size to 4, ensuring proper > handling of access sizes. > > Error log: > ERROR:hw/misc/bcm2835_thermal.c:55:bcm2835_thermal_read: code should not be > reached > Bail out! ERROR:hw/misc/bcm2835_thermal.c:55:bcm2835_thermal_read: code > should not be reached > Aborted > > Reproducer: > cat << EOF | qemu-system-aarch64 -display \ > none -machine accel=qtest, -m 512M -machine raspi3b -m 1G -qtest stdio > readw 0x3f212003 > EOF > > Signed-off-by: Zheyu Ma <zheyum...@gmail.com> > ---
Applied to target-arm.next, thanks. -- PMM