On Mon, Aug 6, 2018 at 11:01 AM, Steffen Görtz <cont...@steffen-goertz.de> wrote: > +#define PAGE_SIZE 1024 > +#define FLASH_SIZE (256 * PAGE_SIZE) > +#define FLASH_BASE 0x00000000 > +#define UICR_BASE 0x10001000 > +#define UICR_SIZE 0x100 > +#define NVMC_BASE 0x4001E000UL > +#define NVMC_READY 0x400 > +#define NVMC_CONFIG 0x504 > +#define NVMC_ERASEPAGE 0x508 > +#define NVMC_ERASEPCR1 0x508 > +#define NVMC_ERASEALL 0x50C > +#define NVMC_ERASEPCR0 0x510 > +#define NVMC_ERASEUICR 0x514
All these constants could live in include/hw/arm/nrf51.h. That way tests do not need to duplicate them. As more devices are implemented we can expect this list to grow. > +static void fill_and_erase(hwaddr base, hwaddr size, uint32_t address_reg) Why hwaddr? writel() and friends use uint64_t.