xref: /openbmc/u-boot/arch/x86/include/asm/processor.h (revision 878cd63e)
1 /*
2  * (C) Copyright 2002
3  * Daniel Engström, Omicron Ceti AB, daniel@omicron.se
4  *
5  * SPDX-License-Identifier:	GPL-2.0+
6  */
7 
8 #ifndef __ASM_PROCESSOR_H_
9 #define __ASM_PROCESSOR_H_ 1
10 
11 #define X86_GDT_ENTRY_SIZE	8
12 
13 #ifndef __ASSEMBLY__
14 
15 enum {
16 	X86_GDT_ENTRY_NULL = 0,
17 	X86_GDT_ENTRY_UNUSED,
18 	X86_GDT_ENTRY_32BIT_CS,
19 	X86_GDT_ENTRY_32BIT_DS,
20 	X86_GDT_ENTRY_32BIT_FS,
21 	X86_GDT_ENTRY_16BIT_CS,
22 	X86_GDT_ENTRY_16BIT_DS,
23 	X86_GDT_NUM_ENTRIES
24 };
25 #else
26 /* NOTE: If the above enum is modified, this define must be checked */
27 #define X86_GDT_ENTRY_32BIT_DS	3
28 #define X86_GDT_NUM_ENTRIES	7
29 #endif
30 
31 #define X86_GDT_SIZE		(X86_GDT_NUM_ENTRIES * X86_GDT_ENTRY_SIZE)
32 
33 #ifndef __ASSEMBLY__
34 
35 #define PORT_RESET		0xcf9
36 
37 static inline __attribute__((always_inline)) void cpu_hlt(void)
38 {
39 	asm("hlt");
40 }
41 
42 static inline ulong cpu_get_sp(void)
43 {
44 	ulong result;
45 
46 	asm volatile(
47 		"mov %%esp, %%eax"
48 		: "=a" (result));
49 	return result;
50 }
51 
52 #endif /* __ASSEMBLY__ */
53 
54 #endif
55