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>
