Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Jul 2003 18:30:53 +0930
From:      Greg 'groggy' Lehey <grog@FreeBSD.org>
To:        Bruce M Simpson <bms@spc.org>, FreeBSD current users <FreeBSD-current@FreeBSD.ORG>, FreeBSD mobile Mailing List <freebsd-mobile@FreeBSD.org>
Subject:   Re: Mapping Video BIOS?
Message-ID:  <20030726090053.GC45069@wantadilla.lemis.com>
In-Reply-To: <20030726084114.GD27921@spc.org>
References:  <20030726080217.GB45069@wantadilla.lemis.com> <20030726084114.GD27921@spc.org>

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

--hYooF8G/hrfVAmum
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Saturday, 26 July 2003 at  9:41:14 +0100, Bruce M Simpson wrote:
> On Sat, Jul 26, 2003 at 05:32:17PM +0930, Greg 'groggy' Lehey wrote:
>> Can anybody point me in the right direction?  Where should I be
>> looking for this?  Is this memory mapped permanently, or is it only
>> during X startup?
>
> The video BIOS is usually mapped by system BIOS into real memory to
> begin with, so it should be just sitting there.  There are usually northbridge
> chipset registers for dealing with this sort of thing.
>
> The SMM mode might reuse that window, though, but generally this is hidden
> from non-SMM mode applications.
>
> You're in luck - been rebuilding X, so have xc tarballs handy.
>
> The XFree86 code responsible is:
xc/programs/Xserver/hw/xfree86/int10

Yup, I've been playing around with it.  I currently have my arms in
xf86ExtendedInitInt10, which does the mapping.  It tries to map 256 kB
of memory, and I suppose it does, for some definition:

(II) RADEON(0): mapped system memory at 0xc0000, len 0x40000, video BIOS offset 0xc0000, to 0x28368000

But at 0xcc00, I get:

(gdb) x/20x 0x28373ff0
0x28373ff0:     0x00800304      0x0000000c      0x0b100020      0x4002003e
0x28374000:     0xffffffff      0xffffffff      0xffffffff      0xffffffff
0x28374010:     0xffffffff      0xffffffff      0xffffffff      0xffffffff

I've looked in the same space with Microsoft, which says:

C000:BFF0  04 03 80 00 0C 00 00 00-20 00 10 0B 3E 00 02 40   ........ ...>..@
C000:C000  00 2E 05 01 06 10 40 01-90 01 02 97 01 45 01 0D   ......@......E..

> Some drivers like to call VBE via int10h, so this module acts as a bridge.
> It just memcpy()'s the ROM and uses various methods, depending on the
> compilation target, to call int10h.
>
> Is the onboard video AGP/PCI?

Intel 82845, if that's the correct answer.  I've put the dmesg up at
http://www.lemis.com/grog/Inspiron/dmesg.boot.

> It is possible that the device isn't reporting its memory window in
> the ROM BAR correctly. I've seen this happen with some low-end
> network cards before.

I could believe that, but I think we have a different problem here:
since it's mapping up to the end of low memory.  My guess is that
something else shares this space, and that it has been turned off.
I'm going to carry on investigating, but if anybody else recognizes
the problem, I'd be interested to hear from you.

> Try my tools at this URL to check this:
> http://www.incunabulum.com/code/projects/pci/freebsd/

Thanks, I'll try that anyway.

Greg
--
See complete headers for address and phone numbers

--hYooF8G/hrfVAmum
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.0 (FreeBSD)

iD8DBQE/IkNFIubykFB6QiMRAtFmAJ0cy2w4FwN/NL9/FNVtMyXZyDT8eACfdwty
fS2TOP7OMypn81naHY7+8lA=
=LZtT
-----END PGP SIGNATURE-----

--hYooF8G/hrfVAmum--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030726090053.GC45069>