Re: [OT] Documentation for PC Architecture

From: Jamie Lokier (jamie_at_shareable.org)
Date: 08/19/03

  • Next message: Jamie Lokier: "Re: weird pcmcia problem"
    Date:	Tue, 19 Aug 2003 02:02:05 +0100
    To: Paolo Ornati <javaman@katamail.com>, linux-kernel@vger.kernel.org
    
    

    Herbert Pötzl wrote:
    > On Mon, Aug 18, 2003 at 11:11:53PM +0200, Paolo Ornati wrote:
    > > >
    > > > > Curiosity: since the memory addresses from 640KB to 1MB are reserved for
    > > > > memory mapped I/O (video memory) and BIOS ROM... the corrispondent range
    > > > > in
    > > >
    > > > uh oh ...
    > > >
    > > > > the REAL MEMORY isn't usable and so we lost 384KB of memory. Is this
    > > > > right?
    > > >
    > > > for DOS, withouth upper memory manager yes ;)
    > >
    > > I'm talking about an OS in protected mode... in any case how
    > > can I access to this memory region if it's mapped for other things?
    >
    > this is usually done via the MMU which can do miracolous
    > things to memory and addresses ...
    >
    > > I've done some tests with a simple kernel which I wrote: all that region
    > > (except video memory at 0xb8000) results "read only"...
    >
    > because it is usually designated as rom area, which naturally
    > is read only ...
    >
    > > So I THINK YOU mean: "you can use more than 640KB in real mode using
    > > a memory manager that "remap" 0xC0000 (for example) to 0x100000 or
    > > something like it"
    >
    > basically a memory manager (depending on the processors
    > capabilities) does either use memory mapping or simple
    > memory exchanging between designated regions and above
    > 1M+64k memory ...

    The MMU _is_ used to remap memory addresses. It is part of the CPU itself.
    But it translates what's called "virtual address" space to "physical
    address space". Physical addresses seemingly map directly to RAM and
    memory-mapped I/O.

    Paolo's question is, what happens to the 384k of _physical_ addresses
    starting at 0xa0000, which should correspond with 384k of actual
    physical RAM?

    If you use the MMU to map a virtual address to the physical addresses from
    0xa0000..0xfffff, then whichever virtual addresses you chose will map to
    video memory, ROM, BIOS etc.

    The answer is that after the MMU has translated, a _second_ address
    translation takes place, outside the CPU, which maps the physical addresses
    so that a hole is created in the RAM without any RAM going missing. This
    second translation is done by the motherboard chipset.

    Enjyo,
    -- Jamie

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Jamie Lokier: "Re: weird pcmcia problem"

    Relevant Pages

    • Re: physical RAM limit under WinCE 6.0
      ... If your customer is used to the memory requirements of XP, ... And increasing RAM in CE don't increase performances as it does in XP. ... CE 6 only kernel or user mode driver can map addresses in this way. ...
      (microsoft.public.windowsce.platbuilder)
    • Re: XP memory detection problem at 4 GB
      ... Show about 3.37 GB of RAM and one shows 3.0 GB of RAM. ... > sees a 4GB memory map, but my bios has a setting DRAM ... > some reason the full 4GB cannot fit in the first map. ...
      (microsoft.public.windowsxp.hardware)
    • Re: [SLE] SuSE 10.1 32bit and 4GB RAM, seen are 3.5GB
      ... The BIOS provides the following RAM map: ... I loose the memory right there. ... I could not find a BIOS settings to re-map the memory for the integrated ...
      (SuSE)
    • Re: Basic virtual memory question
      ... > SYSGEN's help tells me that VirtualPageCnt has been obsolete since version 7.0. ... I think the map sizes are derived from the working ... any physical memory that is alloacted to system structures is memory ... peripherals that looked like RAM (VMS had to be able to map UNIBUS ...
      (comp.os.vms)
    • Re: [OT] Documentation for PC Architecture
      ... 384K of memory starting from 640K. ... RAM anyway is cheap. ... > If you use the MMU to map a virtual address to the physical addresses ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)