x86: Don't build call64 and setjmp on 64-bit
These are currently not supported. Calling 64-bit code from 64-bit U-Boot is much simpler, so this code is not needed. setjmp() is not yet implemented for 64-bit. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
05cbd985c0
commit
23b89d4d6e
|
@ -14,7 +14,11 @@ else
|
||||||
extra-y = start.o
|
extra-y = start.o
|
||||||
endif
|
endif
|
||||||
extra-$(CONFIG_$(SPL_)X86_16BIT_INIT) += resetvec.o start16.o
|
extra-$(CONFIG_$(SPL_)X86_16BIT_INIT) += resetvec.o start16.o
|
||||||
obj-y += cpu.o cpu_x86.o call64.o setjmp.o
|
ifndef CONFIG_$(SPL_)X86_64
|
||||||
|
obj-y += call64.o setjmp.o
|
||||||
|
endif
|
||||||
|
|
||||||
|
obj-y += cpu.o cpu_x86.o
|
||||||
|
|
||||||
AFLAGS_REMOVE_call32.o := -mregparm=3 \
|
AFLAGS_REMOVE_call32.o := -mregparm=3 \
|
||||||
$(if $(CONFIG_EFI_STUB_64BIT),-march=i386 -m32)
|
$(if $(CONFIG_EFI_STUB_64BIT),-march=i386 -m32)
|
||||||
|
|
|
@ -155,7 +155,14 @@ int boot_linux_kernel(ulong setup_base, ulong load_address, bool image_64bit)
|
||||||
puts("Cannot boot 64-bit kernel on 32-bit machine\n");
|
puts("Cannot boot 64-bit kernel on 32-bit machine\n");
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
}
|
}
|
||||||
|
/* At present 64-bit U-Boot does not support booting a
|
||||||
|
* kernel.
|
||||||
|
* TODO(sjg@chromium.org): Support booting both 32-bit and
|
||||||
|
* 64-bit kernels from 64-bit U-Boot.
|
||||||
|
*/
|
||||||
|
#if !CONFIG_IS_ENABLED(X86_64)
|
||||||
return cpu_jump_to_64bit(setup_base, load_address);
|
return cpu_jump_to_64bit(setup_base, load_address);
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* Set %ebx, %ebp, and %edi to 0, %esi to point to the
|
* Set %ebx, %ebp, and %edi to 0, %esi to point to the
|
||||||
|
|
Loading…
Reference in New Issue