From: Stefan Reinauer Date: Wed, 11 Jan 2012 20:40:14 +0000 (-0800) Subject: correctly mark code segments as code in SELF X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=coreboot.git;a=commitdiff_plain;h=51f6a206801aa6c05c2f8a6db12262a6c695e202 correctly mark code segments as code in SELF In bios_log, find that the first segment of the payload is shown as code rather than data. Sample: Got a payload Loading segment from rom address 0xfff29378 code (compression=1) ... Change-Id: I82eaad23f08c02f4ed75744affa8835255cf5c17 Signed-off-by: Stefan Reinauer Reviewed-on: http://review.coreboot.org/767 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi --- diff --git a/util/cbfstool/cbfs-mkpayload.c b/util/cbfstool/cbfs-mkpayload.c index ff6479dc6..e4ef5c835 100644 --- a/util/cbfstool/cbfs-mkpayload.c +++ b/util/cbfstool/cbfs-mkpayload.c @@ -161,7 +161,10 @@ int parse_elf_to_payload(unsigned char *input, unsigned char **output, continue; } - segs[segments].type = PAYLOAD_SEGMENT_DATA; + if (phdr[i].p_flags & PF_X) + segs[segments].type = PAYLOAD_SEGMENT_CODE; + else + segs[segments].type = PAYLOAD_SEGMENT_DATA; segs[segments].load_addr = (uint64_t)htonll(phdr[i].p_paddr); segs[segments].mem_len = (uint32_t)htonl(phdr[i].p_memsz); segs[segments].compression = htonl(algo);