diff options
author | H. Peter Anvin <hpa@zytor.com> | 2009-05-21 16:03:15 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2009-05-21 16:03:15 -0700 |
commit | afef2c845b93ebe52c178a5a42d498be75fb4c8c (patch) | |
tree | 8e914b01ea0cc2931a4cb0c8455223405fea642b /memdisk/e820test.c | |
parent | 044154a0479cd365597846dd7025755eb852d76f (diff) | |
download | syslinux-afef2c845b93ebe52c178a5a42d498be75fb4c8c.tar.gz |
Drop support for ACPI 3 E820 extended memory attributes
Drop all support for ACPI 3 E820 extended memory attributes. There
are BIOSes in the field that report completely bogus information here,
resulting in no memory at all being detected (we then fall back to
E801 detection, but that is problematic in its own ways.)
There is strong reasons to believe at this point that the extended
memory attributes are not usable in their current form, so drop them
and revert back to simple 20-byte support, including for MEMDISK
spoofing.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'memdisk/e820test.c')
-rw-r--r-- | memdisk/e820test.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/memdisk/e820test.c b/memdisk/e820test.c index 41fee007..2de7fd4e 100644 --- a/memdisk/e820test.c +++ b/memdisk/e820test.c @@ -36,17 +36,17 @@ void printranges(void) { int i; for ( i = 0 ; i < nranges ; i++ ) { - printf("%016llx %016llx %d %x\n", + printf("%016llx %016llx %d\n", ranges[i].start, ranges[i+1].start - ranges[i].start, - ranges[i].type, ranges[i].extattr); + ranges[i].type); } } int main(void) { uint64_t start, len; - uint32_t type, extattr; + uint32_t type; char line[BUFSIZ], *p; e820map_init(); @@ -55,12 +55,11 @@ int main(void) while ( fgets(line, BUFSIZ, stdin) ) { p = strchr(line, ':'); p = p ? p+1 : line; - extattr = 1; - if ( sscanf(p, " %llx %llx %d %x", &start, &len, &type, &extattr) >= 3 ) { + if ( sscanf(p, " %llx %llx %d", &start, &len, &type) == 3 ) { putchar('\n'); - printf("%016llx %016llx %d %x <-\n", start, len, type, extattr); + printf("%016llx %016llx %d <-\n", start, len, type); putchar('\n'); - insertrange(start, len, type, extattr); + insertrange(start, len, type); printranges(); } } |