blob: 1ab709abfc8dee877374a2edddfd99e2d0d236cd [file] [log] [blame]
Graeme Russ95ffaba2010-04-24 00:05:49 +10001#ifndef _ASM_X86_E820_H
2#define _ASM_X86_E820_H
Graeme Russ95ffaba2010-04-24 00:05:49 +10003
Bin Meng24ff8e72015-04-21 12:21:35 +08004#define E820MAX 128 /* number of entries in E820MAP */
Graeme Russ95ffaba2010-04-24 00:05:49 +10005
6#define E820_RAM 1
7#define E820_RESERVED 2
8#define E820_ACPI 3
9#define E820_NVS 4
10#define E820_UNUSABLE 5
Simon Glass631c2b92020-09-05 14:50:50 -060011#define E820_COUNT 6 /* Number of types */
Graeme Russ95ffaba2010-04-24 00:05:49 +100012
Graeme Russ95ffaba2010-04-24 00:05:49 +100013#ifndef __ASSEMBLY__
14#include <linux/types.h>
Bin Meng24ff8e72015-04-21 12:21:35 +080015
Bin Meng45519922018-04-11 22:02:11 -070016struct e820_entry {
Graeme Russ95ffaba2010-04-24 00:05:49 +100017 __u64 addr; /* start of memory segment */
18 __u64 size; /* size of memory segment */
19 __u32 type; /* type of memory segment */
20} __attribute__((packed));
21
Graeme Russ95ffaba2010-04-24 00:05:49 +100022#define ISA_START_ADDRESS 0xa0000
23#define ISA_END_ADDRESS 0x100000
24
Simon Glasse7bae822021-03-15 18:00:23 +130025/* Implementation-defined function to install an e820 map */
Bin Meng87af71c2018-04-11 22:02:10 -070026unsigned int install_e820_map(unsigned int max_entries,
Bin Meng45519922018-04-11 22:02:11 -070027 struct e820_entry *);
Simon Glasse7bae822021-03-15 18:00:23 +130028
29/**
30 * cb_install_e820_map() - Install e820 map provided by coreboot sysinfo
31 *
32 * This should be used when booting from coreboot, since in that case the
33 * memory areas are provided by coreboot in its sysinfo.
34 *
35 * @max_entries: Maximum number of entries to write
36 * @entries: Place to put entires
Heinrich Schuchardt185f8122022-01-19 18:05:50 +010037 * Return: number of entries written
Simon Glasse7bae822021-03-15 18:00:23 +130038 */
39unsigned int cb_install_e820_map(unsigned int max_entries,
40 struct e820_entry *entries);
41
Simon Glass3a250732020-09-22 12:45:29 -060042#endif /* __ASSEMBLY__ */
Bin Meng59ec7192015-10-07 20:19:10 -070043
Graeme Russ95ffaba2010-04-24 00:05:49 +100044#endif /* _ASM_X86_E820_H */