Damn you ACPI


Perhaps I should say damn you OS/2. OS/2 doesn’t support ACPI. Here is the result of little program that tests various BIOS queries for the amount of RAM you have:

Int12        returns: 638 KiBytes
Int15 (88)   returns: 65536 KiBytes above 1MiB
Int15 (C0)   returns: PS/2 function Int15 (C7) is not supported
Int15 (DA88) returns: 130047 KiBytes above 1MiB
Int15 (E801) returns: 129984 KiBytes above 1MiB available
                      129984 KiBytes above 1MiB configured
Int15 (E820) returns memory list:
       638 KiBytes @ 0 K
     65526 KiBytes @ 1024 K
     64513 KiBytes @ 66559 K

ACPI memory table has holes, max. contiguous range is 66550KiBytes
Try switching off ACPI in BIOS!

I tried disabling the power management option in my BIOS, but no luck. The newer OS/2 kernel uses Int15 with EAX set to 0x0000E820, and if you look carefully you see that the ACPI has reserved about 9 K of memory, right smack in the middle. I get the impression OS/2 wants it’s memory to be contiguous, and hence only uses 64 Megs.

I installed a patch to the OS/2 kernel that replaces the BIOS call with Int15 (DA88). So now I have access to all my memory, but I’m a bit terrified that OS/2 will start using memory reserved by the ACPI, and the ACPI will start trouncing on my valuable data. But maybe with power management disabled the ACPI won’t be writing anything. … Maybe.



Russell O’Connor: contact me