Kconfig: Make GBD_STUB and long mode mutually exclusive
GDB debugging is not implemented with x86 long mode. Change-Id: Icaf7d0763829d5badf73d38bb8fc3d36cfe18964 Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/81379 Reviewed-by: Martin L Roth <gaumless@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Reviewed-by: Eric Lai <ericllai@google.com>
This commit is contained in:
committed by
Lean Sheng Tan
parent
42fa6247f4
commit
c5e467e50c
@ -1015,7 +1015,8 @@ comment "General Debug Settings"
|
|||||||
config GDB_STUB
|
config GDB_STUB
|
||||||
bool "GDB debugging support"
|
bool "GDB debugging support"
|
||||||
default n
|
default n
|
||||||
depends on DRIVERS_UART
|
# FIXME Not implemented in long mode
|
||||||
|
depends on DRIVERS_UART && !USE_X86_64_SUPPORT
|
||||||
help
|
help
|
||||||
If enabled, you will be able to set breakpoints for gdb debugging.
|
If enabled, you will be able to set breakpoints for gdb debugging.
|
||||||
See src/arch/x86/c_start.S for details.
|
See src/arch/x86/c_start.S for details.
|
||||||
|
@ -129,8 +129,9 @@ _start:
|
|||||||
gdb_stub_breakpoint:
|
gdb_stub_breakpoint:
|
||||||
#if ENV_X86_64
|
#if ENV_X86_64
|
||||||
pop %rax /* Return address */
|
pop %rax /* Return address */
|
||||||
pushfl
|
pushfq
|
||||||
push %cs
|
mov %cs, %rbx
|
||||||
|
push %rbx
|
||||||
push %rax /* Return address */
|
push %rax /* Return address */
|
||||||
push $0 /* No error code */
|
push $0 /* No error code */
|
||||||
push $32 /* vector 32 is user defined */
|
push $32 /* vector 32 is user defined */
|
||||||
|
@ -379,6 +379,7 @@ void x86_exception(struct eregs *info);
|
|||||||
void x86_exception(struct eregs *info)
|
void x86_exception(struct eregs *info)
|
||||||
{
|
{
|
||||||
#if CONFIG(GDB_STUB)
|
#if CONFIG(GDB_STUB)
|
||||||
|
/* TODO implement 64bit mode */
|
||||||
int signo;
|
int signo;
|
||||||
memcpy(gdb_stub_registers, info, 8*sizeof(uint32_t));
|
memcpy(gdb_stub_registers, info, 8*sizeof(uint32_t));
|
||||||
gdb_stub_registers[PC] = info->eip;
|
gdb_stub_registers[PC] = info->eip;
|
||||||
|
Reference in New Issue
Block a user