/*
* Copyright (C) 2007 Ben Skeggs.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial
* portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*/
#include "drmP.h"
#include "drm.h"
#include "nouveau_drv.h"
#define IS_G80 ((dev_priv->chipset & 0xf0) == 0x50)
static void
nv50_graph_init_reset(struct drm_device *dev)
{
struct drm_nouveau_private *dev_priv = dev->dev_private;
uint32_t pmc_e = NV_PMC_ENABLE_PGRAPH | (1 << 21);
DRM_DEBUG("\n");
NV_WRITE(NV03_PMC_ENABLE, NV_READ(NV03_PMC_ENABLE) & ~pmc_e);
NV_WRITE(NV03_PMC_ENABLE, NV_READ(NV03_PMC_ENABLE) | pmc_e);
}
static void
nv50_graph_init_intr(struct drm_device *dev)
{
struct drm_nouveau_private *dev_priv = dev->dev_private;
DRM_DEBUG("\n");
NV_WRITE(NV03_PGRAPH_INTR, 0xffffffff);
NV_WRITE(0x400138, 0xffffffff);
NV_WRITE(NV40_PGRAPH_INTR_EN, 0xffffffff);
}
static void
nv50_graph_init_regs__nv(struct drm_device *dev)
{
struct drm_nouveau_private *dev_priv = dev->dev_private;
DRM_DEBUG("\n");
NV_WRITE(0x400804, 0xc0000000);
NV_WRITE(0x406800, 0xc0000000);
NV_WRITE(0x400c04, 0xc0000000);
NV_WRITE(0x401804, 0xc0000000);
NV_WRITE(0x405018, 0xc0000000);
NV_WRITE(0x402000, 0xc0000000);
NV_WRITE(0x400108, 0xffffffff);
NV_WRITE(0x400824, 0x00004000);
NV_WRITE(0x400500, 0x00010001);
}
static void
nv50_graph_init_regs(struct drm_device *dev)
{
struct drm_nouveau_private *dev_priv = dev->dev_private;
DRM_DEBUG("\n");
NV_WRITE(NV04_PGRAPH_DEBUG_3, (1<<2) /* HW_CONTEXT_SWITCH_ENABLED */);
}
static uint32_t nv50_ctx_voodoo[] = {
0x0070008e, 0x0070009c, 0x00200020, 0x00600008, 0x0050004c, 0x00400e89,
0x00200000, 0x00600007, 0x00300000, 0x00c000ff, 0x00200000, 0x008000ff,
0x00700009, 0x00417e4d, 0x00401e44, 0x00401e05, 0x00401e0d, 0x00415a06,
0x00600005, 0x004015c5, 0x00600011, 0x00401c0b, 0x0090ffff, 0x0091ffff,
0x00200020, 0x00600008, 0x0050004c, 0x00600009, 0x00415a45, 0x0041754d,
0x0070009d, 0x004022cf, 0x0070009f, 0x0050009f, 0x00401fc0, 0x00200080,
0x00600008, 0x00401f4f, 0x00401fc0, 0x004025cc, 0x00700081, 0x00200000,
0x00600006, 0x00700000, 0x00111bfc, 0x00700080, 0x00700083, 0x00200047,
0x00600006, 0x0011020a, 0x002005c0, 0x00600007, 0x00300000, 0x00c000ff,
0x00c800ff, 0x00416507, 0x00202627, 0x008000ff, 0x00403c8c, 0x005000cb,
0x00a0023f, 0x00200040, 0x00600006, 0x0070000f, 0x00170202, 0x0011020a,
0x00200032, 0x0010020d, 0x001b0242, 0x00120302, 0x00140402, 0x00180500,
0x00130509, 0x00150550, 0x00110605, 0x001e0607, 0x00110700, 0x00110900,
0x00110902, 0x00110a00, 0x00160b02, 0x00110b28, 0x00140b2b, 0x00110c01,
0x00111400, 0x00111405, 0x00111407, 0x00111409, 0x0011140b, 0x002000ea,
0x00101500, 0x0040640f, 0x0040644b, 0x00213700, 0x00600007, 0x00200440,
0x008800ff, 0x0070008f, 0x0040648c, 0x005000cb, 0x00000000, 0x001118f8,
0x0020002b, 0x00101a05, 0x00131c00, 0x00111c04, 0x00141c20, 0x00111c25,
0x00131c40, 0x00111c44, 0x00141c60, 0x00111c65, 0x00131c80, 0x00111c84,
0x00141ca0, 0x00111ca5, 0x00131cc0, 0x00111cc4, 0x00141ce0, 0x00111ce5,
0x00131d00, 0x00111d04, 0x00141d20, 0x00111d25, 0x00131d40, 0x00111d44,
0x00141d60, 0x00111d65, 0x00131f00, 0x00191f40, 0x00409ee0, 0x00200217,
0x00600006, 0x00200044, 0x00102080, 0x001120c6, 0x001520c9, 0x001920d0,
0x00122100, 0x00122103, 0x00162200, 0x0040960f, 0x0040964b, 0x00213700,
0x00600007, 0x00200440, 0x008800ff, 0x0070008f, 0x0040968c, 0x005000cb,
0x00000000, 0x00122207, 0x00112280, 0x00112300, 0x00112302, 0x00122380,
0x0011238b, 0x00192394, 0x0040b0e1, 0x00200285, 0x00600006, 0x00200044,
0x00102480, 0x001124c6, 0x001524c9, 0x001924d0, 0x00122500, 0x00122503,
0x00162600, 0x00122607, 0x00112680, 0x00112700, 0x00112702, 0x00122780,
0x0011278b, 0x00192794, 0x0040cce2, 0x002002f3, 0x00600006, 0x00200044,
0x00102880, 0x001128c6, 0x001528c9, 0x0040c00f, 0x0040c04b, 0x00213700,
0x00600007, 0x00200440, 0x008800ff, 0x0070008f, 0x0040c08c, 0x005000cb,
0x00000000, 0x001928d0, 0x00122900, 0x00122903, 0x00162a00, 0x00122a07,
0x00112a80, 0x00112b00, 0x00112b02, 0x00122b80, 0x00112b8b, 0x00192b94,
0x0040dee3, 0x00200361, 0x00600006, 0x00200044, 0x00102c80, 0x00112cc6,
0x00152cc9, 0x00192cd0, 0x00122d00, 0x00122d03, 0x00162e00, 0x00122e07,
0x00112e80, 0x00112f00, 0x00112f02, 0x00122f80, 0x00112f8b, 0x00192f94,
0x0040fae4, 0x002003cf, 0x00600006, 0x00200044, 0x00103080, 0x0040ec0f,
0x0040ec4b, 0x00213700, 0x00600007, 0x00200440, 0x008800ff, 0x0070008f,
0x0040ec8c, 0x005000cb, 0x00000000, 0x001130c6, 0x001530c9, 0x001930d0,
0x00123100, 0x00123103, 0x00163200, 0x00123207, 0x00113280, 0x00113300,
0x00113302, 0x00123380, 0x0011338b, 0x00193394, 0x00410ce5, 0x0020043d,
0x00600006, 0x00200044, 0x00103480, 0x001134c6, 0x001534c9, 0x001934d0,
0x00123500, 0x00123503, 0x00163600, 0x00123607, 0x00113680, 0x00113700,
0x00113702, 0x00123780, 0x0011378b, 0x00193794, 0x004128e6, 0x002004ab,
0x00600006, 0x00200044, 0x00103880, 0x00411a0f, 0x00411a4b, 0x00213700,
0x00600007, 0x00200440, 0x008800ff, 0x0070008f, 0x00411a8c, 0x005000cb,
0x00000000, 0x001138c6, 0x001538c9, 0x001938d0, 0x00123900, 0x00123903,
0x00163a00, 0x00123a07, 0x00113a80, 0x00113b00, 0x00113b02, 0x00123b80,
0x00113b8b, 0x00193b94, 0x00413ae7, 0x00200519, 0x00600006, 0x00200044,
0x00103c80, 0x00113cc6, 0x00153cc9, 0x00193cd0, 0x00123d00, 0x00123d03,
0x00163e00, 0x00123e07, 0x00113e80, 0x00113f00, 0x00113f02, 0x00123f80,
0x00113f8b, 0x00193f94, 0x00000000, 0x0041410f, 0x005000cb, 0x00213700,
0x00600007, 0x00200440, 0x008800ff, 0x005000cb, 0x00414487, 0x0060000a,
0x00000000, 0x00415300, 0x007000a0, 0x00700080, 0x002005c0, 0x00600007,
0x00200004, 0x00c000ff, 0x008000ff, 0x005000cb, 0x00700000, 0x00200000,
0x00600006, 0x00111bfe, 0x0041754d, 0x00700000, 0x00200000, 0x00600006,
0x00111bfe, 0x00700080, 0x0070001d, 0x0040114d, 0x00700081, 0x00600004,
0x0050004a, 0x00415f88, 0x0060000b, 0x00200000, 0x00600006, 0x00700000,
0x0041750b, 0x00111bfd, 0x00402e4d, 0x00202627, 0x008000fd, 0x005000cb,
0x00c00002, 0x002005c0, 0x00600007, 0x0020015f, 0x00800002, 0x005000cb,
0x00c01802, 0x002024c8, 0x00800002, 0x005000cb, 0x00403a4d, 0x0060000b,
0x0041734d, 0x00700001, 0x00700003, 0x00417906, 0x00417a05, 0x0060000d,
0x00700005, 0x0070000d, 0x00700006, 0x0070000b, 0x0070000e, 0x0070001c,
0x0060000c, ~0
};
static uint32_t nv84_ctx_voodoo[] = {
0x0070008e, 0x0070009c, 0x00200020, 0x00600008, 0x0050004c, 0x00400e89,
0x00200000, 0x00600007, 0x00300000, 0x00c000ff, 0x00200000, 0x008000ff,
0x00700009, 0x0041634d, 0x00402944, 0x00402905, 0x0040290d, 0x00413e06,
0x00600005, 0x004015c5, 0x00600011, 0x0040270b, 0x004021c5, 0x00700000,
0x00700081, 0x00600004, 0x0050004a, 0x00216f40, 0x00600007, 0x00c02801,
0x0020002e, 0x00800001, 0x005000cb, 0x0090ffff, 0x0091ffff, 0x00200020,
0x00600008, 0x0050004c, 0x00600009, 0x00413e45, 0x0041594d, 0x0070009d,
0x00402dcf, 0x0070009f, 0x0050009f, 0x00402ac0, 0x00200200, 0x00600008,
0x00402a4f, 0x00402ac0, 0x004030cc, 0x00700081, 0x00200000, 0x00600006,
0x00700000, 0x00111bfc, 0x00700083, 0x00300000, 0x00216f40, 0x00600007,
0x00c00b01, 0x0020001e, 0x00800001, 0x005000cb, 0x00c000ff, 0x00700080,
0x00700083, 0x00200047, 0x00600006, 0x0011020a, 0x00200480, 0x00600007,
0x00300000, 0x00c000ff, 0x00c800ff, 0x00414907, 0x00202916, 0x008000ff,
0x0040508c, 0x005000cb, 0x00a0023f, 0x00200040, 0x00600006, 0x0070000f,
0x00170202, 0x0011020a, 0x00200032, 0x0010020d, 0x001c0242, 0x00120302,
0x00140402, 0x00180500, 0x00130509, 0x00150550, 0x00110605, 0x0020000f,
0x00100607, 0x00110700, 0x00110900, 0x00120902, 0x00110a00, 0x00160b02,
0x00120b28, 0x00140b2b, 0x00110c01, 0x00111400, 0x00111405, 0x00111407,
0x00111409, 0x0011140b, 0x002000cb, 0x00101500, 0x0040790f, 0x0040794b,
0x00214d40, 0x00600007, 0x0020043e, 0x008800ff, 0x0070008f, 0x0040798c,
0x005000cb, 0x00000000, 0x0020002b, 0x00101a05, 0x00131c00, 0x00121c04,
0x00141c20, 0x00111c25, 0x00131c40, 0x00121c44, 0x00141c60, 0x00111c65,
0x00131c80, 0x00121c84, 0x00141ca0, 0x00111ca5, 0x00131cc0, 0x00121cc4,
0x00141ce0, 0x00111ce5, 0x00131f00, 0x00191f40, 0x0040a1e0, 0x002001ed,
0x00600006, 0x00200044, 0x00102080, 0x001120c6, 0x001520c9, 0x001920d0,
0x00122100, 0x00122103, 0x00162200, 0x00122207, 0x00112280, 0x00112300,
0x00112302, 0x00122380, 0x0011238b, 0x00112394, 0x0011239c, 0x0040bee1,
0x00200254, 0x00600006, 0x00200044, 0x00102480, 0x0040af0f, 0x0040af4b,
0x00214d40, 0x00600007, 0x0020043e, 0x008800ff, 0x0070008f, 0x0040af8c,
0x005000cb, 0x00000000, 0x001124c6, 0x001524c9, 0x001924d0, 0x00122500,
0x00122503, 0x00162600, 0x00122607, 0x00112680, 0x00112700, 0x00112702,
0x00122780, 0x0011278b, 0x00112794, 0x0011279c, 0x0040d1e2, 0x002002bb,
0x00600006, 0x00200044, 0x00102880, 0x001128c6, 0x001528c9, 0x001928d0,
0x00122900, 0x00122903, 0x00162a00, 0x00122a07, 0x00112a80, 0x00112b00,
0x00112b02, 0x00122b80, 0x00112b8b, 0x00112b94, 0x00112b9c, 0x0040eee3,
0x00200322, 0x00600006, 0x00200044, 0x00102c80, 0x0040df0f, 0x0040df4b,
0x00214d40, 0x00600007, 0x0020043e, 0x008800ff, 0x0070008f, 0x0040df8c,
0x005000cb, 0x00000000, 0x00112cc6, 0x00152cc9, 0x00192cd0, 0x00122d00,
0x00122d03, 0x00162e00, 0x00122e07, 0x00112e80, 0x00112f00, 0x00112f02,
0x00122f80, 0x00112f8b, 0x00112f94, 0x00112f9c, 0x004101e4, 0x00200389,
0x00600006, 0x00200044, 0x00103080, 0x001130c6, 0x001530c9, 0x001930d0,
0x00123100, 0x00123103, 0x00163200, 0x00123207, 0x00113280, 0x00113300,
0x00113302, 0x00123380, 0x0011338b, 0x00113394, 0x0011339c, 0x00411ee5,
0x002003f0, 0x00600006, 0x00200044, 0x00103480, 0x00410f0f, 0x00410f4b,
0x00214d40, 0x00600007, 0x0020043e, 0x008800ff, 0x0070008f, 0x00410f8c,
0x005000cb, 0x00000000, 0x001134c6, 0x001534c9, 0x001934d0, 0x00123500,
0x00123503, 0x00163600, 0x00123607, 0x00113680, 0x00113700, 0x00113702,
0x00123780, 0x0011378b, 0x00113794, 0x0011379c, 0x00000000, 0x0041250f,
0x005000cb, 0x00214d40, 0x00600007, 0x0020043e, 0x008800ff, 0x005000cb,
0x00412887, 0x0060000a, 0x00000000, 0x00413700, 0x007000a0, 0x00700080,
0x00200480, 0x00600007, 0x00200004, 0x00c000ff, 0x008000ff, 0x005000cb,
0x00700000, 0x00200000, 0x00600006, 0x00111bfe, 0x0041594d, 0x00700000,
0x00200000, 0x00600006, 0x00111bfe, 0x00700080, 0x0070001d, 0x0040114d,
0x00700081, 0x00600004, 0x0050004a, 0x00414388, 0x0060000b, 0x00200000,
0x00600006, 0x00700000, 0x0041590b, 0x00111bfd, 0x0040424d, 0x00202916,
0x008000fd, 0x005000cb, 0x00c00002, 0x00200480, 0x00600007, 0x00200160,
0x00800002, 0x005000cb, 0x00c01802, 0x002027b6, 0x00800002, 0x005000cb,
0x00404e4d, 0x0060000b, 0x0041574d, 0x00700001, 0x005000cf, 0x00700003,
0x00415e06, 0x00415f05, 0x0060000d, 0x00700005, 0x0070000d, 0x00700006,
0x0070000b, 0x0070000e, 0x0070001c, 0x0060000c, ~0
};
static uint32_t nv86_ctx_voodoo[] = {
0x0070008e, 0x0070009c, 0x00200020, 0x00600008, 0x0050004c, 0x00400e89,
0x00200000, 0x00600007, 0x00300000, 0x00c000ff, 0x00200000, 0x008000ff,
0x00700009, 0x0040dd4d, 0x00402944, 0x00402905, 0x0040290d, 0x0040b906,
0x00600005, 0x004015c5, 0x00600011, 0x0040270b, 0x004021c5, 0x00700000,
0x00700081, 0x00600004, 0x0050004a, 0x00216d80, 0x00600007, 0x00c02801,
0x0020002e, 0x00800001, 0x005000cb, 0x0090ffff, 0x0091ffff, 0x00200020,
0x00600008, 0x0050004c, 0x00600009, 0x0040b945, 0x0040d44d, 0x0070009d,
0x00402dcf, 0x0070009f, 0x0050009f, 0x00402ac0, 0x00200200, 0x00600008,
0x00402a4f, 0x00402ac0, 0x004030cc, 0x00700081, 0x00200000, 0x00600006,
0x00700000, 0x00111bfc, 0x00700083, 0x00300000, 0x00216d80, 0x00600007,
0x00c00b01, 0x0020001e, 0x00800001, 0x005000cb, 0x00c000ff, 0x00700080,
0x00700083, 0x00200047, 0x00600006, 0x0011020a, 0x00200280, 0x00600007,
0x00300000, 0x00c000ff, 0x00c800ff, 0x0040c407, 0x00202916, 0x008000ff,
0x0040508c, 0x005000cb, 0x00a0023f, 0x00200040, 0x00600006, 0x0070000f,
0x00170202, 0x0011020a, 0x00200032, 0x0010020d, 0x001c0242, 0x00120302,
0x00140402, 0x00180500, 0x00130509, 0x00150550, 0x00110605, 0x0020000f,
0x00100607, 0x00110700, 0x00110900, 0x00120902, 0x00110a00, 0x00160b02,
0x00120b28, 0x00140b2b, 0x00110c01, 0x00111400, 0x00111405, 0x00111407,
0x00111409, 0x0011140b, 0x002000cb, 0x00101500, 0x0040790f, 0x0040794b,
0x00214b40, 0x00600007, 0x00200442, 0x008800ff, 0x0070008f, 0x0040798c,
0x005000cb, 0x00000000, 0x0020002b, 0x00101a05, 0x00131c00, 0x00121c04,
0x00141c20, 0x00111c25, 0x00131c40, 0x00121c44, 0x00141c60, 0x00111c65,
0x00131f00, 0x00191f40, 0x004099e0, 0x002001d9, 0x00600006, 0x00200044,
0x00102080, 0x001120c6, 0x001520c9, 0x001920d0, 0x00122100, 0x00122103,
0x00162200, 0x00122207, 0x00112280, 0x00112300, 0x00112302, 0x00122380,
0x0011238b, 0x00112394, 0x0011239c, 0x00000000, 0x0040a00f, 0x005000cb,
0x00214b40, 0x00600007, 0x00200442, 0x008800ff, 0x005000cb, 0x0040a387,
0x0060000a, 0x00000000, 0x0040b200, 0x007000a0, 0x00700080, 0x00200280,
0x00600007, 0x00200004, 0x00c000ff, 0x008000ff, 0x005000cb, 0x00700000,
0x00200000, 0x00600006, 0x00111bfe, 0x0040d44d, 0x00700000, 0x00200000,
0x00600006, 0x00111bfe, 0x00700080, 0x0070001d, 0x0040114d, 0x00700081,
0x00600004, 0x0050004a, 0x0040be88, 0x0060000b, 0x00200000, 0x00600006,
0x00700000, 0x0040d40b, 0x00111bfd, 0x0040424d, 0x00202916, 0x008000fd,
0x005000cb, 0x00c00002, 0x00200280, 0x00600007, 0x00200160, 0x00800002,
0x005000cb, 0x00c01802, 0x002027b6, 0x00800002, 0x005000cb, 0x00404e4d,
0x0060000b, 0x0040d24d, 0x00700001, 0x00700003, 0x0040d806, 0x0040d905,
0x0060000d, 0x00700005, 0x0070000d, 0x00700006, 0x0070000b, 0x0070000e,
0x0060000c, ~0
};
static uint32_t nv92_ctx_voodoo[] = {
0x0070008E, 0x0070009C, 0x00200020, 0x00600008, 0x0050004C, 0x00400E89,
0x00200000, 0x00600007, 0x00300000, 0x00C000FF, 0x00200000, 0x008000FF,
0x00700009, 0x0041924D, 0x00402944, 0x00402905, 0x0040290D, 0x00416E06,
0x00600005, 0x004015C5, 0x00600011, 0x0040270B, 0x004021C5, 0x00700000,
0x00700081, 0x00600004, 0x0050004A, 0x00219600, 0x00600007, 0x00C02701,
0x0020002E, 0x00800001, 0x005000CB, 0x0090FFFF, 0x0091FFFF, 0x00200020,
0x00600008, 0x0050004C, 0x00600009, 0x00416E45, 0x0041894D, 0x0070009D,
0x00402DCF, 0x0070009F, 0x0050009F, 0x00402AC0, 0x00200080, 0x00600008,
0x00402A4F, 0x00402AC0, 0x004030CC, 0x00700081, 0x00200000, 0x00600006,
0x00700000, 0x00111BFC, 0x00700083, 0x00300000, 0x00219600, 0x00600007,
0x00C00A01, 0x0020001E, 0x00800001, 0x005000CB, 0x00C000FF, 0x00700080,
0x00700083, 0x00200047, 0x00600006, 0x0011020A, 0x00200540, 0x00600007,
0x00300000, 0x00C000FF, 0x00C800FF, 0x00417907, 0x00202DD2, 0x008000FF,
0x0040508C, 0x005000CB, 0x00A0023F, 0x00200040, 0x00600006, 0x0070000F,
0x00170202, 0x0011020A, 0x00200032, 0x0010020D, 0x001C0242, 0x00120302,
0x00140402, 0x00180500, 0x00130509, 0x00150550, 0x00110605, 0x0020000F,
0x00100607, 0x00110700, 0x00110900, 0x00120902, 0x00110A00, 0x00160B02,
0x00120B28, 0x00140B2B, 0x00110C01, 0x00111400, 0x00111405, 0x00111407,
0x00111409, 0x0011140B, 0x002000CB, 0x00101500, 0x0040790F, 0x0040794B,
0x00217400, 0x00600007, 0x0020043E, 0x008800FF, 0x0070008F, 0x0040798C,
0x005000CB, 0x00000000, 0x00141A05, 0x00131A0C, 0x00131C00, 0x00121C04,
0x00141C20, 0x00111C25, 0x00131C40, 0x00121C44, 0x00141C60, 0x00111C65,
0x00131C80, 0x00121C84, 0x00141CA0, 0x00111CA5, 0x00131CC0, 0x00121CC4,
0x00141CE0, 0x00111CE5, 0x00131F00, 0x00191F40, 0x0040A1E0, 0x002001C9,
0x00600006, 0x00200044, 0x00102080, 0x001120C6, 0x001520C9, 0x001920D0,
0x00122100, 0x00122103, 0x00162200, 0x00122207, 0x00112280, 0x00112300,
0x00112302, 0x00122380, 0x0011238B, 0x00112394, 0x0011239C, 0x0040BEE1,
0x00200230, 0x00600006, 0x00200044, 0x00102480, 0x0040AF0F, 0x0040AF4B,
0x00217400, 0x00600007, 0x0020043E, 0x008800FF, 0x0070008F, 0x0040AF8C,
0x005000CB, 0x00000000, 0x001124C6, 0x001524C9, 0x001924D0, 0x00122500,
0x00122503, 0x00162600, 0x00122607, 0x00112680, 0x00112700, 0x00112702,
0x00122780, 0x0011278B, 0x00112794, 0x0011279C, 0x0040D1E2, 0x00200297,
0x00600006, 0x00200044, 0x00102880, 0x001128C6, 0x001528C9, 0x001928D0,
0x00122900, 0x00122903, 0x00162A00, 0x00122A07, 0x00112A80, 0x00112B00,
0x00112B02, 0x00122B80, 0x00112B8B, 0x00112B94, 0x00112B9C, 0x0040EEE3,
0x002002FE, 0x00600006, 0x00200044, 0x00102C80, 0x0040DF0F, 0x0040DF4B,
0x00217400, 0x00600007, 0x0020043E, 0x008800FF, 0x0070008F, 0x0040DF8C,
0x005000CB, 0x00000000, 0x00112CC6, 0x00152CC9, 0x00192CD0, 0x00122D00,
0x00122D03, 0x00162E00, 0x00122E07, 0x00112E80, 0x00112F00, 0x00112F02,
0x00122F80, 0x00112F8B, 0x00112F94, 0x00112F9C, 0x004101E4, 0x00200365,
0x00600006, 0x00200044, 0x00103080, 0x001130C6, 0x001530C9, 0x001930D0,
0x00123100, 0x00123103, 0x00163200, 0x00123207, 0x00113280, 0x00113300,
0x00113302, 0x00123380, 0x0011338B, 0x00113394, 0x0011339C, 0x00411EE5,
0x002003CC, 0x00600006, 0x00200044, 0x00103480, 0x00410F0F, 0x00410F4B,
0x00217400, 0x00600007, 0x0020043E, 0x008800FF, 0x0070008F, 0x00410F8C,
0x005000CB, 0x00000000, 0x001134C6, 0x001534C9, 0x001934D0, 0x00123500,
0x00123503, 0x00163600, 0x00123607, 0x00113680, 0x00113700, 0x00113702,
0x00123780, 0x0011378B, 0x00113794, 0x0011379C, 0x004131E6, 0x00200433,
0x00600006, 0x00200044, 0x00103880, 0x001138C6, 0x001538C9, 0x001938D0,
0x00123900, 0x00123903, 0x00163A00, 0x00123A07, 0x00113A80, 0x00113B00,
0x00113B02, 0x00123B80, 0x00113B8B, 0x00113B94, 0x00113B9C, 0x00414EE7,
0x0020049A, 0x00600006, 0x00200044, 0x00103C80, 0x00413F0F, 0x00413F4B,
0x00217400, 0x00600007, 0x0020043E, 0x008800FF, 0x0070008F, 0x00413F8C,
0x005000CB, 0x00000000, 0x00113CC6, 0x00153CC9, 0x00193CD0, 0x00123D00,
0x00123D03, 0x00163E00, 0x00123E07, 0x00113E80, 0x00113F00, 0x00113F02,
0x00123F80, 0x00113F8B, 0x00113F94, 0x00113F9C, 0x00000000, 0x0041550F,
0x005000CB, 0x00217400, 0x00600007, 0x0020043E, 0x008800FF, 0x005000CB,
0x00415887, 0x0060000A, 0x00000000, 0x00416700, 0x007000A0, 0x00700080,
0x00200540, 0x00600007, 0x00200004, 0x00C000FF, 0x008000FF, 0x005000CB,
0x00700000, 0x00200000, 0x00600006, 0x00111BFE, 0x0041894D, 0x00700000,
0x00200000, 0x00600006, 0x00111BFE, 0x00700080, 0x0070001D, 0x0040114D,
0x00700081, 0x00600004, 0x0050004A, 0x00417388, 0x0060000B, 0x00200000,
0x00600006, 0x00700000, 0x0041890B, 0x00111BFD, 0x0040424D, 0x00202DD2,
0x008000FD, 0x005000CB, 0x00C00002, 0x00200540, 0x00600007, 0x00200160,
0x00800002, 0x005000CB, 0x00C01802, 0x00202C72, 0x00800002, 0x005000CB,
0x00404E4D, 0x0060000B, 0x0041874D, 0x00700001, 0x00700003, 0x00418D06,
0x00418E05, 0x0060000D, 0x00700005, 0x0070000D, 0x00700006, 0x0070000B,
0x0070000E, 0x0070001C, 0x0060000C, ~0
};
static uint32_t nvaa_ctx_voodoo[] = {
0x0070009c, 0x00300000, 0x0044f109, 0x00402d09, 0x0040e551, 0x00400a44,
0x00400a05, 0x00400a0d, 0x0070008e, 0x0040124d, 0x0070009d, 0x0045004d,
0x00700097, 0x00450121, 0x004446a1, 0x0044764d, 0x0044824d, 0x0070001d,
0x00401806, 0x00600005, 0x00444445, 0x0044308b, 0x00401845, 0x0040234d,
0x00700081, 0x00401ccf, 0x0070009f, 0x0050009f, 0x0044dc4d, 0x00700017,
0x0040230b, 0x00447d4d, 0x00450221, 0x004456a1, 0x007000a0, 0x00700001,
0x00700003, 0x00402706, 0x00402805, 0x0060000d, 0x00700005, 0x0070000d,
0x00700006, 0x00700002, 0x0070000b, 0x0070000e, 0x0070001c, 0x0060000c,
0x00000000, 0x0090ffff, 0x0091ffff, 0x0044d44d, 0x00600009, 0x0048004d,
0x00700096, 0x00403acf, 0x0070009f, 0x0050009f, 0x0040e551, 0x004036c0,
0x00200080, 0x00600008, 0x0040364f, 0x004036c0, 0x00403ecc, 0x00403651,
0x00700016, 0x0048004d, 0x00600011, 0x0048004d, 0x0044364d, 0x0070008e,
0x00700081, 0x0044704d, 0x00447d4d, 0x00700083, 0x00300000, 0x00212740,
0x00600007, 0x00c00b01, 0x00200022, 0x00800001, 0x005000cb, 0x00c000ff,
0x00445e4d, 0x0048004d, 0x0044ce08, 0x0044734d, 0x00448b4d, 0x00445e4d,
0x0044e24d, 0x0044764d, 0x0044824d, 0x0048004d, 0x00700083, 0x0045034d,
0x00a0023f, 0x00200040, 0x00600006, 0x0044fc4d, 0x00448d4d, 0x002001d0,
0x0044b860, 0x00200280, 0x0038ffff, 0x0044cc4d, 0x00300000, 0x005000cb,
0x00451c4d, 0x005000cb, 0x0044d007, 0x0048004d, 0x0044794d, 0x00111bfc,
0x0048004d, 0x0044794d, 0x00111bfd, 0x0048004d, 0x0044794d, 0x00111bfe,
0x0048004d, 0x00200000, 0x00700000, 0x00600006, 0x0048004d, 0x00200001,
0x00600006, 0x0044fc4d, 0x0011020a, 0x0048004d, 0x00300000, 0x00c3ffff,
0x00200000, 0x00600007, 0x00700000, 0x00200008, 0x008000ff, 0x005000cb,
0x0048004d, 0x00000000, 0x0048004d, 0x00000000, 0x00170202, 0x00200032,
0x0010020d, 0x001e0242, 0x001102c0, 0x00120302, 0x00150402, 0x00180500,
0x00130509, 0x00150550, 0x00110605, 0x00200013, 0x00100607, 0x00110700,
0x00110900, 0x00120902, 0x00110a00, 0x00160b02, 0x00120b28, 0x00140b2b,
0x00110c01, 0x00110d01, 0x00111400, 0x00111405, 0x00111407, 0x00111409,
0x0011140b, 0x002000d4, 0x00101500, 0x00141a05, 0x00131a0c, 0x00131c00,
0x00131c04, 0x00141c20, 0x00131c25, 0x00131f00, 0x00131f04, 0x00111f08,
0x00111f0b, 0x00200015, 0x00101f40, 0x0048004d, 0x00600006, 0x00451c4d,
0x00112020, 0x00112022, 0x00200085, 0x00102040, 0x001120c8, 0x001420ca,
0x001b20cf, 0x00122100, 0x00122103, 0x00162140, 0x00122147, 0x00122153,
0x001121a0, 0x001221c0, 0x001121cb, 0x001121d4, 0x001521d8, 0x0048004d,
0x00000000, 0x0048004d, 0x0060000b, 0x0048004d, 0x0060000a, 0x0048004d,
0x0060000b, 0x0040d24d, 0x00200020, 0x00600008, 0x0050004c, 0x0048004d,
0x002003e8, 0x00600008, 0x0050004c, 0x0048004d, 0x00600004, 0x0050004a,
0x0048004d, 0x00c000ff, 0x00c800ff, 0x0048004d, 0x00c000ff, 0x00c800ff,
0x0048004d, 0x00700016, 0x0070008e, 0x00700082, 0x00500041, 0x0044d84d,
0x00700095, 0x005000d1, 0x00600016, 0x00500052, 0x00700002, 0x00700015,
0x0040284d, 0x0070008e, 0x0044d44d, 0x00200000, 0x00600007, 0x00300000,
0x00c000ff, 0x00200000, 0x008000ff, 0x00700009, 0x0070000e, 0x0048004d,
0x00700080, 0x00480017, 0x00700000, 0x0048004d, 0x0048004d, 0x0048004d,
0x0048004d, 0x0070008e, 0x0044d44d, 0x00700083, 0x0044df4d, 0x00450c4d,
0x0070000f, 0x00410b8c, 0x005000cb, 0x0048004d, 0x00200280, 0x00600007,
0x00452307, 0x00451187, 0x0048004d, 0x00000000, 0x00202070, 0x0044fc4d,
0x008000ff, 0x0048004d, 0x00210600, 0x00600007, 0x00200428, 0x0044fc4d,
0x008800ff, 0x0048004d, 0x0048000f, 0x0048004b, 0x0045164d, 0x0070008f,
0x0048008c, 0x005000cb, 0x0048004d, 0x00202070, 0x0044fc4d, 0x008000fd,
0x005000cb, 0x00c00002, 0x00200280, 0x00600007, 0x00200161, 0x0044fc4d,
0x00800002, 0x005000cb, 0x00c00002, 0x00201f0e, 0x0044fc4d, 0x00800002,
0x005000cb, 0x0048004d, ~0
};
static int
nv50_graph_init_ctxctl(struct drm_device *dev)
{
struct drm_nouveau_private *dev_priv = dev->dev_private;
uint32_t *voodoo = NULL;
DRM_DEBUG("\n");
switch (dev_priv->chipset) {
case 0x50:
voodoo = nv50_ctx_voodoo;
break;
case 0x84:
voodoo = nv84_ctx_voodoo;
break;
case 0x86:
voodoo = nv86_ctx_voodoo;
break;
case 0x92:
voodoo = nv92_ctx_voodoo;
break;
case 0xaa:
voodoo = nvaa_ctx_voodoo;
break;
default:
DRM_ERROR("no voodoo for chipset NV%02x\n", dev_priv->chipset);
return -EINVAL;
}
NV_WRITE(NV40_PGRAPH_CTXCTL_UCODE_INDEX, 0);
while (*voodoo != ~0) {
NV_WRITE(NV40_PGRAPH_CTXCTL_UCODE_DATA, *voodoo);
voodoo++;
}
NV_WRITE(0x400320, 4);
NV_WRITE(NV40_PGRAPH_CTXCTL_CUR, 0);
NV_WRITE(NV20_PGRAPH_CHANNEL_CTX_POINTER, 0);
return 0;
}
int
nv50_graph_init(struct drm_device *dev)
{
int ret;
DRM_DEBUG("\n");
nv50_graph_init_reset(dev);
nv50_graph_init_intr(dev);
nv50_graph_init_regs__nv(dev);
nv50_graph_init_regs(dev);
ret = nv50_graph_init_ctxctl(dev);
if (ret)
return ret;
return 0;
}
void
nv50_graph_takedown(struct drm_device *dev)
{
DRM_DEBUG("\n");
}
static void
nv50_graph_init_ctxvals(struct drm_device *dev, struct nouveau_gpuobj_ref *ref)
{
struct drm_nouveau_private *dev_priv = dev->dev_private;
struct nouveau_gpuobj *ctx = ref->gpuobj;
INSTANCE_WR(ctx, 0x0010c/4, 0x00000030);
INSTANCE_WR(ctx, 0x00120/4, 0xff400040);
INSTANCE_WR(ctx, 0x00124/4, 0xfff00080);
INSTANCE_WR(ctx, 0x00128/4, 0xfff70090);
INSTANCE_WR(ctx, 0x0012c/4, 0xffe806a8);
INSTANCE_WR(ctx, 0x001d4/4, 0x00000003);
INSTANCE_WR(ctx, 0x001d8/4, 0x00001000);
INSTANCE_WR(ctx, 0x00214/4, 0x0000fe0c);
INSTANCE_WR(ctx, 0x00228/4, 0x00001000);
INSTANCE_WR(ctx, 0x00254/4, 0x0001fd87);
INSTANCE_WR(ctx, 0x00268/4, 0x00001018);
INSTANCE_WR(ctx, 0x0026c/4, 0x000000ff);
INSTANCE_WR(ctx, 0x002a4/4, 0x00000004);
INSTANCE_WR(ctx, 0x002a8/4, 0x0001005f);
INSTANCE_WR(ctx, 0x002b0/4, 0x00000600);
INSTANCE_WR(ctx, 0x002b4/4, 0x00000006);
INSTANCE_WR(ctx, 0x002c8/4, 0x000000ff);
INSTANCE_WR(ctx, 0x002d0/4, 0x00000400);
INSTANCE_WR(ctx, 0x002e4/4, 0x00000001);
INSTANCE_WR(ctx, 0x002e8/4, 0x00300080);
INSTANCE_WR(ctx, 0x002ec/4, 0x00000004);
INSTANCE_WR(ctx, 0x00308/4, 0x00000002);
INSTANCE_WR(ctx, 0x0030c/4, 0x00000001);
INSTANCE_WR(ctx, 0x00318/4, 0x00000001);
INSTANCE_WR(ctx, 0x0031c/4, 0x00000100);
INSTANCE_WR(ctx, 0x00334/4, 0x00000002);
INSTANCE_WR(ctx, 0x00338/4, 0x00000001);
INSTANCE_WR(ctx, 0x0033c/4, 0x00000001);
INSTANCE_WR(ctx, 0x0034c/4, 0x00000001);
INSTANCE_WR(ctx, 0x00350/4, 0x003fffff);
INSTANCE_WR(ctx, 0x00354/4, 0x00001fff);
INSTANCE_WR(ctx, 0x0035c/4, 0x00000001);
INSTANCE_WR(ctx, 0x00360/4, 0x00000001);
INSTANCE_WR(ctx, 0x00368/4, 0x00000001);
INSTANCE_WR(ctx, 0x00368/4, 0x00000001);
INSTANCE_WR(ctx, 0x00368/4, 0x00000001);
INSTANCE_WR(ctx, 0x00368/4, 0x00000004);
INSTANCE_WR(ctx, 0x00368/4, 0x00000001);
INSTANCE_WR(ctx, 0x00368/4, 0x00000001);
INSTANCE_WR(ctx, 0x00368/4, 0x00000001);
INSTANCE_WR(ctx, 0x00368/4, 0x00000007);
INSTANCE_WR(ctx, 0x00388/4, 0x00000001);
INSTANCE_WR(ctx, 0x00388/4, 0x00000007);
INSTANCE_WR(ctx, 0x00388/4, 0x00000001);
INSTANCE_WR(ctx, 0x00388/4, 0x00000001);
INSTANCE_WR(ctx, 0x00388/4, 0x00000001);
INSTANCE_WR(ctx, 0x003ac/4, 0x00000001);
INSTANCE_WR(ctx, 0x003b0/4, 0x00000001);
INSTANCE_WR(ctx, 0x003b8/4, 0x00000001);
INSTANCE_WR(ctx, 0x003bc/4, 0x0000000a);
INSTANCE_WR(ctx, 0x003cc/4, 0x00000040);
INSTANCE_WR(ctx, 0x003d4/4, 0x00000002);
INSTANCE_WR(ctx, 0x003d4/4, 0x00000100);
INSTANCE_WR(ctx, 0x003d4/4, 0x00000001);
INSTANCE_WR(ctx, 0x003d4/4, 0x00000100);
INSTANCE_WR(ctx, 0x003fc/4, 0x00000001);
INSTANCE_WR(ctx, 0x00420/4, 0x00000004);
INSTANCE_WR(ctx, 0x00438/4, 0x00000001);
INSTANCE_WR(ctx, 0x0043c/4, 0x00000100);
INSTANCE_WR(ctx, 0x00444/4, 0x00000001);
INSTANCE_WR(ctx, 0x00450/4, 0x00000100);
INSTANCE_WR(ctx, 0x00454/4, 0x00000001);
INSTANCE_WR(ctx, 0x00458/4, 0x00000100);
INSTANCE_WR(ctx, 0x00460/4, 0x00000001);
INSTANCE_WR(ctx, 0x0046c/4, 0x00000100);
INSTANCE_WR(ctx, 0x00470/4, 0x00000001);
INSTANCE_WR(ctx, 0x00478/4, 0x00000001);
INSTANCE_WR(ctx, 0x00484/4, 0x00000002);
INSTANCE_WR(ctx, 0x0048c/4, 0x00000001);
INSTANCE_WR(ctx, 0x00494/4, 0x00000001);
INSTANCE_WR(ctx, 0x004a8/4, 0x00000003);
INSTANCE_WR(ctx, 0x004c4/4, 0x00000004);
INSTANCE_WR(ctx, 0x004c8/4, 0x00000070);
INSTANCE_WR(ctx, 0x004cc/4, 0x00000080);
INSTANCE_WR(ctx, 0x004e0/4, 0x0000000c);
INSTANCE_WR(ctx, 0x004e0/4, 0x00000008);
INSTANCE_WR(ctx, 0x004e0/4, 0x00000014);
INSTANCE_WR(ctx, 0x004e0/4, 0x00000026);
INSTANCE_WR(ctx, 0x004f8/4, 0x00000001);
INSTANCE_WR(ctx, 0x004f8/4, 0x00000002);
INSTANCE_WR(ctx, 0x004f8/4, 0x00000003);
INSTANCE_WR(ctx, 0x004f8/4, 0x00000004);
INSTANCE_WR(ctx, 0x004f8/4, 0x00000005);
INSTANCE_WR(ctx, 0x004f8/4, 0x00000006);
INSTANCE_WR(ctx, 0x004f8/4, 0x00000007);
INSTANCE_WR(ctx, 0x004f8/4, 0x00000001);
INSTANCE_WR(ctx, 0x00558/4, 0x000000cf);
INSTANCE_WR(ctx, 0x00584/4, 0x00000080);
INSTANCE_WR(ctx, 0x00584/4, 0x00000004);
INSTANCE_WR(ctx, 0x00584/4, 0x00000004);
INSTANCE_WR(ctx, 0x00584/4, 0x00000001);
INSTANCE_WR(ctx, 0x00598/4, 0x00000012);
INSTANCE_WR(ctx, 0x00598/4, 0x00000010);
INSTANCE_WR(ctx, 0x00598/4, 0x0000000c);
INSTANCE_WR(ctx, 0x00598/4, 0x00000001);
INSTANCE_WR(ctx, 0x005b4/4, 0x00000004);
INSTANCE_WR(ctx, 0x005b8/4, 0x00000002);
INSTANCE_WR(ctx, 0x005bc/4, 0x00000004);
INSTANCE_WR(ctx, 0x005c8/4, 0x003fffff);
INSTANCE_WR(ctx, 0x005cc/4, 0x00001fff);
INSTANCE_WR(ctx, 0x005d4/4, 0x00000004);
INSTANCE_WR(ctx, 0x005d8/4, 0x00000014);
INSTANCE_WR(ctx, 0x005dc/4, 0x00000001);
INSTANCE_WR(ctx, 0x005e8/4, 0x00000002);
INSTANCE_WR(ctx, 0x005f4/4, 0x00000001);
INSTANCE_WR(ctx, 0x005fc/4, 0x00000002);
INSTANCE_WR(ctx, 0x00600/4, 0x00001000);
INSTANCE_WR(ctx, 0x00608/4, 0x00000001);
INSTANCE_WR(ctx, 0x00608/4, 0x00000001);
INSTANCE_WR(ctx, 0x00608/4, 0x00000001);
INSTANCE_WR(ctx, 0x00608/4, 0x00000001);
INSTANCE_WR(ctx, 0x00608/4, 0x00000001);
INSTANCE_WR(ctx, 0x00628/4, 0x00000200);
INSTANCE_WR(ctx, 0x00630/4, 0x00000001);
INSTANCE_WR(ctx, 0x00634/4, 0x00000070);
INSTANCE_WR(ctx, 0x00638/4, 0x00000080);
INSTANCE_WR(ctx, 0x00644/4, 0x00000001);
INSTANCE_WR(ctx, 0x00648/4, 0x00000070);
INSTANCE_WR(ctx, 0x0064c/4, 0x00000080);
INSTANCE_WR(ctx, 0x0065c/4, 0x00000001);
INSTANCE_WR(ctx, 0x00660/4, 0x000000cf);
INSTANCE_WR(ctx, 0x00668/4, 0x00000001);
INSTANCE_WR(ctx, 0x00678/4, 0x000000cf);
INSTANCE_WR(ctx, 0x00680/4, 0x00000002);
INSTANCE_WR(ctx, 0x00688/4, 0x00000001);
INSTANCE_WR(ctx, 0x00690/4, 0x00000001);
INSTANCE_WR(ctx, 0x00698/4, 0x000000cf);
INSTANCE_WR(ctx, 0x0069c/4, 0x000000cf);
INSTANCE_WR(ctx, 0x006a0/4, 0x00000001);
INSTANCE_WR(ctx, 0x006ac/4, 0x00000f80);
INSTANCE_WR(ctx, 0x006f4/4, 0x007f0080);
INSTANCE_WR(ctx, 0x00730/4, 0x007f0080);
INSTANCE_WR(ctx, 0x00754/4, 0x1b74f820);
INSTANCE_WR(ctx, 0x00758/4, 0x89058001);
INSTANCE_WR(ctx, 0x00760/4, 0x00001000);
INSTANCE_WR(ctx, 0x00760/4, 0x027c10fa);
INSTANCE_WR(ctx, 0x00760/4, 0x000000c0);
INSTANCE_WR(ctx, 0x00760/4, 0xb7892080);
INSTANCE_WR(ctx, 0x00778/4, 0x1b74f820);
INSTANCE_WR(ctx, 0x0077c/4, 0x89058001);
INSTANCE_WR(ctx, 0x00784/4, 0x00001000);
INSTANCE_WR(ctx, 0x00784/4, 0x027c10fa);
INSTANCE_WR(ctx, 0x00784/4, 0x000000c0);
INSTANCE_WR(ctx, 0x00784/4, 0xb7892080);
INSTANCE_WR(ctx, 0x0079c/4, 0x1b74f820);
INSTANCE_WR(ctx, 0x007a0/4, 0x89058001);
INSTANCE_WR(ctx, 0x007a8/4, 0x00001000);
INSTANCE_WR(ctx, 0x007a8/4, 0x027c10fa);
INSTANCE_WR(ctx, 0x007a8/4, 0x000000c0);
INSTANCE_WR(ctx, 0x007a8/4, 0xb7892080);
INSTANCE_WR(ctx, 0x007c0/4, 0x1b74f820);
INSTANCE_WR(ctx, 0x007c4/4, 0x89058001);
INSTANCE_WR(ctx, 0x007cc/4, 0x00001000);
INSTANCE_WR(ctx, 0x007cc/4, 0x027c10fa);
INSTANCE_WR(ctx, 0x007cc/4, 0x000000c0);
INSTANCE_WR(ctx, 0x007cc/4, 0xb7892080);
INSTANCE_WR(ctx, 0x007e4/4, 0x1b74f820);
INSTANCE_WR(ctx, 0x007e8/4, 0x89058001);
INSTANCE_WR(ctx, 0x007f0/4, 0x00001000);
INSTANCE_WR(ctx, 0x007f0/4, 0x027c10fa);
INSTANCE_WR(ctx, 0x007f0/4, 0x000000c0);
INSTANCE_WR(ctx, 0x007f0/4, 0xb7892080);
INSTANCE_WR(ctx, 0x00808/4, 0x1b74f820);
INSTANCE_WR(ctx, 0x0080c/4, 0x89058001);
INSTANCE_WR(ctx, 0x00814/4, 0x00001000);
INSTANCE_WR(ctx, 0x00814/4, 0x027c10fa);
INSTANCE_WR(ctx, 0x00814/4, 0x000000c0);
INSTANCE_WR(ctx, 0x00814/4, 0xb7892080);
INSTANCE_WR(ctx, 0x0082c/4, 0x00010040);
INSTANCE_WR(ctx, 0x00834/4, 0x00000022);
INSTANCE_WR(ctx, 0x00840/4, 0x00010040);
INSTANCE_WR(ctx, 0x00844/4, 0x00000022);
INSTANCE_WR(ctx, 0x0085c/4, 0x01800000);
INSTANCE_WR(ctx, 0x00860/4, 0x00160000);
INSTANCE_WR(ctx, 0x00864/4, 0x01800000);
INSTANCE_WR(ctx, 0x00874/4, 0x0003ffff);
INSTANCE_WR(ctx, 0x00878/4, 0x000c0000);
INSTANCE_WR(ctx, 0x0089c/4, 0x00010401);
INSTANCE_WR(ctx, 0x008a4/4, 0x00000040);
INSTANCE_WR(ctx, 0x008ac/4, 0x000000bf);
INSTANCE_WR(ctx, 0x008b4/4, 0x00001210);
INSTANCE_WR(ctx, 0x008b8/4, 0x00000080);
INSTANCE_WR(ctx, 0x008dc/4, 0x01800000);
INSTANCE_WR(ctx, 0x008e0/4, 0x00160000);
INSTANCE_WR(ctx, 0x008e4/4, 0x01800000);
INSTANCE_WR(ctx, 0x008f4/4, 0x0003ffff);
INSTANCE_WR(ctx, 0x008f8/4, 0x000c0000);
INSTANCE_WR(ctx, 0x0091c/4, 0x00010401);
INSTANCE_WR(ctx, 0x00924/4, 0x00000040);
INSTANCE_WR(ctx, 0x0092c/4, 0x000000bf);
INSTANCE_WR(ctx, 0x00934/4, 0x00001210);
INSTANCE_WR(ctx, 0x00938/4, 0x00000080);
INSTANCE_WR(ctx, 0x00960/4, 0x00007070);
INSTANCE_WR(ctx, 0x0096c/4, 0x0003ffff);
INSTANCE_WR(ctx, 0x00984/4, 0x00120407);
INSTANCE_WR(ctx, 0x00984/4, 0x05091507);
INSTANCE_WR(ctx, 0x00984/4, 0x05010202);
INSTANCE_WR(ctx, 0x00984/4, 0x00030201);
INSTANCE_WR(ctx, 0x009ac/4, 0x00000040);
INSTANCE_WR(ctx, 0x009ac/4, 0x0d0c0b0a);
INSTANCE_WR(ctx, 0x009ac/4, 0x00141210);
INSTANCE_WR(ctx, 0x009ac/4, 0x000001f0);
INSTANCE_WR(ctx, 0x009ac/4, 0x00000001);
INSTANCE_WR(ctx, 0x009ac/4, 0x00000003);
INSTANCE_WR(ctx, 0x009ac/4, 0x00008000);
INSTANCE_WR(ctx, 0x009cc/4, 0x00039e00);
INSTANCE_WR(ctx, 0x009cc/4, 0x00000040);
INSTANCE_WR(ctx, 0x009cc/4, 0x00003800);
INSTANCE_WR(ctx, 0x009cc/4, 0x00404040);
INSTANCE_WR(ctx, 0x009cc/4, 0x0000ff0a);
INSTANCE_WR(ctx, 0x009e4/4, 0x0077f005);
INSTANCE_WR(ctx, 0x009e8/4, 0x00007fff);
INSTANCE_WR(ctx, 0x009f4/4, 0x000003ff);
INSTANCE_WR(ctx, 0x009f4/4, 0x00000003);
INSTANCE_WR(ctx, 0x009f4/4, 0x00000003);
INSTANCE_WR(ctx, 0x009f4/4, 0x000001ff);
INSTANCE_WR(ctx, 0x009f4/4, 0x0000001f);
INSTANCE_WR(ctx, 0x009f4/4, 0x0000000f);
INSTANCE_WR(ctx, 0x009f4/4, 0x0000000f);
INSTANCE_WR(ctx, 0x00a14/4, 0x01800000);
INSTANCE_WR(ctx, 0x00a18/4, 0x00160000);
INSTANCE_WR(ctx, 0x00a1c/4, 0x01800000);
INSTANCE_WR(ctx, 0x00a2c/4, 0x0003ffff);
INSTANCE_WR(ctx, 0x00a30/4, 0x000c0000);
INSTANCE_WR(ctx, 0x00a54/4, 0x00010401);
INSTANCE_WR(ctx, 0x00a5c/4, 0x00000040);
INSTANCE_WR(ctx, 0x00a64/4, 0x000000bf);
INSTANCE_WR(ctx, 0x00a6c/4, 0x00001210);
INSTANCE_WR(ctx, 0x00a70/4, 0x00000080);
INSTANCE_WR(ctx, 0x00a94/4, 0x01800000);
INSTANCE_WR(ctx, 0x00a98/4, 0x00160000);
INSTANCE_WR(ctx, 0x00a9c/4, 0x01800000);
|