Skip to content

Load Store to MMIO Regions #92

@BugraEryilmaz

Description

@BugraEryilmaz

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
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions