Re: Memory being incorrected sized at boot-up

Larry M. Augustin (lma@varesearch.com)
Wed, 16 Jul 1997 17:53:51 -0700


Here are some memory detection patches for 2.0.30, 2.0.30-pre2, and 2.1.44.

These patches modify the x86 memory BIOS query code to:

1. always return the ah=0x88 BIOS function result in the PARAM+2 slot
in the kernel parameter page exactly as done in the original code.
This should make programs that depend on this happy.

2. Newer BIOS calls (0xe801 and 0xc7) are used to test for larger amounts
of memory. The results of these calls are returned in new locations
in the kernel parameter page.

3. arch/i386/kernel/setup.c then compares results and sets the memory size
accordingly.

Please let me know if this solves the loadlin problems (particularly
with 2.1 kernels). Also, I'd like to see reports from anyone who sees
any results reporting the amount of cachable RAM.

Patches for 2.0.30:
setup.S-2.0.30.patch patches arch/i386/boot/setup.S
setup.c-2.0.30.patch patches arch/i386/kernel/setup.c
Patches for 2.0.30-pre2:
setup.S-2.0.30-pre2.patch patches arch/i386/boot/setup.S
setup.c-2.0.30-pre2.patch patches arch/i386/kernel/setup.c
Patches for 2.1.44:
memdetect-2.1.44.patch

I've tried these on a handful of machines around here, but nothing
terribly extensive yet.

Larry

begin 660 memdetect.tar.gz
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
AZ`U?QC5`C10+Q<)+#]?-M;DVU^9ZLNO_`*%/)+D`>```
`
end