9 #define OVERLAP(a, b, s, e) ((b) > (s) && (a) < (e))
18 void *ptr = (
void *)
addr;
28 if (
read32(ptr) != patterns[i])
37 #define MAX_ADDRESSABLE_SPACE (sizeof(size_t) * 8 - 20 - 1)
44 size_t discovered = 0;
46 static size_t saved_result;
51 size_t tmp = probe_size;
60 for (i = msb; i >= 0; i--)
61 if (
probe_mb(dram_start, (discovered | (1ULL << i))))
62 discovered |= (1ULL << i);
64 saved_result = discovered;
int probe_mb(const uintptr_t dram_start, const uintptr_t size)
static void write32(void *addr, uint32_t val)
static uint32_t read32(const void *addr)
#define printk(level,...)
size_t probe_ramsize(const uintptr_t dram_start, const size_t probe_size)
#define OVERLAP(a, b, s, e)
#define MAX_ADDRESSABLE_SPACE
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
const struct smm_save_state_ops *legacy_ops __weak