Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Dec 1998 15:43:25 -0800
From:      Mike Smith <mike@smith.net.au>
To:        Mark Templeton <druid@atc.dera.gov.uk>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: Memory holes for ISA device drivers 
Message-ID:  <199812222343.PAA01608@dingo.cdrom.com>
In-Reply-To: Your message of "Tue, 22 Dec 1998 16:36:20 GMT." <367FCA84.3DBE8085@atc.dera.gov.uk> 

next in thread | previous in thread | raw e-mail | index | archive | help
> Mike Smith wrote:
> > 
> > > OS is 2.2.5
> > > Card is on ISA bus, preferably at 0xA00000.
> > >
> > > How do I create a (physical) memory hole for a card,
> > > as the card holds 64k shared memory?
> > > The target system BIOS does not support the 15-16M memory hole.
> > > pmap_mapdev() maps physical to virtual memory, but does not
> > > create a hole.
> > >
> > > How do I create a memory hole?
> > 
> > This is chipset- and motherboard-specific.  If you can't map the card
> > into the ISA 'hole' at 0xa0000, then you're SOL short of building a
> > custom PCI:ISA bridge (eg. using a PLX9050) and remapping it into PCI
> > space.
> 
> Thank you for your comments, Mike.
> 
> But even on systems that support the ISA memory hole, this
> restricts FreeBSD to effectively see only 15MB of RAM.
> Surely this is undesirable?

Unless I'm muchly mistaken, FreeBSD does support noncontiguous memory 
chunks.  I'm not certain that the speculative probe stuff would get it 
right (your card would probably confuse it), but the vm86-based probe 
uses the BIOS, which knows about the hole.

> Are there no software alternatives?

Since you have to manipulate the motherboard hardware in order to 
create a hole which maps into the ISA memory space, and since we make 
no attempt to support motherboard chipsets to that level (the support 
issues alone would be horrific), the answer has to be no.

> If not, then I guess I have to talk to MRBIOS and see if they
> can supply me a BIOS which will do what I need.

If this is a one-off application, and you know the exact hardware on 
which it will always be running, you have a much narrower problem set.
At that level you can easily arrange to remove the 64k region from the 
VM and twiddle the hardware to chage the mappings (contingent on you 
having chipset documentation).  This will hurt you later if you have to 
move platforms of course...

-- 
\\  Sometimes you're ahead,       \\  Mike Smith
\\  sometimes you're behind.      \\  mike@smith.net.au
\\  The race is long, and in the  \\  msmith@freebsd.org
\\  end it's only with yourself.  \\  msmith@cdrom.com



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199812222343.PAA01608>