]> git.sur5r.net Git - openocd/commit
Fix load_image for ELF with all p_paddr set to zero
authorDrasko DRASKOVIC <drasko.draskovic@gmail.com>
Wed, 22 Jun 2011 10:45:21 +0000 (12:45 +0200)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Fri, 24 Jun 2011 09:00:35 +0000 (11:00 +0200)
commit37aaa28292baee3592492933beb49d5e8884aa14
tree95f1937d275c1ae0dc46dde1d2f7b666c80d6746
parente7c611deeac63e585eb61d6c4cdb54d078c2c579
Fix load_image for ELF with all p_paddr set to zero

So far image_load command tries to load ELF binaries to address
discovered by reading p_paddr member of a Program header of an ELF
segment.

However, ELF specifications says for p_paddr : ...Because System V
ignores physical addressing for application programs, this member has
unspecified contents for executable files and shared objects.

ARM ELF specifiaction goes even further, demanding that this member
be set to zero, using the p_vaddr as a segment load address.

To avoid the cases to wrong addr where p_paddr is zero,
we are now using p_vaddr to as a load destination in case that *all*
p_paddr == 0. Basically, this patch re-implements the approach present in
BDF's elf.c, which is used by GDB also (so that we can be consistent).
src/target/image.c