OSOTMEM - INSTALLED MEMORY NOT RECOGNIZED ON ISA SYSTEMS 01/30/96 ======================================================================= Installed Memory Not Recognized on ISA Systems All OS/2 Releases ======================================================================= Please Read Entire Document for Full Explanation of Procedures -------------------------------------------------------------- DESCRIPTION Installed memory of more than 64 MB might not be recognized on systems using Phoenix or AMI BIOS. RESOLUTION 1. To resolve this on a system with Phoenix BIOS, check the setup for a "Compatibility Mode" setting. If this is present, disable it; if it isn't, a BIOS upgrade might be necessary. 2. To resolve this on a system with OS/2 Warp or OS/2 2.11, apply the latest FixPak. Some systems constantly restart when starting OS/2 or when installing OS/2. This occurs when systems run versions of both the AMI and Phoenix BIOS. This might also apply to other BIOS. The problem is described in APAR PJ14893. Determining RAM Available on ISA Systems ---------------------------------------- During startup, OS2LDR issues the three BIOS calls, which are described later in this document. If INT 15 AX=88 returns a value other than 16M, this is the amount of RAM OS/2 addresses. If it returns 16M, OS/2 checks the return from INT 15 AX=E801 to see if extra RAM is available. Once OS2LDR determines what RAM is available to the system, it passes this to OS2KRNL. OS2KRNL initializes the Page Manager, which does a final check to verify that the RAM returned by the BIOS really is addressable. OS/2 does not try to find and use any free RAM between 640 KB and 1 MB, which is reserved for hardware. BIOS Considerations with Installed RAM over 64 MB ------------------------------------------------- Systems with Phoenix BIOS might have a problem using RAM above 64 MB. The system continuously restarts if more than 64 MB of RAM is installed, because it might recognize only 64 MB of memory. The problem is due to multiple interpretations of the INT 15 AH=88 BIOS call, because no BIOS call was implemented to report that more than 64 MB was available. Check for a "Compatibility Mode" setting in the BIOS and disable it if it is present. This should resolve the problem. Phoenix implemented the INT 15 AX=E801 call as of July 1994. If the BIOS date is earlier, it probably does not have this call. BIOS after July 1994 should have the call, if the vendor that licensed the BIOS code chose to implement it. Check the system setup for a "Compatibility Mode" setting and make sure it is disabled for OS/2. When this is disabled, the Phoenix BIOS returns memory the same way that Compaq systems do, which is described later in this document. This setting might have different names in different licensed versions of Phoenix BIOS. AMI BIOS also might have the continuous-restart problem, and the same APAR applies. AMI implemented a call in their BIOS as of September 1994 to report more than 64 MB. AMI implemented this call differently than Compaq. Currently OS/2 does not recognize memory over 64 MB returned by the AMI BIOS. The latest FixPaks resolve this issue. BIOS Calls to Determine RAM on Non-Micro-Channel Systems -------------------------------------------------------- INT 12 ------ This is the standard industry call to query the BIOS for available RAM below 640KB. The call returns into the AX register, the number of 1KB blocks of RAM the system has available in this memory area. INT 15 ;AH=88 --------------- This is the standard industry call to query the BIOS for RAM between 1 MB and 64 MB. The call returns, to the AX register, the number of 1 KB blocks of RAM the system has available in this memory area. The call technically can support between 1 MB and 65 MB, but the standard limits it to 64 MB. INT 15 ;AX=E801 ----------------- This is a call used by Compaq systems to query the BIOS for memory between 16 MB and 4 GB. The call returns, to the BX register, the number of 64 KB blocks of memory the system has available in this memory area. If there is more than 64 MB of memory in the system, the INT 15 AH=88 call should return only 16 MB, and the programmer should use INT 15 AX=E801 to find the additional memory available to the system. INT 15 AX=E801 also returns in the AX register, number of 1 KB pages between 1 MB and 16 MB, so that the INT 15 AX=E801 call returns all memory above 1 MB. AMI also has implemented this call, but OS/2 does not currently support their implementation. Note: For additional information, also see technical document OSOTMEM1, OS/2 Addressing Memory Greater Than 16 MB. ______________________________________________________________________ IBM disclaims all warranties, whether express or implied, including without limitation, warranties of fitness and merchantability with respect to the information in this document. By furnishing this document, IBM grants no licenses to any related patents or copyrights. Copyright (c) 1994, 1996 IBM Corporation. Any trademarks and product or brand names referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information.