In itematch(), check to see if the framebuffer PA matches either the

$Fssxxxxx 1MB slot space documented in the old Inside Macintosh, or the
$Fs0xxxxx 1MB slot space documented in the new IM and Guide to Macintosh
Family Hardware.
This commit is contained in:
scottr 1997-09-06 06:51:54 +00:00
parent ed2ec4869c
commit 18883bf3fc

View File

@ -1,4 +1,4 @@
/* $NetBSD: ite.c,v 1.38 1997/08/11 22:53:35 scottr Exp $ */
/* $NetBSD: ite.c,v 1.39 1997/09/06 06:51:54 scottr Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -935,7 +935,21 @@ itematch(parent, cf, aux)
return 0;
pa = pmap_extract(pmap_kernel(), (vm_offset_t)(gm->fbbase + gm->fboff));
return (pa == (vm_offset_t)m68k_trunc_page(mac68k_vidphys));
if (pa != mac68k_vidphys) {
if (pa < 0xf9000000 || pa > 0xfeffffff)
return 0;
/*
* OK, this is in the NuBus standard slot space range,
* so it might be of the form 0xFssxxxxx. Mask off the
* slot number and duplicate it in bits 20-23, per IM:V
* pp 459, 463, and IM:VI ch 30 p 17.
* Note: this is an ugly hack and I with I knew what
* to do about it. -- sr
*/
pa = (vm_offset_t)(((u_long)pa & 0xff0fffff) |
(((u_long)pa & 0x0f000000) >> 4));
}
return (pa == mac68k_vidphys);
}
static void