Lines Matching refs:addr
148 static bool is_page_aligned_check(uint32_t addr) in is_page_aligned_check() argument
151 return !(addr % flash_page_size_get()); in is_page_aligned_check()
154 __STATIC_INLINE bool is_halfword_aligned(uint32_t addr) in is_halfword_aligned() argument
156 return ((addr & 0x1u) == 0u); in is_halfword_aligned()
159 __STATIC_INLINE bool is_valid_address(uint32_t addr, bool uicr_allowed) in is_valid_address() argument
161 if ((addr - NVMC_FLASH_BASE_ADDRESS) < flash_total_size_get()) in is_valid_address()
167 (addr - (uint32_t)NRF_UICR) < sizeof(NRF_UICR_Type)) in is_valid_address()
178 static uint32_t partial_word_create(uint32_t addr, uint8_t const * bytes, uint32_t bytes_count) in partial_word_create() argument
183 byte_shift = addr % NVMC_BYTES_IN_WORD; in partial_word_create()
239 static void nvmc_word_write(uint32_t addr, uint32_t value) in nvmc_word_write() argument
249 nrf_nvmc_word_write(addr, value); in nvmc_word_write()
253 static void nvmc_words_write(uint32_t addr, void const * src, uint32_t num_words) in nvmc_words_write() argument
257 nvmc_word_write(addr + (NVMC_BYTES_IN_WORD * i), ((uint32_t const *)src)[i]); in nvmc_words_write()
261 nrfx_err_t nrfx_nvmc_page_erase(uint32_t addr) in nrfx_nvmc_page_erase() argument
263 NRFX_ASSERT(is_valid_address(addr, false)); in nrfx_nvmc_page_erase()
265 if (!is_page_aligned_check(addr)) in nrfx_nvmc_page_erase()
271 nrf_nvmc_page_erase_start(NRF_NVMC, addr); in nrfx_nvmc_page_erase()
303 nrfx_err_t nrfx_nvmc_page_partial_erase_init(uint32_t addr, uint32_t duration_ms) in nrfx_nvmc_page_partial_erase_init() argument
305 NRFX_ASSERT(is_valid_address(addr, false)); in nrfx_nvmc_page_partial_erase_init()
307 if (!is_page_aligned_check(addr)) in nrfx_nvmc_page_partial_erase_init()
313 m_partial_erase_page_addr = addr; in nrfx_nvmc_page_partial_erase_init()
349 bool nrfx_nvmc_byte_writable_check(uint32_t addr, uint8_t val_to_check) in nrfx_nvmc_byte_writable_check() argument
351 NRFX_ASSERT(is_valid_address(addr, true)); in nrfx_nvmc_byte_writable_check()
353 uint8_t val_on_addr = nrf_nvmc_byte_read(addr); in nrfx_nvmc_byte_writable_check()
357 bool nrfx_nvmc_halfword_writable_check(uint32_t addr, uint16_t val_to_check) in nrfx_nvmc_halfword_writable_check() argument
359 NRFX_ASSERT(is_valid_address(addr, true)); in nrfx_nvmc_halfword_writable_check()
360 NRFX_ASSERT(is_halfword_aligned(addr)); in nrfx_nvmc_halfword_writable_check()
364 if ((addr - NVMC_FLASH_BASE_ADDRESS) < flash_total_size_get()) in nrfx_nvmc_halfword_writable_check()
366 val_on_addr = nrf_nvmc_halfword_read(addr); in nrfx_nvmc_halfword_writable_check()
370 val_on_addr = nrfx_nvmc_otp_halfword_read(addr); in nrfx_nvmc_halfword_writable_check()
375 bool nrfx_nvmc_word_writable_check(uint32_t addr, uint32_t val_to_check) in nrfx_nvmc_word_writable_check() argument
377 NRFX_ASSERT(is_valid_address(addr, true)); in nrfx_nvmc_word_writable_check()
378 NRFX_ASSERT(nrfx_is_word_aligned((void const *)addr)); in nrfx_nvmc_word_writable_check()
380 uint32_t val_on_addr = nrf_nvmc_word_read(addr); in nrfx_nvmc_word_writable_check()
384 void nrfx_nvmc_byte_write(uint32_t addr, uint8_t value) in nrfx_nvmc_byte_write() argument
386 NRFX_ASSERT(is_valid_address(addr, true)); in nrfx_nvmc_byte_write()
388 uint32_t aligned_addr = addr & ~(0x03UL); in nrfx_nvmc_byte_write()
390 nrfx_nvmc_word_write(aligned_addr, partial_word_create(addr, &value, 1)); in nrfx_nvmc_byte_write()
393 void nrfx_nvmc_halfword_write(uint32_t addr, uint16_t value) in nrfx_nvmc_halfword_write() argument
395 NRFX_ASSERT(is_valid_address(addr, true)); in nrfx_nvmc_halfword_write()
396 NRFX_ASSERT(is_halfword_aligned(addr)); in nrfx_nvmc_halfword_write()
398 uint32_t aligned_addr = addr & ~(0x03UL); in nrfx_nvmc_halfword_write()
400 nrfx_nvmc_word_write(aligned_addr, partial_word_create(addr, (const uint8_t *)&value, 2)); in nrfx_nvmc_halfword_write()
403 void nrfx_nvmc_word_write(uint32_t addr, uint32_t value) in nrfx_nvmc_word_write() argument
405 NRFX_ASSERT(is_valid_address(addr, true)); in nrfx_nvmc_word_write()
406 NRFX_ASSERT(nrfx_is_word_aligned((void const *)addr)); in nrfx_nvmc_word_write()
410 nvmc_word_write(addr, value); in nrfx_nvmc_word_write()
415 void nrfx_nvmc_bytes_write(uint32_t addr, void const * src, uint32_t num_bytes) in nrfx_nvmc_bytes_write() argument
417 NRFX_ASSERT(is_valid_address(addr, true)); in nrfx_nvmc_bytes_write()
423 uint32_t unaligned_bytes = addr % NVMC_BYTES_IN_WORD; in nrfx_nvmc_bytes_write()
432 nvmc_word_write(addr - unaligned_bytes, in nrfx_nvmc_bytes_write()
433 partial_word_create(addr, bytes_src, leading_bytes)); in nrfx_nvmc_bytes_write()
435 addr += leading_bytes; in nrfx_nvmc_bytes_write()
452 nvmc_word_write(addr, word); in nrfx_nvmc_bytes_write()
454 addr += NVMC_BYTES_IN_WORD; in nrfx_nvmc_bytes_write()
462 nvmc_words_write(addr, (uint32_t const *)bytes_src, word_count); in nrfx_nvmc_bytes_write()
464 addr += word_count * NVMC_BYTES_IN_WORD; in nrfx_nvmc_bytes_write()
471 nvmc_word_write(addr, partial_word_create(addr, bytes_src, trailing_bytes)); in nrfx_nvmc_bytes_write()
477 void nrfx_nvmc_words_write(uint32_t addr, void const * src, uint32_t num_words) in nrfx_nvmc_words_write() argument
479 NRFX_ASSERT(is_valid_address(addr, true)); in nrfx_nvmc_words_write()
480 NRFX_ASSERT(nrfx_is_word_aligned((void const *)addr)); in nrfx_nvmc_words_write()
485 nvmc_words_write(addr, src, num_words); in nrfx_nvmc_words_write()
490 uint16_t nrfx_nvmc_otp_halfword_read(uint32_t addr) in nrfx_nvmc_otp_halfword_read() argument
492 NRFX_ASSERT(is_halfword_aligned(addr)); in nrfx_nvmc_otp_halfword_read()
494 uint32_t aligned_addr = addr & ~(0x03UL); in nrfx_nvmc_otp_halfword_read()
497 return (nrfx_is_word_aligned((void const *)addr) ? (uint16_t)(val32) in nrfx_nvmc_otp_halfword_read()