diff options
author | Subrata Banik <subratabanik@google.com> | 2024-05-12 10:24:14 +0000 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2024-05-14 13:07:28 +0000 |
commit | 06b25c26a18a5d9044ba91c65e0cda3fc19daf56 (patch) | |
tree | cc266cb1ea8d04c75a23b27768838f4bd2ba439d /src/lib/cb.ads | |
parent | 94d50bbe2a6cb463facda155a1463e24a9de758d (diff) |
x86: Switch to protected_mode_call_1arg for correct argument passing
The payload execution process has been updated to utilize
protected_mode_call_1arg in order to guarantee proper handling of
function parameters.
The previous use of protected_mode_jump with a "jmp" instruction did
not allow for proper stack setup for argument passing, as the calling
convention was not aligned with the System V ABI calling convention.
This patch ensures that calling into the libpayload entry point using
protected mode is now aligned with the System V ABI calling convention.
This resolves an issue where retrieving the "pointer to coreboot tables"
from within the libpayload entry point was failing due to incorrect
argument passing.
BUG=b:332759882
TEST=Built and booted 64-bit coreboot with 32-bit payload successfully.
Change-Id: Ibd522544ad1e9deed6a11015b0c0e95265bda8eb
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82294
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Diffstat (limited to 'src/lib/cb.ads')
0 files changed, 0 insertions, 0 deletions