libpayload: x86/exec - fix argc/argv value passing

According to coreboot’s payload API [1] the argc value should be passed
at stack offset 0x10, so we need to push a dummy value to comply to the
API.

[1] https://www.coreboot.org/Payload_API

Change-Id: Id20424185a5bf7e4d94de1886a2cece3f3968371
Signed-off-by: Mathias Krause <minipli@googlemail.com>
Reviewed-on: https://review.coreboot.org/18333
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Mathias Krause 2017-02-11 22:34:46 +01:00 committed by Martin Roth
parent c57c48bd36
commit 9fa78c136d
1 changed files with 6 additions and 1 deletions

View File

@ -53,12 +53,17 @@ i386_do_exec:
pushl %ecx
pushl %ebp
/* Push the argc and argv pointers on to the stack */
/* Push argc and argv on to the stack.
*
* We need to put a dummy value inbetween, as argc should be at offset
* 0x10, according to the payload API.
*/
movl 12(%ebp), %esi
movl 16(%ebp), %ecx
pushl %esi
pushl $0
pushl %ecx
/* Move a "magic" number on the stack - the other