Subrata Banik 063c594e9f libpayload/x86: Extend exception handling to x86_64 architecture
Adds 64-bit (x86_64) support to libpayload's exception handler,
previously limited to x86_32.

Ensures `exception_init_asm` is called when building with
LP_ARCH_X86_64 Kconfig.

BUG=b:336265399
TEST=Successful build and boot of google/rex and google/rex64 on
ChromeOS.

Verified correct x86_64 exception handling by triggering "Debug
Exception" using firmware-shell as below:

firmware-shell: mm.l -0
Debug Exception
Error code: n/a
REG_IP:    0x0000000030023e9f
REG_FLAGS: 0x0000000000000046
REG_AX:    0x0000000000000009
REG_BX:    0x0000000000000000
REG_CX:    0x0000002000000000
REG_DX:    0x0000000000000001
REG_SP:    0x0000000034072ec0
REG_BP:    0x0000000000000009
REG_SI:    0x0000000000000029
REG_DI:    0x0000000034072eef
REG_R8:    0x0000000000000009
REG_R9:    0x0000000000000000
REG_R10:   0x0000000000000000
REG_R11:   0x0000000034072d70
REG_R12:   0x0000000000000004
REG_R13:   0x0000000000000001
REG_R14:   0x0000000034072ee6
REG_R15:   0x0000000000000004
CS:     0x0020
DS:     0x0000
ES:     0x0000
SS:     0x0018
FS:     0x0018
GS:     0x0050
Dumping stack:
0x340730c0: 3003c32e 00000000 ... 00000000 00000000
0x340730a0: 30034bc6 00000000 ... 0000002a 00000000
0x34073080: 34073234 00000000 ... 00002e65 00000000
...
...
0x34072ee0: 340730ed 30300000 ... 34073000 00000000
0x34072ec0: 34072ed8 00000000 ... 00000000 00000008
Ready for GDB connection.

Change-Id: I8f0aa1da8d179a760e8d49c3764dfd5a69d06887
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83036
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-06-20 19:51:18 +00:00
..