Patrick Rudolph has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/30115
Change subject: util/cbfstool/cbfs-mkstage: Support x86_64 ......................................................................
util/cbfstool/cbfs-mkstage: Support x86_64
Add support for relocations on x86_64. Required for 64bit romstage.
Change-Id: I1ff223d3476776297b501813a953356dd6fa9d67 Signed-off-by: Patrick Rudolph siro@das-labor.org --- M util/cbfstool/cbfs-mkstage.c 1 file changed, 7 insertions(+), 4 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/15/30115/1
diff --git a/util/cbfstool/cbfs-mkstage.c b/util/cbfstool/cbfs-mkstage.c index 85c3e4f..6071437 100644 --- a/util/cbfstool/cbfs-mkstage.c +++ b/util/cbfstool/cbfs-mkstage.c @@ -362,7 +362,9 @@ /* If there is any relocation to the ignored section that isn't * absolute fail as current assumptions are that all relocations * are absolute. */ - if (reloc_type != R_386_32) { + if ((reloc_type != R_386_32) && + (reloc_type != R_AMD64_64) && + (reloc_type != R_AMD64_32)) { ERROR("Invalid reloc to ignored section: %x\n", reloc_type); return -1; } @@ -392,9 +394,10 @@ if (rmodule_init(rmodctx, input)) return -1;
- /* Only support x86 XIP currently. */ - if (rmodctx->pelf.ehdr.e_machine != EM_386) { - ERROR("Only support XIP stages for x86\n"); + /* Only support x86 / x86_64 XIP currently. */ + if ((rmodctx->pelf.ehdr.e_machine != EM_386) && + (rmodctx->pelf.ehdr.e_machine != EM_X86_64)) { + ERROR("Only support XIP stages for x86/x86_64\n"); goto out; }