x86BIOS and the ISA bus and low memory in general...

Marcel Moolenaar xcllnt at mac.com
Sat Oct 17 05:09:37 UTC 2009


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 at mac.com





More information about the freebsd-arch mailing list