Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Jan 2015 09:38:46 -0800
From:      Alfred Perlstein <bright@mu.org>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org>
Subject:   Re: odd behaviour with graphics, vt(4), VGA, and probing the text region leading to NMIs at boot
Message-ID:  <A59265C3-8C93-4AA3-BC88-D34A5B24AE48@mu.org>
In-Reply-To: <2F715AD9-CF34-4516-B75E-E14C77BFD2E3@mu.org>
References:  <CAJ-Vmon2BZZbMRAJVAN=cngZmqu8XRQ8LzswqETsfwrLmfB53w@mail.gmail.com> <2F715AD9-CF34-4516-B75E-E14C77BFD2E3@mu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Another option might be to try forcing text mode, then switching to gfx =
then trying to write to the b800/b000 memory region.

See if that "initializes" things properly.

-Alfred

On Jan 3, 2015, at 9:31 AM, Alfred Perlstein wrote:

> Sounds like the virtualization code is sensitive to the mode.  Meaning =
that whatever is virtualizing the graphics card doesn't do the proper =
thing when you're in a graphical mode.  Can't the probes be turned off?
>=20
> Basically when the "card" is in gfx mode, it doesn't do the right =
thing for those memory addresses.  Sounds like the fix would be to not =
touch those regions unless you're actually in text mode. =20
>=20
> On Jan 3, 2015, at 9:12 AM, Adrian Chadd wrote:
>=20
>> Hi,
>>=20
>> I found -head didn't boot on a T400 I have here with external radeon
>> graphics (ie, not using the intel graphics.)
>>=20
>> I was getting a memory parity error NMI upon boot, shortly after
>> probing option ROMs.
>>=20
>> It turns out that it's the ISA device probe/attach path trying to
>> attach the VGA adapter, and doing testing of the memory regions at
>> 0xb800:0000 (mono text) and 0xb000:0000 (colour text) - yes, I'm =
using
>> the 8086 real mode notation because I'm talking about ISA graphics
>> cards.
>>=20
>> If I boot -HEAD with vt(4) in graphics mode, then it's using 640x480
>> graphics and that's mapped at 0xa000:0000 for 64k. There apparently
>> isn't anything at 0xb800:0000 or 0xb000:0000 and touching those
>> regions leads to an NMI.
>>=20
>> Now, the tricksy bit is that it's not accessing those addresses
>> directly - it's going via the physical map, that's mapped it at
>> 0xc00b8000 and 0xc00b0000 - yes, those are 32 bit (virtual, kernel
>> mode) addresses. I don't know if this is part of the problem.
>>=20
>> If I boot -HEAD with vt(4) in text mode (hw.vga.textmode=3D1) then it =
boots fine.
>>=20
>> So - has anyone else seen/debugged this? It doesn't happen on
>> everything - just this one T400 I have. But I can't help but wonder
>> what else is going to get finnicky about ISA probing like this.
>> _______________________________________________
>> freebsd-arch@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
>> To unsubscribe, send any mail to =
"freebsd-arch-unsubscribe@freebsd.org"
>>=20
>=20
> _______________________________________________
> freebsd-arch@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
> To unsubscribe, send any mail to =
"freebsd-arch-unsubscribe@freebsd.org"
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A59265C3-8C93-4AA3-BC88-D34A5B24AE48>