libpayload: Add x86_64 (64-bit) support
This patch introduces x86_64 (64-bit) support to the payload, building upon the existing x86 (32-bit) architecture. Files necessary for 64-bit compilation are now guarded by the `CONFIG_LP_ARCH_X86_64` Kconfig option. BUG=b:242829490 TEST=Able to verify all valid combinations between coreboot and payload with this patch. Payload Entry Point Behavior with below code. +----------------+--------------------+----------------------------+ | LP_ARCH_X86_64 | Payload Entry Mode | Description | +----------------+--------------------+----------------------------+ | No | 32-bit | Direct protected mode init | +----------------+--------------------+----------------------------+ | Yes | 32-bit | Protected to long mode | +----------------+--------------------+----------------------------+ | Yes | 64-bit | Long mode initialization | +----------------+--------------------+----------------------------+ Change-Id: I69fda47bedf1a14807b1515c4aed6e3a1d5b8585 Signed-off-by: Subrata Banik <subratabanik@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/81968 Reviewed-by: Julius Werner <jwerner@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
@@ -66,7 +66,7 @@ static u8 *ahci_prdbuf_init(ahci_dev_t *const dev,
|
||||
u8 *const user_buf, const size_t len,
|
||||
const int out)
|
||||
{
|
||||
if ((u32)user_buf & 1) {
|
||||
if ((uintptr_t)user_buf & 1) {
|
||||
printf("ahci: Odd buffer pointer (%p).\n", user_buf);
|
||||
if (dev->buf) /* orphaned buffer */
|
||||
free(dev->buf - *(dev->buf - 1));
|
||||
@@ -76,7 +76,7 @@ static u8 *ahci_prdbuf_init(ahci_dev_t *const dev,
|
||||
dev->user_buf = user_buf;
|
||||
dev->write_back = !out;
|
||||
dev->buflen = len;
|
||||
if ((u32)dev->buf & 1) {
|
||||
if ((uintptr_t)dev->buf & 1) {
|
||||
dev->buf[0] = 1;
|
||||
dev->buf += 1;
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user