From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3418 invoked by alias); 25 Nov 2003 16:30:44 -0000 Mailing-List: contact ecos-discuss-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@sources.redhat.com Received: (qmail 3403 invoked from network); 25 Nov 2003 16:30:43 -0000 Received: from unknown (HELO msgbas1x.cos.agilent.com) (192.25.240.36) by sources.redhat.com with SMTP; 25 Nov 2003 16:30:43 -0000 Received: from relcos1.cos.agilent.com (relcos1.cos.agilent.com [130.29.152.239]) by msgbas1x.cos.agilent.com (Postfix) with ESMTP id 1DEA6277C1; Tue, 25 Nov 2003 09:30:43 -0700 (MST) Received: from axcsbh3.cos.agilent.com (axcsbh3.cos.agilent.com [130.29.152.190]) by relcos1.cos.agilent.com (Postfix) with SMTP id 055A2277; Tue, 25 Nov 2003 09:30:43 -0700 (MST) Received: from 130.29.152.190 by axcsbh3.cos.agilent.com (InterScan E-Mail VirusWall NT); Tue, 25 Nov 2003 09:30:42 -0700 Received: by axcsbh3.cos.agilent.com with Internet Mail Service (5.5.2653.19) id ; Tue, 25 Nov 2003 09:30:42 -0700 Message-ID: <1BEBA5E8600DD4119A50009027AF54A010FAE480@axcs04.cos.agilent.com> From: kevin_lemay@agilent.com To: nickg@ecoscentric.com Cc: ecos-discuss@sources.redhat.com Date: Tue, 25 Nov 2003 16:30:00 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Subject: RE: [ECOS] i386 Memory Size Problem X-SW-Source: 2003-11/txt/msg00382.txt.bz2 Nick, I found some sample code that makes the calls that I need. Are there any examples of storing to the c/C++ variables that would help me to do the port? Kevin -----Original Message----- From: nickg@miso.calivar.com [mailto:nickg@miso.calivar.com]On Behalf Of Nick Garnett Sent: Tuesday, November 25, 2003 2:58 AM To: LEMAY,KEVIN (A-Roseville,ex1) Cc: ecos-discuss@sources.redhat.com Subject: Re: [ECOS] i386 Memory Size Problem kevin_lemay@agilent.com writes: > There appears to be an issue with the pcmb_misc.c file where it determines to actual amount of extended memory available. > > It is reading bytes 0x17 and 0x18 from the CMOS which limits the RAM size to 64MB. > > I was trying to find the proper way to find out the memory size, and found the following on the web. > > Use BIOS calls: > INT 15h AX=E820h (32-bit CPU only). If this fails... > ...use INT 15h AX=E801h. If this fails... > ...use INT 15h AH=88h. > Read the extended memory size from CMOS only if all of the BIOS calls listed above fail. > > How do I do this with eCos? > > I have a large application that I am porting that allocates lots of ram. I need more than 64MB. > You would need to put this code into the real mode startup code in pcmb.inc or platform.inc. There's already calls to INT 15h AX=0x88 and INT 12h there which just push the results, but then does nothing with them -- I think this must be obsolete code. So the right thing to do is probably to pull the pushed values after the switch to protected mode and store them in cyg_hal_pcmb_memsize_base and cyg_hal_pcmb_memsize_extended. Then just disable the options that control the code in hal_pcmb_init(). -- Nick Garnett eCos Kernel Architect http://www.ecoscentric.com The eCos and RedBoot experts -- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss