diff options
Diffstat (limited to 'src/cpu/simple/atomic.cc')
-rw-r--r-- | src/cpu/simple/atomic.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/cpu/simple/atomic.cc b/src/cpu/simple/atomic.cc index b1efbc5ce..f62f891f7 100644 --- a/src/cpu/simple/atomic.cc +++ b/src/cpu/simple/atomic.cc @@ -399,6 +399,16 @@ Fault AtomicSimpleCPU::writeMem(uint8_t *data, unsigned size, Addr addr, unsigned flags, uint64_t *res) { + + static uint8_t zero_array[64] = {}; + + if (data == NULL) { + assert(size <= 64); + assert(flags & Request::CACHE_BLOCK_ZERO); + // This must be a cache block cleaning request + data = zero_array; + } + // use the CPU's statically allocated write request and packet objects Request *req = &data_write_req; |