-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
Description
Loads and stores to MMIO regions have special meanings. Flexus assumes loads are idempotent (i.e., not destructive). However, this is not correct; reading an MMIO value might clear its value and make QEMU go into the wrong path.
Steps to Reproduce
Run data caching image with 2 cores
There will be ldr w2, [x2] instruction doing a read from address 0x80_0001_0000, which is in an MMIO region
Expected Behavior
Flexus should not attempt to read the value because it might be destructive, and resync with QEMU afterwards.
Actual Behavior
Flexus reads the value which clears it. QEMU gets wrong data from the load and gives a validation error
Fix: c700de3
Metadata
Metadata
Assignees
Labels
No labels