Hi Peter, thank you for your remarks!
>> +}; >> + >> +static uint64_t ficr_read(void *opaque, hwaddr offset > >> + value &= ~(NRF51_PAGE_SIZE - 1); >> + if (value < (s->flash_size - NRF51_PAGE_SIZE)) { >> + memset(s->storage + value / 4, 0xFF, NRF51_PAGE_SIZE); > > Can the guest try to execute from the flash storage? If so > then just updating the backing storage directly like this is > not sufficient to ensure that QEMU discards any now-stale > translated code blocks from the affected memory. What else is necessary to invalidate stale blocks? >> + >> +static void nrf51_nvm_reset(DeviceState *dev) >> +{ >> + NRF51NVMState *s = NRF51_NVM(dev); >> + >> + s->config = 0x00; > > Shouldn't uicr_content[] and storage be reset too ? Storage and uicr_content should be retained during a device reset. Best, Steffen