diff options
| author | hpa <hpa> | 2001-12-11 01:20:33 +0000 |
|---|---|---|
| committer | hpa <hpa> | 2001-12-11 01:20:33 +0000 |
| commit | 7de02ddf8887f37a5e3c0f810cbf45ac7029c165 (patch) | |
| tree | d3c58b134dee7e2a5542bef8ce271a00f589a420 /memdisk/setup.c | |
| parent | 0d064db972a8bdff2e508a56f07e533348b84017 (diff) | |
| download | syslinux-7de02ddf8887f37a5e3c0f810cbf45ac7029c165.tar.gz | |
Don't initialize the E820 map statically -- it's too big
Diffstat (limited to 'memdisk/setup.c')
| -rw-r--r-- | memdisk/setup.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/memdisk/setup.c b/memdisk/setup.c index 196f33bb..a2e71fba 100644 --- a/memdisk/setup.c +++ b/memdisk/setup.c @@ -213,13 +213,11 @@ uint32_t setup(void) printf("Ramdisk at 0x%08x, length 0x%08x\n", shdr->ramdisk_image, shdr->ramdisk_size); - /* Reserve the ramdisk memory */ - insertrange(shdr->ramdisk_image, shdr->ramdisk_size, 2); - geometry = get_disk_image_geometry(shdr->ramdisk_image, shdr->ramdisk_size); - get_mem(); - parse_mem(); + e820map_init(); /* Initialize memory data structure */ + get_mem(); /* Query BIOS for memory map */ + parse_mem(); /* Parse memory map */ printf("dos_mem = %#10x (%u K)\n" "low_mem = %#10x (%u K)\n" @@ -228,6 +226,10 @@ uint32_t setup(void) low_mem, low_mem >> 10, high_mem, high_mem >> 10); + /* Reserve the ramdisk memory */ + insertrange(shdr->ramdisk_image, shdr->ramdisk_size, 2); + parse_mem(); /* Recompute variables */ + /* Figure out where it needs to go */ hptr = (struct memdisk_header *) &_binary_memdisk_bin_start; pptr = (struct patch_area *)(_binary_memdisk_bin_start + hptr->patch_offs); |
