mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-25 23:06:15 +00:00
remoteproc: elf_loader: fix program header parsing
Fix an issue where some sections are never loaded : if p_type is different from PT_LOAD the phdr pointer must be incremented. Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> Acked-by: Suman Anna <s-anna@ti.com>
This commit is contained in:
parent
2c871f9e08
commit
83b539cfd4
1 changed files with 1 additions and 2 deletions
|
@ -189,7 +189,7 @@ int rproc_elf32_load_image(struct udevice *dev, unsigned long addr, ulong size)
|
||||||
ops = rproc_get_ops(dev);
|
ops = rproc_get_ops(dev);
|
||||||
|
|
||||||
/* Load each program header */
|
/* Load each program header */
|
||||||
for (i = 0; i < ehdr->e_phnum; ++i) {
|
for (i = 0; i < ehdr->e_phnum; i++, phdr++) {
|
||||||
void *dst = (void *)(uintptr_t)phdr->p_paddr;
|
void *dst = (void *)(uintptr_t)phdr->p_paddr;
|
||||||
void *src = (void *)addr + phdr->p_offset;
|
void *src = (void *)addr + phdr->p_offset;
|
||||||
|
|
||||||
|
@ -211,7 +211,6 @@ int rproc_elf32_load_image(struct udevice *dev, unsigned long addr, ulong size)
|
||||||
roundup((unsigned long)dst + phdr->p_filesz,
|
roundup((unsigned long)dst + phdr->p_filesz,
|
||||||
ARCH_DMA_MINALIGN) -
|
ARCH_DMA_MINALIGN) -
|
||||||
rounddown((unsigned long)dst, ARCH_DMA_MINALIGN));
|
rounddown((unsigned long)dst, ARCH_DMA_MINALIGN));
|
||||||
++phdr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue