Date: Fri, 16 Oct 2009 21:09:30 -0700 From: Marcel Moolenaar <xcllnt@mac.com> To: Jung-uk Kim <jkim@FreeBSD.org> Cc: freebsd-arch@FreeBSD.org Subject: Re: x86BIOS and the ISA bus and low memory in general... Message-ID: <7178B392-D211-41C3-80DC-97E90263B8B7@mac.com> In-Reply-To: <200910161346.03066.jkim@FreeBSD.org> References: <20091015.085910.-520412456.imp@bsdimp.com> <20091015.134532.-1110324186.imp@bsdimp.com> <4890688A-D2DB-431C-ADB6-03A39A8FD10E@mac.com> <200910161346.03066.jkim@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Oct 16, 2009, at 10:46 AM, Jung-uk Kim wrote: >>> >>> I thought that most video cards had I/O ports as well as video >>> RAM that needed to be mapped... Am I crazy? >> >> It depends on the platform. On an Itanium machine I have the >> VGA frame buffer is at physical address 0xA0000-0xC0000. > > The address is the same, then. :-) On this one machine it happens to be the same. On another machine there's no addressable memory below 768TB (yes, terabyte), so as I said: it depends. >> The only requirement is that you use non-cached I/O, otherwise >> you get a machine check. This can mean a non-identity mapping >> or not. It all depends... > > I couldn't find a way to manipulate memory attribute directly on ia64, > i.e., mem_range_attr_{get,set}() and pmap_mapdev_attr() only exist on > amd64 and i386. Does pmap_mapdev() set the attribute as UC? New KPIs are typically only implemented for i386 and amd64. It's one of the many unnecessary difficulties one faces when trying to port or maintain a platform. > It seems there are PC-compatible inline functions {in,out}[bwl] in > sys/ia64/include/cpufunc.h. Will they work as I expect? Yes, but it's always been my intention to remove them. Don't base any implementation on the existence of these... FYI, -- Marcel Moolenaar xcllnt@mac.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7178B392-D211-41C3-80DC-97E90263B8B7>