mirror of
https://gitee.com/xiaohuolufeihua/bizhang_-obav.git
synced 2026-05-21 01:12:11 +00:00
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:
committed by
David Sidrane
parent
071eaef884
commit
675a5a2b2c
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user