diff --git a/platforms/nuttx/src/bootloader/common/bl.h b/platforms/nuttx/src/bootloader/common/bl.h index c4ebf588fa..48a11cf4d8 100644 --- a/platforms/nuttx/src/bootloader/common/bl.h +++ b/platforms/nuttx/src/bootloader/common/bl.h @@ -106,10 +106,10 @@ extern uint32_t board_get_devices(void); extern void clock_deinit(void); extern uint32_t flash_func_sector_size(unsigned sector); extern void flash_func_erase_sector(unsigned sector); -extern void flash_func_write_word(uint32_t address, uint32_t word); -extern uint32_t flash_func_read_word(uint32_t address); -extern uint32_t flash_func_read_otp(uint32_t address); -extern uint32_t flash_func_read_sn(uint32_t address); +extern void flash_func_write_word(uintptr_t address, uint32_t word); +extern uint32_t flash_func_read_word(uintptr_t address); +extern uint32_t flash_func_read_otp(uintptr_t address); +extern uint32_t flash_func_read_sn(uintptr_t address); extern void arch_flash_lock(void); extern void arch_flash_unlock(void); extern void arch_setvtor(const uint32_t *address); diff --git a/platforms/nuttx/src/bootloader/common/lib/flash_cache.c b/platforms/nuttx/src/bootloader/common/lib/flash_cache.c index 2c83bb124a..ad3e228b83 100644 --- a/platforms/nuttx/src/bootloader/common/lib/flash_cache.c +++ b/platforms/nuttx/src/bootloader/common/lib/flash_cache.c @@ -38,7 +38,7 @@ #include -extern ssize_t arch_flash_write(size_t address, const void *buffer, size_t buflen); +extern ssize_t arch_flash_write(uintptr_t address, const void *buffer, size_t buflen); flash_cache_line_t flash_cache[FC_NUMBER_LINES]; @@ -57,7 +57,7 @@ inline void fc_reset(void) flash_cache[0].start_address = APP_LOAD_ADDRESS; } -static inline flash_cache_line_t *fc_line_select(uint32_t address) +static inline flash_cache_line_t *fc_line_select(uintptr_t address) { for (unsigned w = 0; w < FC_NUMBER_LINES; w++) { if (flash_cache[w].start_address == (address & FC_ADDRESS_MASK)) { @@ -86,7 +86,7 @@ int fc_flush(flash_cache_line_t *fl) return rv; } -int fc_write(uint32_t address, uint32_t word) +int fc_write(uintptr_t address, uint32_t word) { flash_cache_line_t *fc = fc_line_select(address); flash_cache_line_t *fc1 = &flash_cache[1]; @@ -129,7 +129,7 @@ int fc_write(uint32_t address, uint32_t word) return rv; } -uint32_t fc_read(uint32_t address) +uint32_t fc_read(uintptr_t address) { // Assume a cache miss read from FLASH memory diff --git a/platforms/nuttx/src/bootloader/common/lib/flash_cache.h b/platforms/nuttx/src/bootloader/common/lib/flash_cache.h index de180e8792..db5a1bd5ad 100644 --- a/platforms/nuttx/src/bootloader/common/lib/flash_cache.h +++ b/platforms/nuttx/src/bootloader/common/lib/flash_cache.h @@ -58,12 +58,12 @@ // Cache line typedef struct flash_cache_line_t { uint32_t index; // Index of word written - uint32_t start_address; // cache tag (address in FLASH this is buffering) + uintptr_t start_address; // cache tag (address in FLASH this is buffering) uint32_t words[FC_NUMBER_WORDS]; // Buffered data } flash_cache_line_t; // Resets the cache - all lines flashed and cache_line[0] start_address == APP_LOAD_ADDRESS void fc_reset(void); // Cache operations -uint32_t fc_read(uint32_t address); -int fc_write(uint32_t address, uint32_t word); +uint32_t fc_read(uintptr_t address); +int fc_write(uintptr_t address, uint32_t word); diff --git a/platforms/nuttx/src/bootloader/stm/stm32_common/main.c b/platforms/nuttx/src/bootloader/stm/stm32_common/main.c index aa696831cc..894834f078 100644 --- a/platforms/nuttx/src/bootloader/stm/stm32_common/main.c +++ b/platforms/nuttx/src/bootloader/stm/stm32_common/main.c @@ -437,7 +437,7 @@ void arch_flash_unlock(void) stm32h7_flash_unlock(STM32_FLASH_BANK2); } -ssize_t arch_flash_write(size_t address, const void *buffer, size_t buflen) +ssize_t arch_flash_write(uintptr_t address, const void *buffer, size_t buflen) { return up_progmem_write(address, buffer, buflen); } @@ -475,13 +475,13 @@ flash_func_erase_sector(unsigned sector) } void -flash_func_write_word(uint32_t address, uint32_t word) +flash_func_write_word(uintptr_t address, uint32_t word) { address += APP_LOAD_ADDRESS; fc_write(address, word); } -uint32_t flash_func_read_word(uint32_t address) +uint32_t flash_func_read_word(uintptr_t address) { if (address & 3) { @@ -494,7 +494,7 @@ uint32_t flash_func_read_word(uint32_t address) uint32_t -flash_func_read_otp(uint32_t address) +flash_func_read_otp(uintptr_t address) { return 0; } @@ -550,7 +550,7 @@ int check_silicon(void) } uint32_t -flash_func_read_sn(uint32_t address) +flash_func_read_sn(uintptr_t address) { // read a byte out from unique chip ID area // it's 12 bytes, or 3 words.