bootloader: change flash_cache addresses to uintptr_t

To fix comilation errors on 64 bit platforms

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
This commit is contained in:
Jukka Laitinen
2021-05-21 22:53:33 +03:00
committed by David Sidrane
parent 071eaef884
commit 675a5a2b2c
4 changed files with 16 additions and 16 deletions

View File

@@ -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);

View File

@@ -38,7 +38,7 @@
#include <nuttx/progmem.h>
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

View File

@@ -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);

View File

@@ -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.