June 2025 | ||||||
Mo | Tu | We | Th | Fr | Sa | Su |
26 | 27 | 28 | 29 | 30 | 31 | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 1 | 2 | 3 | 4 | 5 | 6 |
01: #ifndef _ASM_X86_E820_H 02: #define _ASM_X86_E820_H 03: #define E820MAP 0x2d0 /* our map */ 04: #define E820MAX 128 /* number of entries in E820MAP */ 05: 06: /* 07: * Legacy E820 BIOS limits us to 128 (E820MAX) nodes due to the 08: * constrained space in the zeropage. If we have more nodes than 09: * that, and if we've booted off EFI firmware, then the EFI tables 10: * passed us from the EFI firmware can list more nodes. Size our 11: * internal memory map tables to have room for these additional 12: * nodes, based on up to three entries per node for which the 13: * kernel was built: MAX_NUMNODES == (1 << CONFIG_NODES_SHIFT), 14: * plus E820MAX, allowing space for the possible duplicate E820 15: * entries that might need room in the same arrays, prior to the 16: * call to sanitize_e820_map() to remove duplicates. The allowance 17: * of three memory map entries per node is "enough" entries for 18: * the initial hardware platform motivating this mechanism to make 19: * use of additional EFI map entries. Future platforms may want 20: * to allow more than three entries per node or otherwise refine 21: * this size. 22: */ 23: 24: /* 25: * Odd: 'make headers_check' complains about numa.h if I try 26: * to collapse the next two #ifdef lines to a single line: 27: * #if defined(__KERNEL__) && defined(CONFIG_EFI) 28: */ 29: #define E820_X_MAX E820MAX 30: 31: #define E820NR 0x1e8 /* # entries in E820MAP */ 32: 33: #define E820_RAM 1 34: #define E820_RESERVED 2 35: #define E820_ACPI 3 36: #define E820_NVS 4 37: #define E820_UNUSABLE 5 38: 39: /* 40: * reserved RAM used by kernel itself 41: * if CONFIG_INTEL_TXT is enabled, memory of this type will be 42: * included in the S3 integrity calculation and so should not include 43: * any memory that BIOS might alter over the S3 transition 44: */ 45: #define E820_RESERVED_KERN 128 46: 47: #ifndef __ASSEMBLY__ 48: #include <linux/types.h> 49: struct e820entry { 50: __u64 addr; /* start of memory segment */ 51: __u64 size; /* size of memory segment */ 52: __u32 type; /* type of memory segment */ 53: } __attribute__((packed)); 54: 55: struct e820map { 56: __u32 nr_map; 57: struct e820entry map[E820_X_MAX]; 58: }; 59: 60: #define ISA_START_ADDRESS 0xa0000 61: #define ISA_END_ADDRESS 0x100000 62: 63: #define BIOS_BEGIN 0x000a0000 64: #define BIOS_END 0x00100000 65: 66: #define BIOS_ROM_BASE 0xffe00000 67: #define BIOS_ROM_END 0xffffffff 68: 69: #endif /* __ASSEMBLY__ */ 70: 71: 72: #endif /* _ASM_X86_E820_H */ 73: