diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index 496ac72b77..e980ce7c5f 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -20,9 +20,6 @@ XEN_ROOT = $(CURDIR)/../../.. include $(XEN_ROOT)/tools/firmware/Rules.mk - -LOADADDR = 0x100000 - # SMBIOS spec requires format mm/dd/yyyy SMBIOS_REL_DATE ?= $(shell date +%m/%d/%Y) @@ -82,8 +79,8 @@ vpath build.c $(ACPI_PATH) vpath static_tables.c $(ACPI_PATH) OBJS += $(ACPI_OBJS) -hvmloader: $(OBJS) - $(LD) $(LDFLAGS_DIRECT) -N -Ttext $(LOADADDR) -o $@ $^ +hvmloader: $(OBJS) hvmloader.lds + $(LD) $(LDFLAGS_DIRECT) -N -T hvmloader.lds -o $@ $(OBJS) roms.inc: $(ROMS) echo "/* Autogenerated file. DO NOT EDIT */" > $@.new diff --git a/tools/firmware/hvmloader/hvmloader.lds b/tools/firmware/hvmloader/hvmloader.lds new file mode 100644 index 0000000000..4471d7af27 --- /dev/null +++ b/tools/firmware/hvmloader/hvmloader.lds @@ -0,0 +1,13 @@ +SECTIONS +{ + . = 0x100000; + /* + * NB: there's no need to use the AT keyword in order to set the LMA, by + * default the linker will use VMA = LMA unless specified otherwise. + */ + .text : { *(.text) *(.text.*) } + .rodata : { *(.rodata) *(.rodata.*) } + .data : { *(.data) *(.data.*) } + .bss : { *(.bss) *(.bss.*) } + _end = .; +}