<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - DRM / KMS bootup error on VX900 platform"
href="https://bugs.freedesktop.org/show_bug.cgi?id=94473#c29">Comment # 29</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - DRM / KMS bootup error on VX900 platform"
href="https://bugs.freedesktop.org/show_bug.cgi?id=94473">bug 94473</a>
from <span class="vcard"><a class="email" href="mailto:kevinbrace@gmx.com" title="Kevin Brace <kevinbrace@gmx.com>"> <span class="fn">Kevin Brace</span></a>
</span></b>
<pre>Hi Frank,
Assuming the IGP is Chrome 9 or is an AGP device, then a function called
via_agp_engine_init is called.
If you compare the registers being initialized here to OpenChrome DDX's
VIAInitialize3DEngine function inside via_ums.c, there are some similarities.
_________________________________________________________________________
static void via_agp_engine_init(struct drm_via_private *dev_priv)
{
VIA_WRITE(VIA_REG_TRANSET, 0x00100000);
VIA_WRITE(VIA_REG_TRANSPACE, 0x00000000);
VIA_WRITE(VIA_REG_TRANSPACE, 0x00333004);
VIA_WRITE(VIA_REG_TRANSPACE, 0x60000000);
VIA_WRITE(VIA_REG_TRANSPACE, 0x61000000);
VIA_WRITE(VIA_REG_TRANSPACE, 0x62000000);
VIA_WRITE(VIA_REG_TRANSPACE, 0x63000000);
VIA_WRITE(VIA_REG_TRANSPACE, 0x64000000);
VIA_WRITE(VIA_REG_TRANSPACE, 0x7D000000);
VIA_WRITE(VIA_REG_TRANSET, 0xfe020000);
VIA_WRITE(VIA_REG_TRANSPACE, 0x00000000);
}
_________________________________________________________________________
_________________________________________________________________________
static void
VIAInitialize3DEngine(ScrnInfoPtr pScrn)
{
VIAPtr pVia = VIAPTR(pScrn);
int i;
VIASETREG(VIA_REG_TRANSET, 0x00010000);
for (i = 0; i <= 0x7D; i++)
VIASETREG(VIA_REG_TRANSPACE, (CARD32) i << 24);
VIASETREG(VIA_REG_TRANSET, 0x00020000);
for (i = 0; i <= 0x94; i++)
VIASETREG(VIA_REG_TRANSPACE, (CARD32) i << 24);
VIASETREG(VIA_REG_TRANSPACE, 0x82400000);
VIASETREG(VIA_REG_TRANSET, 0x01020000);
for (i = 0; i <= 0x94; i++)
VIASETREG(VIA_REG_TRANSPACE, (CARD32) i << 24);
VIASETREG(VIA_REG_TRANSPACE, 0x82400000);
VIASETREG(VIA_REG_TRANSET, 0xfe020000);
for (i = 0; i <= 0x03; i++)
VIASETREG(VIA_REG_TRANSPACE, (CARD32) i << 24);
VIASETREG(VIA_REG_TRANSET, 0x00030000);
for (i = 0; i <= 0xff; i++)
VIASETREG(VIA_REG_TRANSPACE, 0);
VIASETREG(VIA_REG_TRANSET, 0x00100000);
VIASETREG(VIA_REG_TRANSPACE, 0x00333004);
VIASETREG(VIA_REG_TRANSPACE, 0x10000002);
VIASETREG(VIA_REG_TRANSPACE, 0x60000000);
VIASETREG(VIA_REG_TRANSPACE, 0x61000000);
VIASETREG(VIA_REG_TRANSPACE, 0x62000000);
VIASETREG(VIA_REG_TRANSPACE, 0x63000000);
VIASETREG(VIA_REG_TRANSPACE, 0x64000000);
VIASETREG(VIA_REG_TRANSET, 0x00fe0000);
if (pVia->Chipset == VIA_CLE266 && pVia->ChipRev >= 3)
VIASETREG(VIA_REG_TRANSPACE, 0x40008c0f);
else
VIASETREG(VIA_REG_TRANSPACE, 0x4000800f);
VIASETREG(VIA_REG_TRANSPACE, 0x44000000);
VIASETREG(VIA_REG_TRANSPACE, 0x45080C04);
VIASETREG(VIA_REG_TRANSPACE, 0x46800408);
VIASETREG(VIA_REG_TRANSPACE, 0x50000000);
VIASETREG(VIA_REG_TRANSPACE, 0x51000000);
VIASETREG(VIA_REG_TRANSPACE, 0x52000000);
VIASETREG(VIA_REG_TRANSPACE, 0x53000000);
VIASETREG(VIA_REG_TRANSET, 0x00fe0000);
VIASETREG(VIA_REG_TRANSPACE, 0x08000001);
VIASETREG(VIA_REG_TRANSPACE, 0x0A000183);
VIASETREG(VIA_REG_TRANSPACE, 0x0B00019F);
VIASETREG(VIA_REG_TRANSPACE, 0x0C00018B);
VIASETREG(VIA_REG_TRANSPACE, 0x0D00019B);
VIASETREG(VIA_REG_TRANSPACE, 0x0E000000);
VIASETREG(VIA_REG_TRANSPACE, 0x0F000000);
VIASETREG(VIA_REG_TRANSPACE, 0x10000000);
VIASETREG(VIA_REG_TRANSPACE, 0x11000000);
VIASETREG(VIA_REG_TRANSPACE, 0x20000000);
}
_________________________________________________________________________</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>