arch/x86,cpu/x86: Move cpu_info initialization instructions into macro
This will help reduce duplication and make it easier to add new members to the cpu_info struct. BUG=b:194391185, b:179699789 TEST=Compare assembly of romstage and ramstage before and after Signed-off-by: Raul E Rangel <rrangel@chromium.org> Change-Id: I31f264f4bb8b605fa3cb3bfff0d9bf79224072aa Reviewed-on: https://review.coreboot.org/c/coreboot/+/57859 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
This commit is contained in:
parent
9f17fa33f9
commit
da68c9d378
|
@ -1,5 +1,6 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <cpu/x86/cpu_info.S.inc>
|
||||||
#include <rules.h>
|
#include <rules.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -35,13 +36,7 @@ _start:
|
||||||
/* reset stack pointer to CAR/EARLYRAM stack */
|
/* reset stack pointer to CAR/EARLYRAM stack */
|
||||||
mov $_STACK_TOP, %esp
|
mov $_STACK_TOP, %esp
|
||||||
|
|
||||||
#if CONFIG(COOP_MULTITASKING)
|
push_cpu_info
|
||||||
/* Push the thread pointer. */
|
|
||||||
push $0
|
|
||||||
#endif
|
|
||||||
/* Push the CPU index and struct CPU */
|
|
||||||
push $0
|
|
||||||
push $0
|
|
||||||
|
|
||||||
/* clear .bss section as it is not shared */
|
/* clear .bss section as it is not shared */
|
||||||
cld
|
cld
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <cpu/x86/cpu_info.S.inc>
|
||||||
#include <cpu/x86/post_code.h>
|
#include <cpu/x86/post_code.h>
|
||||||
#include <arch/ram_segs.h>
|
#include <arch/ram_segs.h>
|
||||||
|
|
||||||
|
@ -76,13 +77,7 @@ _start:
|
||||||
movl $_estack, %esp
|
movl $_estack, %esp
|
||||||
andl $(~(CONFIG_STACK_SIZE-1)), %esp
|
andl $(~(CONFIG_STACK_SIZE-1)), %esp
|
||||||
|
|
||||||
#if CONFIG(COOP_MULTITASKING)
|
push_cpu_info
|
||||||
/* Push the thread pointer. */
|
|
||||||
push $0
|
|
||||||
#endif
|
|
||||||
/* Push the CPU index and struct CPU */
|
|
||||||
push $0
|
|
||||||
push $0
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now we are finished. Memory is up, data is copied and
|
* Now we are finished. Memory is up, data is copied and
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||||
|
|
||||||
|
/* Push struct cpu_info */
|
||||||
|
.macro push_cpu_info index=$0
|
||||||
|
#if CONFIG(COOP_MULTITASKING)
|
||||||
|
push $0 /* *thread */
|
||||||
|
#endif
|
||||||
|
push \index /* index */
|
||||||
|
push $0 /* *cpu */
|
||||||
|
.endm
|
Loading…
Reference in New Issue