Subrata Banik has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/82111?usp=email )
Change subject: libpayload: Save EAX and EBX only for multiboot payloads ......................................................................
libpayload: Save EAX and EBX only for multiboot payloads
When CONFIG_LP_MULTIBOOT is enabled, save the values of EAX and EBX passed from the bootloader. This information can be useful for multiboot payloads feature alone.
Change-Id: I98c2cd00206ee48eb0fc67edd9533032bcf3e5eb
Change-Id: Ibdb4e42073b90870661767e6168742a3ace714a9 Signed-off-by: Subrata Banik subratabanik@google.com --- M payloads/libpayload/arch/x86/head.S M payloads/libpayload/arch/x86/main.c M payloads/libpayload/arch/x86/multiboot.c 3 files changed, 4 insertions(+), 5 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/11/82111/1
diff --git a/payloads/libpayload/arch/x86/head.S b/payloads/libpayload/arch/x86/head.S index 1e0e4a0..2bac700 100644 --- a/payloads/libpayload/arch/x86/head.S +++ b/payloads/libpayload/arch/x86/head.S @@ -63,9 +63,11 @@ /* No interrupts, please. */ cli
+#if CONFIG(LP_MULTIBOOT) /* Store EAX and EBX */ movl %eax, loader_eax movl %ebx, loader_ebx +#endif
/* save pointer to coreboot tables */ movl 4(%esp), %eax diff --git a/payloads/libpayload/arch/x86/main.c b/payloads/libpayload/arch/x86/main.c index 288f474..a7c6b01 100644 --- a/payloads/libpayload/arch/x86/main.c +++ b/payloads/libpayload/arch/x86/main.c @@ -30,9 +30,6 @@ #include <libpayload.h> #include <arch/apic.h>
-unsigned long loader_eax; /**< The value of EAX passed from the loader */ -unsigned long loader_ebx; /**< The value of EBX passed from the loader */ - int main_argc; /**< The argc value to pass to main() */
/** The argv value to pass to main() */ diff --git a/payloads/libpayload/arch/x86/multiboot.c b/payloads/libpayload/arch/x86/multiboot.c index 26dc4f8..ed78862 100644 --- a/payloads/libpayload/arch/x86/multiboot.c +++ b/payloads/libpayload/arch/x86/multiboot.c @@ -30,8 +30,8 @@ #include <libpayload.h> #include <multiboot_tables.h>
-extern unsigned long loader_eax; -extern unsigned long loader_ebx; +unsigned long loader_eax; /* The value of EAX passed from the loader */ +unsigned long loader_ebx; /* The value of EBX passed from the loader */
static int mb_add_memrange(struct sysinfo_t *info, unsigned long long base, unsigned long long size, unsigned int type)