xref: /openbmc/linux/arch/x86/include/asm/bios_ebda.h (revision 4f205687)
1 #ifndef _ASM_X86_BIOS_EBDA_H
2 #define _ASM_X86_BIOS_EBDA_H
3 
4 #include <asm/io.h>
5 
6 /*
7  * Returns physical address of EBDA.  Returns 0 if there is no EBDA.
8  */
9 static inline unsigned int get_bios_ebda(void)
10 {
11 	/*
12 	 * There is a real-mode segmented pointer pointing to the
13 	 * 4K EBDA area at 0x40E.
14 	 */
15 	unsigned int address = *(unsigned short *)phys_to_virt(0x40E);
16 	address <<= 4;
17 	return address;	/* 0 means none */
18 }
19 
20 void reserve_ebda_region(void);
21 
22 #ifdef CONFIG_X86_CHECK_BIOS_CORRUPTION
23 /*
24  * This is obviously not a great place for this, but we want to be
25  * able to scatter it around anywhere in the kernel.
26  */
27 void check_for_bios_corruption(void);
28 void start_periodic_check_for_corruption(void);
29 #else
30 static inline void check_for_bios_corruption(void)
31 {
32 }
33 
34 static inline void start_periodic_check_for_corruption(void)
35 {
36 }
37 #endif
38 
39 #endif /* _ASM_X86_BIOS_EBDA_H */
40