diff options
author | Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> | 2022-06-14 16:12:00 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-09-14 15:23:03 -0400 |
commit | 77253c50ab5910bf72e1e868c86940c5a2bc7bb9 (patch) | |
tree | bd83cad81c8fd5ec99ebdfecca2ef7f2ccf70ba2 | |
parent | c0facda1976f7990ad9edbaecb6802369867c1d6 (diff) | |
download | u-boot-77253c50ab5910bf72e1e868c86940c5a2bc7bb9.zip u-boot-77253c50ab5910bf72e1e868c86940c5a2bc7bb9.tar.gz u-boot-77253c50ab5910bf72e1e868c86940c5a2bc7bb9.tar.bz2 |
spl: fit: Allocate buffers aligned to cache line size
Allocate memory for buffers at a cache-line boundary to avoid
misaligned buffer address for subsequent reads. This avoids an
additional sector-based memory copy in the fat file system driver:
FAT: Misaligned buffer address (...)
Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
-rw-r--r-- | common/spl/spl_fit.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c index a35be52..c1ed31e 100644 --- a/common/spl/spl_fit.c +++ b/common/spl/spl_fit.c @@ -10,7 +10,7 @@ #include <gzip.h> #include <image.h> #include <log.h> -#include <malloc.h> +#include <memalign.h> #include <mapmem.h> #include <spl.h> #include <sysinfo.h> @@ -429,7 +429,9 @@ static int spl_fit_append_fdt(struct spl_image_info *spl_image, * depending on how the overlay is stored, so * don't fail yet if the allocation failed. */ - tmpbuffer = malloc(CONFIG_SPL_LOAD_FIT_APPLY_OVERLAY_BUF_SZ); + size_t size = CONFIG_SPL_LOAD_FIT_APPLY_OVERLAY_BUF_SZ; + + tmpbuffer = malloc_cache_aligned(size); if (!tmpbuffer) debug("%s: unable to allocate space for overlays\n", __func__); @@ -537,7 +539,7 @@ static void *spl_get_fit_load_buffer(size_t size) { void *buf; - buf = malloc(size); + buf = malloc_cache_aligned(size); if (!buf) { pr_err("Could not get FIT buffer of %lu bytes\n", (ulong)size); pr_err("\tcheck CONFIG_SYS_SPL_MALLOC_SIZE\n"); |