From owner-freebsd-hackers Tue Oct 9 17:37:23 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from prism.flugsvamp.com (cb58709-a.mdsn1.wi.home.com [24.17.241.9]) by hub.freebsd.org (Postfix) with ESMTP id B75F437B409 for ; Tue, 9 Oct 2001 17:37:19 -0700 (PDT) Received: (from jlemon@localhost) by prism.flugsvamp.com (8.11.0/8.11.0) id f9A0bfv40852; Tue, 9 Oct 2001 19:37:41 -0500 (CDT) (envelope-from jlemon) Date: Tue, 9 Oct 2001 19:37:41 -0500 (CDT) From: Jonathan Lemon Message-Id: <200110100037.f9A0bfv40852@prism.flugsvamp.com> To: gene@nttmcl.com, hackers@freebsd.org Subject: Re: VM question (I hate Intel 810/815 chipsets...) X-Newsgroups: local.mail.freebsd-hackers In-Reply-To: Organization: Cc: Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG In article you write: >What would be the best way to allocate: > >1) a VM page whose physical address falls within a certain boundary, and >2) a VM object whose pages are contiguous in physical address space? > >Background: >The !@*%^*!&#^%*&!#^$!@ Intel 810/815 graphics controller requires its >instruction and hardware cursor buffers to reside within first 32MB and >512MB of *physical* memory space respectively. :( :( ;( The XFree86 >driver assumes the Linux memory model (virtual addr == physical addr), >so it runs on Linux, but not always on FreeBSD. You probably want contigmalloc(), which allocates a range of memory which is physically contiguous. (assuming this is a in-kernel driver) void * contigmalloc( unsigned long size, /* should be size_t here and for malloc() */ struct malloc_type *type, int flags, unsigned long low, unsigned long high, unsigned long alignment, unsigned long boundary) -- Jonathan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message