]> git.dujemihanovic.xyz Git - u-boot.git/commit
fw_env: keep calling read() until whole flash block is read
authorRafał Miłecki <rafal@milecki.pl>
Wed, 13 Dec 2023 12:13:54 +0000 (13:13 +0100)
committerTom Rini <trini@konsulko.com>
Fri, 5 Jan 2024 20:41:47 +0000 (15:41 -0500)
commit9e3003f79d168eac7ee65cd457e3904e2fb4eea8
tree5c28b718ecdfc3e64d6280ece51f5271e4aadd22
parent73b30800f56883a26a24f87acb30d21cd4dd25d4
fw_env: keep calling read() until whole flash block is read

It's totally valid for read() to provide less bytes than requested
maximum. It may happen if there is no more data available yet or source
pushes data in small chunks.

This actually happens when trying to read env data from NVMEM device.
Kernel may provide NVMEM content in page size parts (like 4096 B).

This fixes warnings like:
Warning on /sys/bus/nvmem/devices/u-boot-env0/nvmem: Attempted to read 16384 bytes but got 4096
Warning on /sys/bus/nvmem/devices/u-boot-env0/nvmem: Attempted to read 12288 bytes but got 4096
Warning on /sys/bus/nvmem/devices/u-boot-env0/nvmem: Attempted to read 8192 bytes but got 4096

Since the main loop in flash_read_buf() is used to read blocks this
patch adds a new nested one.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
tools/env/fw_env.c