Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Oct 2009 13:37:02 -0700
From:      Marcel Moolenaar <xcllnt@mac.com>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        arch@freebsd.org, jkim@freebsd.org
Subject:   Re: x86BIOS and the ISA bus and low memory in general...
Message-ID:  <4890688A-D2DB-431C-ADB6-03A39A8FD10E@mac.com>
In-Reply-To: <20091015.134532.-1110324186.imp@bsdimp.com>
References:  <20091015.085910.-520412456.imp@bsdimp.com> <200910151118.50619.jhb@freebsd.org> <200910151431.53236.jkim@FreeBSD.org> <20091015.134532.-1110324186.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Oct 15, 2009, at 12:45 PM, M. Warner Losh wrote:

> [[ redirected to arch@ ]]
>
> In message: <200910151431.53236.jkim@FreeBSD.org>
>            Jung-uk Kim <jkim@FreeBSD.org> writes:
> <snip>
> : This is actually very interesting discussion for me because one of  
> my
> : pet projects is extending x86bios to support non-PC architectures.
> : If anyone is interested, the current source tarball is here:
> :
> : http://people.freebsd.org/~jkim/x86bios-20091015.tar.bz2
> :
> : Especially, please see the code around #ifdef X86BIOS_COMPAT_ARCH.
> : Basically, mapping I/O ports and orm(4) is missing.  We don't have  
> to
> : implement I/O ports but orm(4) vs. bus_space(9) is critical to make
> : it a reality.  Please consider it as a real practical example for
> : orm, not just a blackhole driver. :-)
>
> 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
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/O ports don't exist and there's a memory region for generating
I/O port accesses, but the translation is not linear, so you
can't work with a single base and port offset to get this to work.
See ia64_ioport_address() in sys/ia64/ia64/machdep.c

-- 
Marcel Moolenaar
xcllnt@mac.com






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4890688A-D2DB-431C-ADB6-03A39A8FD10E>