Lines Matching refs:phdr
190 Elf64_Phdr *phdr = NULL, *phdr_next = NULL; in rk_dump_elf64_image_phdr() local
224 if (ehdr->e_phentsize != sizeof(*phdr)) { in rk_dump_elf64_image_phdr()
226 ehdr->e_phentsize = sizeof(*phdr); in rk_dump_elf64_image_phdr()
250 phdr = (Elf64_Phdr *)(ehaddr + ehdr->e_phoff); in rk_dump_elf64_image_phdr()
270 shdr->sh_offset = phdr_off + (sizeof(*phdr) * MAX_NUM_ENTRIES); in rk_dump_elf64_image_phdr()
297 strtbl_off = phdr_off + (sizeof(*phdr) * MAX_NUM_ENTRIES); in rk_dump_elf64_image_phdr()
300 if (phdr->p_offset != strtbl_off) in rk_dump_elf64_image_phdr()
301 phdr->p_offset = strtbl_off; in rk_dump_elf64_image_phdr()
305 phdr->p_filesz &= GENMASK(23, 0); /* 16MB */ in rk_dump_elf64_image_phdr()
306 phdr->p_memsz &= GENMASK(23, 0); /* 16MB */ in rk_dump_elf64_image_phdr()
309 if (phdr->p_filesz == phdr->p_memsz) { in rk_dump_elf64_image_phdr()
310 size = phdr->p_filesz; in rk_dump_elf64_image_phdr()
312 } else if (phdr->p_filesz == shdr->sh_size) { in rk_dump_elf64_image_phdr()
313 size = phdr->p_filesz; in rk_dump_elf64_image_phdr()
314 phdr->p_memsz = size; in rk_dump_elf64_image_phdr()
315 } else if (phdr->p_memsz == shdr->sh_size) { in rk_dump_elf64_image_phdr()
316 size = phdr->p_memsz; in rk_dump_elf64_image_phdr()
317 phdr->p_filesz = size; in rk_dump_elf64_image_phdr()
320 phdr->p_filesz, phdr->p_memsz, shdr->sh_size); in rk_dump_elf64_image_phdr()
324 phdr++; in rk_dump_elf64_image_phdr()
326 phdr_next = phdr + 1; in rk_dump_elf64_image_phdr()
331 phdr->p_offset &= MAX_ELF_SIZE - 1; in rk_dump_elf64_image_phdr()
334 if (phdr->p_offset == shdr->sh_offset) { in rk_dump_elf64_image_phdr()
335 elf_size = phdr->p_offset; in rk_dump_elf64_image_phdr()
336 } else if (phdr->p_offset == elf_size) { in rk_dump_elf64_image_phdr()
337 shdr->sh_offset = phdr->p_offset; in rk_dump_elf64_image_phdr()
339 phdr->p_offset = shdr->sh_offset; in rk_dump_elf64_image_phdr()
342 phdr->p_offset, shdr->sh_offset, elf_size); in rk_dump_elf64_image_phdr()
351 if (phdr->p_vaddr == 0 || shdr->sh_addr == 0) in rk_dump_elf64_image_phdr()
354 phdr->p_offset &= MAX_ELF_SIZE - 1; in rk_dump_elf64_image_phdr()
357 if (phdr->p_offset != elf_size) in rk_dump_elf64_image_phdr()
358 phdr->p_offset = elf_size; in rk_dump_elf64_image_phdr()
363 phdr->p_paddr &= GENMASK(34, 0); /* 32GB */ in rk_dump_elf64_image_phdr()
364 phdr->p_align &= GENMASK(34, 0); /* 32GB */ in rk_dump_elf64_image_phdr()
367 if (phdr->p_paddr != phdr->p_align && phdr->p_align == shdr->sh_entsize) in rk_dump_elf64_image_phdr()
368 phdr->p_paddr = phdr->p_align; in rk_dump_elf64_image_phdr()
370 phdr->p_type &= 0xf; in rk_dump_elf64_image_phdr()
371 phdr->p_flags &= 0xf; in rk_dump_elf64_image_phdr()
372 phdr->p_filesz &= GENMASK(23, 0); /* 16MB */ in rk_dump_elf64_image_phdr()
373 phdr->p_memsz &= GENMASK(23, 0); /* 16MB */ in rk_dump_elf64_image_phdr()
374 phdr->p_align = 0; in rk_dump_elf64_image_phdr()
376 if (phdr->p_vaddr != shdr->sh_addr) { in rk_dump_elf64_image_phdr()
378 phdr->p_vaddr = shdr->sh_addr; in rk_dump_elf64_image_phdr()
379 else if (phdr->p_vaddr == shdr->sh_addralign) in rk_dump_elf64_image_phdr()
380 shdr->sh_addr = phdr->p_vaddr; in rk_dump_elf64_image_phdr()
383 i, phdr->p_vaddr, shdr->sh_addr, shdr->sh_addralign); in rk_dump_elf64_image_phdr()
396 if (phdr->p_filesz == phdr->p_memsz) { in rk_dump_elf64_image_phdr()
397 size = phdr->p_filesz; in rk_dump_elf64_image_phdr()
399 } else if (phdr->p_filesz == shdr->sh_size) { in rk_dump_elf64_image_phdr()
400 size = phdr->p_filesz; in rk_dump_elf64_image_phdr()
401 phdr->p_memsz = size; in rk_dump_elf64_image_phdr()
402 } else if (phdr->p_memsz == shdr->sh_size) { in rk_dump_elf64_image_phdr()
403 size = phdr->p_memsz; in rk_dump_elf64_image_phdr()
404 phdr->p_filesz = size; in rk_dump_elf64_image_phdr()
408 size = phdr_next->p_offset - phdr->p_offset; in rk_dump_elf64_image_phdr()
409 phdr->p_filesz = size; in rk_dump_elf64_image_phdr()
410 phdr->p_memsz = size; in rk_dump_elf64_image_phdr()
414 i, phdr->p_filesz, phdr->p_memsz, shdr->sh_size); in rk_dump_elf64_image_phdr()
422 src = (void *)(Elf64_Addr)phdr->p_paddr; in rk_dump_elf64_image_phdr()
423 dst = ram_image + phdr->p_offset; in rk_dump_elf64_image_phdr()
439 phdr++; in rk_dump_elf64_image_phdr()
461 Elf32_Phdr *phdr = (Elf32_Phdr *)(ehaddr + ehdr->e_phoff); in rk_dump_elf32_image_phdr() local
470 void *src = (void *)(Elf32_Addr)phdr->p_paddr; in rk_dump_elf32_image_phdr()
471 void *dst = ram_image + phdr->p_offset; in rk_dump_elf32_image_phdr()
473 if (phdr->p_filesz) in rk_dump_elf32_image_phdr()
474 memcpy(dst, src, phdr->p_filesz); in rk_dump_elf32_image_phdr()
475 if (phdr->p_filesz != phdr->p_memsz) in rk_dump_elf32_image_phdr()
476 memset(dst + phdr->p_filesz, 0x00, in rk_dump_elf32_image_phdr()
477 phdr->p_memsz - phdr->p_filesz); in rk_dump_elf32_image_phdr()
478 ++phdr; in rk_dump_elf32_image_phdr()
481 phdr--; in rk_dump_elf32_image_phdr()
482 ram_image_size = phdr->p_memsz + phdr->p_offset; in rk_dump_elf32_image_phdr()