|
|
|
@ -424,7 +424,7 @@ static bool get_env_from_cache(const char *name, size_t name_len, uint32_t *addr
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
static uint32_t continue_ff_addr(uint32_t start, uint32_t end)
|
|
|
|
static uint32_t continue_ff_addr(uint32_t start, uint32_t end)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
uint8_t buf[EF_READ_BUF_SIZE], last_data = 0x00;
|
|
|
|
uint8_t buf[32], last_data = 0x00;
|
|
|
|
size_t i, addr = start, read_size;
|
|
|
|
size_t i, addr = start, read_size;
|
|
|
|
|
|
|
|
|
|
|
|
for (; start < end; start += sizeof(buf)) {
|
|
|
|
for (; start < end; start += sizeof(buf)) {
|
|
|
|
@ -522,7 +522,7 @@ static uint32_t get_next_env_addr(sector_meta_data_t sector, env_node_obj_t pre_
|
|
|
|
static EfErrCode read_env(env_node_obj_t env)
|
|
|
|
static EfErrCode read_env(env_node_obj_t env)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
struct env_hdr_data env_hdr;
|
|
|
|
struct env_hdr_data env_hdr;
|
|
|
|
uint8_t buf[EF_READ_BUF_SIZE];
|
|
|
|
uint8_t buf[32];
|
|
|
|
uint32_t calc_crc32 = 0, crc_data_len, env_name_addr;
|
|
|
|
uint32_t calc_crc32 = 0, crc_data_len, env_name_addr;
|
|
|
|
EfErrCode result = EF_NO_ERR;
|
|
|
|
EfErrCode result = EF_NO_ERR;
|
|
|
|
size_t len, size;
|
|
|
|
size_t len, size;
|
|
|
|
@ -787,8 +787,6 @@ static size_t get_env(const char *key, void *value_buf, size_t buf_len, size_t *
|
|
|
|
if (value_buf){
|
|
|
|
if (value_buf){
|
|
|
|
ef_port_read(env.addr.value, (uint32_t *) value_buf, read_len);
|
|
|
|
ef_port_read(env.addr.value, (uint32_t *) value_buf, read_len);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (value_len) {
|
|
|
|
|
|
|
|
*value_len = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return read_len;
|
|
|
|
return read_len;
|
|
|
|
@ -1286,13 +1284,9 @@ static EfErrCode align_write(uint32_t addr, const uint32_t *buf, size_t size)
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
memset(align_data, 0xFF, align_data_size);
|
|
|
|
memset(align_data, 0xFF, align_data_size);
|
|
|
|
align_remain = EF_WG_ALIGN_DOWN(size);//use align_remain temporary to save aligned size.
|
|
|
|
result = ef_port_write(addr, buf, EF_WG_ALIGN_DOWN(size));
|
|
|
|
|
|
|
|
|
|
|
|
if(align_remain > 0){//it may be 0 in this function.
|
|
|
|
|
|
|
|
result = ef_port_write(addr, buf, align_remain);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
align_remain = size - align_remain;
|
|
|
|
align_remain = size - EF_WG_ALIGN_DOWN(size);
|
|
|
|
if (result == EF_NO_ERR && align_remain) {
|
|
|
|
if (result == EF_NO_ERR && align_remain) {
|
|
|
|
memcpy(align_data, (uint8_t *)buf + EF_WG_ALIGN_DOWN(size), align_remain);
|
|
|
|
memcpy(align_data, (uint8_t *)buf + EF_WG_ALIGN_DOWN(size), align_remain);
|
|
|
|
result = ef_port_write(addr + EF_WG_ALIGN_DOWN(size), (uint32_t *) align_data, align_data_size);
|
|
|
|
result = ef_port_write(addr + EF_WG_ALIGN_DOWN(size), (uint32_t *) align_data, align_data_size);
|
|
|
|
|