view xen/arch/x86/boot/ @ 20966:83a6621b91bf

x86: move trampoline location

A partner of ours is reporting boot failures (Xen not even emitting a
single message) over iSCSI on new (UEFI based) systems. After
pointing at their BIOS initially I finally remembered to take a look
at the memory map a native kernel booted this way see - and voila, the
BIOS reports memory starting at 0x8d000 as reserved. Xen, however,
places about 12k of (trampoline) data at 0x8c000.

For now, move the trampolien down by 4kB to 0x88000. Later we may
choose the location dynamically based on E820 information, if this
proves to be an ongoing problem.

One thing this patch enforces in any case is a single point of
definition for the hard coded location, so that at least adjusting it
won't require more than a single line change in the future.

Signed-off-by: Jan Beulich <>
author Keir Fraser <>
date Wed Feb 10 09:20:56 2010 +0000 (2010-02-10)
parents 32cdbebf0cb7
children 3ffdb094c2c0
line source
1 XEN_ROOT=../../../..
2 override XEN_TARGET_ARCH=x86_32
4 include $(XEN_ROOT)/
6 # Disable PIE/SSP if GCC supports them. They can break us.
7 $(call cc-option-add,CFLAGS,CC,-nopie)
8 $(call cc-option-add,CFLAGS,CC,-fno-stack-protector)
9 $(call cc-option-add,CFLAGS,CC,-fno-stack-protector-all)
11 CFLAGS += -Werror -fno-builtin -msoft-float
13 # NB. awk invocation is a portable alternative to 'head -n -1'
14 %.S: %.bin
15 (od -v -t x $< | awk 'NR > 1 {print s} {s=$$0}' | \
16 sed 's/ /,0x/g' | sed 's/^[0-9]*,/ .long /') >$@
18 %.bin: %.lnk
19 $(OBJCOPY) -O binary $< $@
21 %.lnk: %.o
22 $(LD) $(LDFLAGS_DIRECT) -N -Ttext $(RELOC) -o $@ $<
24 %.o: %.c
25 $(CC) $(CFLAGS) -c $< -o $@
27 reloc.o: $(BASEDIR)/include/asm-x86/config.h