/* * Copyright (c) 2014-2016, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. */ #include "gk20a/gk20a.h" #include #include "pmuif/gpmuifseq.h" #include "gm206/bios_gm206.h" #include "gk20a/pmu_gk20a.h" #include "gk20a/hw_pwr_gk20a.h" #define VREG_COUNT 24 struct memory_link_training_pattern { u32 regaddr; u32 writeval; }; static struct memory_link_training_pattern memory_shadow_reglist[] = { {0x9a065c, 0x20}, {0x98467c, 0xffff0000}, {0x984708, 0x30550}, {0x98470c, 0x4C4C}, {0x9006a0, 0x03030303}, {0x9006a4, 0x03030303}, {0x9046a0, 0x03030303}, {0x9046a4, 0x03030303}, {0x9086a0, 0x03030303}, {0x9086a4, 0x03030303}, {0x9846a8, 0x03030303}, {0x9846ac, 0x03030303}, {0x9a065c, 0x00}, }; static struct memory_link_training_pattern memory_pattern_reglist[] = { {0x9a0968, 0x0}, {0x9a0920, 0x0}, {0x9a0918, 0x0}, {0x9a0920, 0x100}, {0x9a0918, 0x0}, {0x9a096c, 0x0}, {0x9a0924, 0x0}, {0x9a091c, 0x0}, {0x9a0924, 0x100}, {0x9a091c, 0x0}, {0x9a0968, 0x100}, {0x9a0920, 0xff}, {0x9a0918, 0xffffffff}, {0x9a0920, 0x1ff}, {0x9a0918, 0xffffffff}, {0x9a096c, 0x100}, {0x9a0924, 0xff}, {0x9a091c, 0xffffffff}, {0x9a0924, 0x1ff}, {0x9a091c, 0xffffffff}, {0x9a0968, 0x200}, {0x9a0920, 0xff}, {0x9a0918, 0x55555555}, {0x9a0920, 0x1ff}, {0x9a0918, 0x55555555}, {0x9a096c, 0x200}, {0x9a0924, 0xff}, {0x9a091c, 0x55555555}, {0x9a0924, 0x1ff}, {0x9a091c, 0x55555555}, {0x9a0968, 0x300}, {0x9a0920, 0x0}, {0x9a0918, 0xaaaaaaaa}, {0x9a0920, 0x100}, {0x9a0918, 0xaaaaaaaa}, {0x9a096c, 0x300}, {0x9a0924, 0x0}, {0x9a091c, 0xaaaaaaaa}, {0x9a0924, 0x100}, {0x9a091c, 0xaaaaaaaa}, {0x9a0968, 0x400}, {0x9a0920, 0xff}, {0x9a0918, 0x33333333}, {0x9a0920, 0x1ff}, {0x9a0918, 0x33333333}, {0x9a096c, 0x400}, {0x9a0924, 0xff}, {0x9a091c, 0x33333333}, {0x9a0924, 0x1ff}, {0x9a091c, 0x33333333}, {0x9a0968, 0x500}, {0x9a0920, 0x0}, {0x9a0918, 0xcccccccc}, {0x9a0920, 0x100}, {0x9a0918, 0xcccccccc}, {0x9a096c, 0x500}, {0x9a0924, 0x0}, {0x9a091c, 0xcccccccc}, {0x9a0924, 0x100}, {0x9a091c, 0xcccccccc}, {0x9a0968, 0x600}, {0x9a0920, 0x0}, {0x9a0918, 0xf0f0f0f0}, {0x9a0920, 0x100}, {0x9a0918, 0xf0f0f0f0}, {0x9a096c, 0x600}, {0x9a0924, 0x0}, {0x9a091c, 0xf0f0f0f0}, {0x9a0924, 0x100}, {0x9a091c, 0xf0f0f0f0}, {0x9a0968, 0x700}, {0x9a0920, 0xff}, {0x9a0918, 0xf0f0f0f}, {0x9a0920, 0x1ff}, {0x9a0918, 0xf0f0f0f}, {0x9a096c, 0x700}, {0x9a0924, 0xff}, {0x9a091c, 0xf0f0f0f}, {0x9a0924, 0x1ff}, {0x9a091c, 0xf0f0f0f}, {0x9a0968, 0x800}, {0x9a0920, 0xff}, {0x9a0918, 0xff00ff}, {0x9a0920, 0x1ff}, {0x9a0918, 0xff00ff}, {0x9a096c, 0x800}, {0x9a0924, 0xff}, {0x9a091c, 0xff00ff}, {0x9a0924, 0x1ff}, {0x9a091c, 0xff00ff}, {0x9a0968, 0x900}, {0x9a0920, 0x0}, {0x9a0918, 0xff00ff00}, {0x9a0920, 0x100}, {0x9a0918, 0xff00ff00}, {0x9a096c, 0x900}, {0x9a0924, 0x0}, {0x9a091c, 0xff00ff00}, {0x9a0924, 0x100}, {0x9a091c, 0xff00ff00}, {0x9a0968, 0xa00}, {0x9a0920, 0xff}, {0x9a0918, 0xffff}, {0x9a0920, 0x1ff}, {0x9a0918, 0xffff}, {0x9a096c, 0xa00}, {0x9a0924, 0xff}, {0x9a091c, 0xffff}, {0x9a0924, 0x1ff}, {0x9a091c, 0xffff}, {0x9a0968, 0xb00}, {0x9a0920, 0x0}, {0x9a0918, 0xffff0000}, {0x9a0920, 0x100}, {0x9a0918, 0xffff0000}, {0x9a096c, 0xb00}, {0x9a0924, 0x0}, {0x9a091c, 0xffff0000}, {0x9a0924, 0x100}, {0x9a091c, 0xffff0000}, {0x9a0968, 0xc00}, {0x9a0920, 0x0}, {0x9a0918, 0x0}, {0x9a0920, 0x100}, {0x9a0918, 0x0}, {0x9a096c, 0xc00}, {0x9a0924, 0x0}, {0x9a091c, 0x0}, {0x9a0924, 0x100}, {0x9a091c, 0x0}, {0x9a0968, 0xd00}, {0x9a0920, 0xff}, {0x9a0918, 0xffffffff}, {0x9a0920, 0x1ff}, {0x9a0918, 0xffffffff}, {0x9a096c, 0xd00}, {0x9a0924, 0xff}, {0x9a091c, 0xffffffff}, {0x9a0924, 0x1ff}, {0x9a091c, 0xffffffff}, {0x9a0968, 0xe00}, {0x9a0920, 0xff}, {0x9a0918, 0x55555555}, {0x9a0920, 0x1ff}, {0x9a0918, 0x55555555}, {0x9a096c, 0xe00}, {0x9a0924, 0xff}, {0x9a091c, 0x55555555}, {0x9a0924, 0x1ff}, {0x9a091c, 0x55555555}, {0x9a0968, 0xf00}, {0x9a0920, 0x0}, {0x9a0918, 0xaaaaaaaa}, {0x9a0920, 0x100}, {0x9a0918, 0xaaaaaaaa}, {0x9a096c, 0xf00}, {0x9a0924, 0x0}, {0x9a091c, 0xaaaaaaaa}, {0x9a0924, 0x100}, {0x9a091c, 0xaaaaaaaa}, {0x9a0968, 0x1000}, {0x9a0920, 0xff}, {0x9a0918, 0x33333333}, {0x9a0920, 0x1ff}, {0x9a0918, 0x33333333}, {0x9a096c, 0x1000}, {0x9a0924, 0xff}, {0x9a091c, 0x33333333}, {0x9a0924, 0x1ff}, {0x9a091c, 0x33333333}, {0x9a0968, 0x1100}, {0x9a0920, 0x0}, {0x9a0918, 0xcccccccc}, {0x9a0920, 0x100}, {0x9a0918, 0xcccccccc}, {0x9a096c, 0x1100}, {0x9a0924, 0x0}, {0x9a091c, 0xcccccccc}, {0x9a0924, 0x100}, {0x9a091c, 0xcccccccc}, {0x9a0968, 0x1200}, {0x9a0920, 0x0}, {0x9a0918, 0xf0f0f0f0}, {0x9a0920, 0x100}, {0x9a0918, 0xf0f0f0f0}, {0x9a096c, 0x1200}, {0x9a0924, 0x0}, {0x9a091c, 0xf0f0f0f0}, {0x9a0924, 0x100}, {0x9a091c, 0xf0f0f0f0}, {0x9a0968, 0x1300}, {0x9a0920, 0xff}, {0x9a0918, 0xf0f0f0f}, {0x9a0920, 0x1ff}, {0x9a0918, 0xf0f0f0f}, {0x9a096c, 0x1300}, {0x9a0924, 0xff}, {0x9a091c, 0xf0f0f0f}, {0x9a0924, 0x1ff}, {0x9a091c, 0xf0f0f0f}, {0x9a0968, 0x1400}, {0x9a0920, 0xff}, {0x9a0918, 0xff00ff}, {0x9a0920, 0x1ff}, {0x9a0918, 0xff00ff}, {0x9a096c, 0x1400}, {0x9a0924, 0xff}, {0x9a091c, 0xff00ff}, {0x9a0924, 0x1ff}, {0x9a091c, 0xff00ff}, {0x9a0968, 0x1500}, {0x9a0920, 0x0}, {0x9a0918, 0xff00ff00}, {0x9a0920, 0x100}, {0x9a0918, 0xff00ff00}, {0x9a096c, 0x1500}, {0x9a0924, 0x0}, {0x9a091c, 0xff00ff00}, {0x9a0924, 0x100}, {0x9a091c, 0xff00ff00}, {0x9a0968, 0x1600}, {0x9a0920, 0xff}, {0x9a0918, 0xffff}, {0x9a0920, 0x1ff}, {0x9a0918, 0xffff}, {0x9a096c, 0x1600}, {0x9a0924, 0xff}, {0x9a091c, 0xffff}, {0x9a0924, 0x1ff}, {0x9a091c, 0xffff}, {0x9a0968, 0x1700}, {0x9a0920, 0x0}, {0x9a0918, 0xffff0000}, {0x9a0920, 0x100}, {0x9a0918, 0xffff0000}, {0x9a096c, 0x1700}, {0x9a0924, 0x0}, {0x9a091c, 0xffff0000}, {0x9a0924, 0x100}, {0x9a091c, 0xffff0000}, {0x9a0968, 0x1800}, {0x9a0920, 0x0}, {0x9a0918, 0x0}, {0x9a0920, 0x100}, {0x9a0918, 0x0}, {0x9a096c, 0x1800}, {0x9a0924, 0x0}, {0x9a091c, 0x0}, {0x9a0924, 0x100}, {0x9a091c, 0x0}, {0x9a0968, 0x1900}, {0x9a0920, 0xff}, {0x9a0918, 0xffffffff}, {0x9a0920, 0x1ff}, {0x9a0918, 0xffffffff}, {0x9a096c, 0x1900}, {0x9a0924, 0xff}, {0x9a091c, 0xffffffff}, {0x9a0924, 0x1ff}, {0x9a091c, 0xffffffff}, {0x9a0968, 0x1a00}, {0x9a0920, 0xff}, {0x9a0918, 0x55555555}, {0x9a0920, 0x1ff}, {0x9a0918, 0x55555555}, {0x9a096c, 0x1a00}, {0x9a0924, 0xff}, {0x9a091c, 0x55555555}, {0x9a0924, 0x1ff}, {0x9a091c, 0x55555555}, {0x9a0968, 0x1b00}, {0x9a0920, 0x0}, {0x9a0918, 0xaaaaaaaa}, {0x9a0920, 0x100}, {0x9a0918, 0xaaaaaaaa}, {0x9a096c, 0x1b00}, {0x9a0924, 0x0}, {0x9a091c, 0xaaaaaaaa}, {0x9a0924, 0x100}, {0x9a091c, 0xaaaaaaaa}, {0x9a0968, 0x1c00}, {0x9a0920, 0xff}, {0x9a0918, 0x33333333}, {0x9a0920, 0x1ff}, {0x9a0918, 0x33333333}, {0x9a096c, 0x1c00}, {0x9a0924, 0xff}, {0x9a091c, 0x33333333}, {0x9a0924, 0x1ff}, {0x9a091c, 0x33333333}, {0x9a0968, 0x1d00}, {0x9a0920, 0x0}, {0x9a0918, 0xcccccccc}, {0x9a0920, 0x100}, {0x9a0918, 0xcccccccc}, {0x9a096c, 0x1d00}, {0x9a0924, 0x0}, {0x9a091c, 0xcccccccc}, {0x9a0924, 0x100}, {0x9a091c, 0xcccccccc}, {0x9a0968, 0x1e00}, {0x9a0920, 0x0}, {0x9a0918, 0xf0f0f0f0}, {0x9a0920, 0x100}, {0x9a0918, 0xf0f0f0f0}, {0x9a096c, 0x1e00}, {0x9a0924, 0x0}, {0x9a091c, 0xf0f0f0f0}, {0x9a0924, 0x100}, {0x9a091c, 0xf0f0f0f0}, {0x9a0968, 0x1f00}, {0x9a0920, 0xff}, {0x9a0918, 0xf0f0f0f}, {0x9a0920, 0x1ff}, {0x9a0918, 0xf0f0f0f}, {0x9a096c, 0x1f00}, {0x9a0924, 0xff}, {0x9a091c, 0xf0f0f0f}, {0x9a0924, 0x1ff}, {0x9a091c, 0xf0f0f0f}, {0x9a0968, 0x2000}, {0x9a0920, 0xff}, {0x9a0918, 0xff00ff}, {0x9a0920, 0x1ff}, {0x9a0918, 0xff00ff}, {0x9a096c, 0x2000}, {0x9a0924, 0xff}, {0x9a091c, 0xff00ff}, {0x9a0924, 0x1ff}, {0x9a091c, 0xff00ff}, {0x9a0968, 0x2100}, {0x9a0920, 0x0}, {0x9a0918, 0xff00ff00}, {0x9a0920, 0x100}, {0x9a0918, 0xff00ff00}, {0x9a096c, 0x2100}, {0x9a0924, 0x0}, {0x9a091c, 0xff00ff00}, {0x9a0924, 0x100}, {0x9a091c, 0xff00ff00}, {0x9a0968, 0x2200}, {0x9a0920, 0xff}, {0x9a0918, 0xffff}, {0x9a0920, 0x1ff}, {0x9a0918, 0xffff}, {0x9a096c, 0x2200}, {0x9a0924, 0xff}, {0x9a091c, 0xffff}, {0x9a0924, 0x1ff}, {0x9a091c, 0xffff}, {0x9a0968, 0x2300}, {0x9a0920, 0x0}, {0x9a0918, 0xffff0000}, {0x9a0920, 0x100}, {0x9a0918, 0xffff0000}, {0x9a096c, 0x2300}, {0x9a0924, 0x0}, {0x9a091c, 0xffff0000}, {0x9a0924, 0x100}, {0x9a091c, 0xffff0000}, {0x9a0968, 0x2400}, {0x9a0920, 0x0}, {0x9a0918, 0x0}, {0x9a0920, 0x100}, {0x9a0918, 0x0}, {0x9a096c, 0x2400}, {0x9a0924, 0x0}, {0x9a091c, 0x0}, {0x9a0924, 0x100}, {0x9a091c, 0x0}, {0x9a0968, 0x2500}, {0x9a0920, 0xff}, {0x9a0918, 0xffffffff}, {0x9a0920, 0x1ff}, {0x9a0918, 0xffffffff}, {0x9a096c, 0x2500}, {0x9a0924, 0xff}, {0x9a091c, 0xffffffff}, {0x9a0924, 0x1ff}, {0x9a091c, 0xffffffff}, {0x9a0968, 0x2600}, {0x9a0920, 0xff}, {0x9a0918, 0x55555555}, {0x9a0920, 0x1ff}, {0x9a0918, 0x55555555}, {0x9a096c, 0x2600}, {0x9a0924, 0xff}, {0x9a091c, 0x55555555}, {0x9a0924, 0x1ff}, {0x9a091c, 0x55555555}, {0x9a0968, 0x2700}, {0x9a0920, 0x0}, {0x9a0918, 0xaaaaaaaa}, {0x9a0920, 0x100}, {0x9a0918, 0xaaaaaaaa}, {0x9a096c, 0x2700}, {0x9a0924, 0x0}, {0x9a091c, 0xaaaaaaaa}, {0x9a0924, 0x100}, {0x9a091c, 0xaaaaaaaa}, {0x9a0968, 0x2800}, {0x9a0920, 0xff}, {0x9a0918, 0x33333333}, {0x9a0920, 0x1ff}, {0x9a0918, 0x33333333}, {0x9a096c, 0x2800}, {0x9a0924, 0xff}, {0x9a091c, 0x33333333}, {0x9a0924, 0x1ff}, {0x9a091c, 0x33333333}, {0x9a0968, 0x2900}, {0x9a0920, 0x0}, {0x9a0918, 0xcccccccc}, {0x9a0920, 0x100}, {0x9a0918, 0xcccccccc}, {0x9a096c, 0x2900}, {0x9a0924, 0x0}, {0x9a091c, 0xcccccccc}, {0x9a0924, 0x100}, {0x9a091c, 0xcccccccc}, {0x9a0968, 0x2a00}, {0x9a0920, 0x0}, {0x9a0918, 0xf0f0f0f0}, {0x9a0920, 0x100}, {0x9a0918, 0xf0f0f0f0}, {0x9a096c, 0x2a00}, {0x9a0924, 0x0}, {0x9a091c, 0xf0f0f0f0}, {0x9a0924, 0x100}, {0x9a091c, 0xf0f0f0f0}, {0x9a0968, 0x2b00}, {0x9a0920, 0xff}, {0x9a0918, 0xf0f0f0f}, {0x9a0920, 0x1ff}, {0x9a0918, 0xf0f0f0f}, {0x9a096c, 0x2b00}, {0x9a0924, 0xff}, {0x9a091c, 0xf0f0f0f}, {0x9a0924, 0x1ff}, {0x9a091c, 0xf0f0f0f}, {0x9a0968, 0x2c00}, {0x9a0920, 0xff}, {0x9a0918, 0xff00ff}, {0x9a0920, 0x1ff}, {0x9a0918, 0xff00ff}, {0x9a096c, 0x2c00}, {0x9a0924, 0xff}, {0x9a091c, 0xff00ff}, {0x9a0924, 0x1ff}, {0x9a091c, 0xff00ff}, {0x9a0968, 0x2d00}, {0x9a0920, 0x0}, {0x9a0918, 0xff00ff00}, {0x9a0920, 0x100}, {0x9a0918, 0xff00ff00}, {0x9a096c, 0x2d00}, {0x9a0924, 0x0}, {0x9a091c, 0xff00ff00}, {0x9a0924, 0x100}, {0x9a091c, 0xff00ff00}, {0x9a0968, 0x2e00}, {0x9a0920, 0xff}, {0x9a0918, 0xffff}, {0x9a0920, 0x1ff}, {0x9a0918, 0xffff}, {0x9a096c, 0x2e00}, {0x9a0924, 0xff}, {0x9a091c, 0xffff}, {0x9a0924, 0x1ff}, {0x9a091c, 0xffff}, {0x9a0968, 0x2f00}, {0x9a0920, 0x0}, {0x9a0918, 0xffff0000}, {0x9a0920, 0x100}, {0x9a0918, 0xffff0000}, {0x9a096c, 0x2f00}, {0x9a0924, 0x0}, {0x9a091c, 0xffff0000}, {0x9a0924, 0x100}, {0x9a091c, 0xffff0000}, {0x9a0968, 0x0}, {0x9a0900, 0x0}, {0x9a0968, 0x1}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x2}, {0x9a0900, 0x0}, {0x9a0968, 0x3}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x4}, {0x9a0900, 0x0}, {0x9a0968, 0x5}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x6}, {0x9a0900, 0x0}, {0x9a0968, 0x7}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x8}, {0x9a0900, 0x0}, {0x9a0968, 0x9}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xa}, {0x9a0900, 0x0}, {0x9a0968, 0xb}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xc}, {0x9a0900, 0x0}, {0x9a0968, 0xd}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xe}, {0x9a0900, 0x0}, {0x9a0968, 0xf}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x10}, {0x9a0900, 0x55555555}, {0x9a0968, 0x11}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x12}, {0x9a0900, 0x55555555}, {0x9a0968, 0x13}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x14}, {0x9a0900, 0x55555555}, {0x9a0968, 0x15}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x16}, {0x9a0900, 0x55555555}, {0x9a0968, 0x17}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x18}, {0x9a0900, 0x55555555}, {0x9a0968, 0x19}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x1a}, {0x9a0900, 0x55555555}, {0x9a0968, 0x1b}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x1c}, {0x9a0900, 0x55555555}, {0x9a0968, 0x1d}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x1e}, {0x9a0900, 0x55555555}, {0x9a0968, 0x1f}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x20}, {0x9a0900, 0xffff}, {0x9a0968, 0x21}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x22}, {0x9a0900, 0xffff}, {0x9a0968, 0x23}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x24}, {0x9a0900, 0xffff}, {0x9a0968, 0x25}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x26}, {0x9a0900, 0xffff}, {0x9a0968, 0x27}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x28}, {0x9a0900, 0xffff}, {0x9a0968, 0x29}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x2a}, {0x9a0900, 0xffff}, {0x9a0968, 0x2b}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x2c}, {0x9a0900, 0xffff}, {0x9a0968, 0x2d}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x2e}, {0x9a0900, 0xffff}, {0x9a0968, 0x2f}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x30}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x31}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x32}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x33}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x34}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x35}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x36}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x37}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x38}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x39}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x3a}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x3b}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x3c}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x3d}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x3e}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x3f}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x40}, {0x9a0900, 0x0}, {0x9a0968, 0x41}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x42}, {0x9a0900, 0x0}, {0x9a0968, 0x43}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x44}, {0x9a0900, 0x0}, {0x9a0968, 0x45}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x46}, {0x9a0900, 0x0}, {0x9a0968, 0x47}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x48}, {0x9a0900, 0x0}, {0x9a0968, 0x49}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x4a}, {0x9a0900, 0x0}, {0x9a0968, 0x4b}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x4c}, {0x9a0900, 0x0}, {0x9a0968, 0x4d}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x4e}, {0x9a0900, 0x0}, {0x9a0968, 0x4f}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x50}, {0x9a0900, 0x55555555}, {0x9a0968, 0x51}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x52}, {0x9a0900, 0x55555555}, {0x9a0968, 0x53}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x54}, {0x9a0900, 0x55555555}, {0x9a0968, 0x55}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x56}, {0x9a0900, 0x55555555}, {0x9a0968, 0x57}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x58}, {0x9a0900, 0x55555555}, {0x9a0968, 0x59}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x5a}, {0x9a0900, 0x55555555}, {0x9a0968, 0x5b}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x5c}, {0x9a0900, 0x55555555}, {0x9a0968, 0x5d}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x5e}, {0x9a0900, 0x55555555}, {0x9a0968, 0x5f}, {0x9a0900, 0x0}, {0x9a0968, 0x60}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x61}, {0x9a0900, 0x0}, {0x9a0968, 0x62}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x63}, {0x9a0900, 0x0}, {0x9a0968, 0x64}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x65}, {0x9a0900, 0x0}, {0x9a0968, 0x66}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x67}, {0x9a0900, 0x0}, {0x9a0968, 0x68}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x69}, {0x9a0900, 0x0}, {0x9a0968, 0x6a}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x6b}, {0x9a0900, 0x0}, {0x9a0968, 0x6c}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x6d}, {0x9a0900, 0x0}, {0x9a0968, 0x6e}, {0x9a0900, 0xffffffff}, {0x9a0968, 0x6f}, {0x9a0900, 0x55555555}, {0x9a0968, 0x70}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x71}, {0x9a0900, 0x55555555}, {0x9a0968, 0x72}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x73}, {0x9a0900, 0x55555555}, {0x9a0968, 0x74}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x75}, {0x9a0900, 0x55555555}, {0x9a0968, 0x76}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x77}, {0x9a0900, 0x55555555}, {0x9a0968, 0x78}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x79}, {0x9a0900, 0x55555555}, {0x9a0968, 0x7a}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x7b}, {0x9a0900, 0x55555555}, {0x9a0968, 0x7c}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x7d}, {0x9a0900, 0x55555555}, {0x9a0968, 0x7e}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0x7f}, {0x9a0900, 0xffff}, {0x9a0968, 0x80}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x81}, {0x9a0900, 0xffff}, {0x9a0968, 0x82}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x83}, {0x9a0900, 0xffff}, {0x9a0968, 0x84}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x85}, {0x9a0900, 0xffff}, {0x9a0968, 0x86}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x87}, {0x9a0900, 0xffff}, {0x9a0968, 0x88}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x89}, {0x9a0900, 0xffff}, {0x9a0968, 0x8a}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x8b}, {0x9a0900, 0xffff}, {0x9a0968, 0x8c}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x8d}, {0x9a0900, 0xffff}, {0x9a0968, 0x8e}, {0x9a0900, 0xffff0000}, {0x9a0968, 0x8f}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x90}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x91}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x92}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x93}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x94}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x95}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x96}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x97}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x98}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x99}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x9a}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x9b}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x9c}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x9d}, {0x9a0900, 0xff00ff}, {0x9a0968, 0x9e}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0x9f}, {0x9a0900, 0x0}, {0x9a0968, 0xa0}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xa1}, {0x9a0900, 0x0}, {0x9a0968, 0xa2}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xa3}, {0x9a0900, 0x0}, {0x9a0968, 0xa4}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xa5}, {0x9a0900, 0x0}, {0x9a0968, 0xa6}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xa7}, {0x9a0900, 0x0}, {0x9a0968, 0xa8}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xa9}, {0x9a0900, 0x0}, {0x9a0968, 0xaa}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xab}, {0x9a0900, 0x0}, {0x9a0968, 0xac}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xad}, {0x9a0900, 0x0}, {0x9a0968, 0xae}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xaf}, {0x9a0900, 0x55555555}, {0x9a0968, 0xb0}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xb1}, {0x9a0900, 0x55555555}, {0x9a0968, 0xb2}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xb3}, {0x9a0900, 0x55555555}, {0x9a0968, 0xb4}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xb5}, {0x9a0900, 0x55555555}, {0x9a0968, 0xb6}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xb7}, {0x9a0900, 0x55555555}, {0x9a0968, 0xb8}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xb9}, {0x9a0900, 0x55555555}, {0x9a0968, 0xba}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xbb}, {0x9a0900, 0x55555555}, {0x9a0968, 0xbc}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xbd}, {0x9a0900, 0x55555555}, {0x9a0968, 0xbe}, {0x9a0900, 0x0}, {0x9a0968, 0xbf}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xc0}, {0x9a0900, 0x0}, {0x9a0968, 0xc1}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xc2}, {0x9a0900, 0x0}, {0x9a0968, 0xc3}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xc4}, {0x9a0900, 0x0}, {0x9a0968, 0xc5}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xc6}, {0x9a0900, 0x0}, {0x9a0968, 0xc7}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xc8}, {0x9a0900, 0x0}, {0x9a0968, 0xc9}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xca}, {0x9a0900, 0x0}, {0x9a0968, 0xcb}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xcc}, {0x9a0900, 0x0}, {0x9a0968, 0xcd}, {0x9a0900, 0xffffffff}, {0x9a0968, 0xce}, {0x9a0900, 0x55555555}, {0x9a0968, 0xcf}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xd0}, {0x9a0900, 0x55555555}, {0x9a0968, 0xd1}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xd2}, {0x9a0900, 0x55555555}, {0x9a0968, 0xd3}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xd4}, {0x9a0900, 0x55555555}, {0x9a0968, 0xd5}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xd6}, {0x9a0900, 0x55555555}, {0x9a0968, 0xd7}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xd8}, {0x9a0900, 0x55555555}, {0x9a0968, 0xd9}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xda}, {0x9a0900, 0x55555555}, {0x9a0968, 0xdb}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xdc}, {0x9a0900, 0x55555555}, {0x9a0968, 0xdd}, {0x9a0900, 0xaaaaaaaa}, {0x9a0968, 0xde}, {0x9a0900, 0xffff}, {0x9a0968, 0xdf}, {0x9a0900, 0xffff0000}, {0x9a0968, 0xe0}, {0x9a0900, 0xffff}, {0x9a0968, 0xe1}, {0x9a0900, 0xffff0000}, {0x9a0968, 0xe2}, {0x9a0900, 0xffff}, {0x9a0968, 0xe3}, {0x9a0900, 0xffff0000}, {0x9a0968, 0xe4}, {0x9a0900, 0xffff}, {0x9a0968, 0xe5}, {0x9a0900, 0xffff0000}, {0x9a0968, 0xe6}, {0x9a0900, 0xffff}, {0x9a0968, 0xe7}, {0x9a0900, 0xffff0000}, {0x9a0968, 0xe8}, {0x9a0900, 0xffff}, {0x9a0968, 0xe9}, {0x9a0900, 0xffff0000}, {0x9a0968, 0xea}, {0x9a0900, 0xffff}, {0x9a0968, 0xeb}, {0x9a0900, 0xffff0000}, {0x9a0968, 0xec}, {0x9a0900, 0xffff}, {0x9a0968, 0xed}, {0x9a0900, 0xffff0000}, {0x9a0968, 0xee}, {0x9a0900, 0xff00ff}, {0x9a0968, 0xef}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0xf0}, {0x9a0900, 0xff00ff}, {0x9a0968, 0xf1}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0xf2}, {0x9a0900, 0xff00ff}, {0x9a0968, 0xf3}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0xf4}, {0x9a0900, 0xff00ff}, {0x9a0968, 0xf5}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0xf6}, {0x9a0900, 0xff00ff}, {0x9a0968, 0xf7}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0xf8}, {0x9a0900, 0xff00ff}, {0x9a0968, 0xf9}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0xfa}, {0x9a0900, 0xff00ff}, {0x9a0968, 0xfb}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0xfc}, {0x9a0900, 0xff00ff}, {0x9a0968, 0xfd}, {0x9a0900, 0xff00ff00}, {0x9a0968, 0xfe}, {0x9a0900, 0x0}, {0x9a0968, 0xff}, {0x9a0900, 0xffffffff}, {0x9a096c, 0x0}, {0x9a0904, 0x0}, {0x9a096c, 0x1}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x2}, {0x9a0904, 0x0}, {0x9a096c, 0x3}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x4}, {0x9a0904, 0x0}, {0x9a096c, 0x5}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x6}, {0x9a0904, 0x0}, {0x9a096c, 0x7}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x8}, {0x9a0904, 0x0}, {0x9a096c, 0x9}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xa}, {0x9a0904, 0x0}, {0x9a096c, 0xb}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xc}, {0x9a0904, 0x0}, {0x9a096c, 0xd}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xe}, {0x9a0904, 0x0}, {0x9a096c, 0xf}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x10}, {0x9a0904, 0x55555555}, {0x9a096c, 0x11}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x12}, {0x9a0904, 0x55555555}, {0x9a096c, 0x13}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x14}, {0x9a0904, 0x55555555}, {0x9a096c, 0x15}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x16}, {0x9a0904, 0x55555555}, {0x9a096c, 0x17}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x18}, {0x9a0904, 0x55555555}, {0x9a096c, 0x19}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x1a}, {0x9a0904, 0x55555555}, {0x9a096c, 0x1b}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x1c}, {0x9a0904, 0x55555555}, {0x9a096c, 0x1d}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x1e}, {0x9a0904, 0x55555555}, {0x9a096c, 0x1f}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x20}, {0x9a0904, 0xffff}, {0x9a096c, 0x21}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x22}, {0x9a0904, 0xffff}, {0x9a096c, 0x23}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x24}, {0x9a0904, 0xffff}, {0x9a096c, 0x25}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x26}, {0x9a0904, 0xffff}, {0x9a096c, 0x27}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x28}, {0x9a0904, 0xffff}, {0x9a096c, 0x29}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x2a}, {0x9a0904, 0xffff}, {0x9a096c, 0x2b}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x2c}, {0x9a0904, 0xffff}, {0x9a096c, 0x2d}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x2e}, {0x9a0904, 0xffff}, {0x9a096c, 0x2f}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x30}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x31}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x32}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x33}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x34}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x35}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x36}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x37}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x38}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x39}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x3a}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x3b}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x3c}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x3d}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x3e}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x3f}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x40}, {0x9a0904, 0x0}, {0x9a096c, 0x41}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x42}, {0x9a0904, 0x0}, {0x9a096c, 0x43}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x44}, {0x9a0904, 0x0}, {0x9a096c, 0x45}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x46}, {0x9a0904, 0x0}, {0x9a096c, 0x47}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x48}, {0x9a0904, 0x0}, {0x9a096c, 0x49}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x4a}, {0x9a0904, 0x0}, {0x9a096c, 0x4b}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x4c}, {0x9a0904, 0x0}, {0x9a096c, 0x4d}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x4e}, {0x9a0904, 0x0}, {0x9a096c, 0x4f}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x50}, {0x9a0904, 0x55555555}, {0x9a096c, 0x51}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x52}, {0x9a0904, 0x55555555}, {0x9a096c, 0x53}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x54}, {0x9a0904, 0x55555555}, {0x9a096c, 0x55}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x56}, {0x9a0904, 0x55555555}, {0x9a096c, 0x57}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x58}, {0x9a0904, 0x55555555}, {0x9a096c, 0x59}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x5a}, {0x9a0904, 0x55555555}, {0x9a096c, 0x5b}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x5c}, {0x9a0904, 0x55555555}, {0x9a096c, 0x5d}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x5e}, {0x9a0904, 0x55555555}, {0x9a096c, 0x5f}, {0x9a0904, 0x0}, {0x9a096c, 0x60}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x61}, {0x9a0904, 0x0}, {0x9a096c, 0x62}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x63}, {0x9a0904, 0x0}, {0x9a096c, 0x64}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x65}, {0x9a0904, 0x0}, {0x9a096c, 0x66}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x67}, {0x9a0904, 0x0}, {0x9a096c, 0x68}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x69}, {0x9a0904, 0x0}, {0x9a096c, 0x6a}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x6b}, {0x9a0904, 0x0}, {0x9a096c, 0x6c}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x6d}, {0x9a0904, 0x0}, {0x9a096c, 0x6e}, {0x9a0904, 0xffffffff}, {0x9a096c, 0x6f}, {0x9a0904, 0x55555555}, {0x9a096c, 0x70}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x71}, {0x9a0904, 0x55555555}, {0x9a096c, 0x72}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x73}, {0x9a0904, 0x55555555}, {0x9a096c, 0x74}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x75}, {0x9a0904, 0x55555555}, {0x9a096c, 0x76}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x77}, {0x9a0904, 0x55555555}, {0x9a096c, 0x78}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x79}, {0x9a0904, 0x55555555}, {0x9a096c, 0x7a}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x7b}, {0x9a0904, 0x55555555}, {0x9a096c, 0x7c}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x7d}, {0x9a0904, 0x55555555}, {0x9a096c, 0x7e}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0x7f}, {0x9a0904, 0xffff}, {0x9a096c, 0x80}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x81}, {0x9a0904, 0xffff}, {0x9a096c, 0x82}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x83}, {0x9a0904, 0xffff}, {0x9a096c, 0x84}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x85}, {0x9a0904, 0xffff}, {0x9a096c, 0x86}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x87}, {0x9a0904, 0xffff}, {0x9a096c, 0x88}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x89}, {0x9a0904, 0xffff}, {0x9a096c, 0x8a}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x8b}, {0x9a0904, 0xffff}, {0x9a096c, 0x8c}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x8d}, {0x9a0904, 0xffff}, {0x9a096c, 0x8e}, {0x9a0904, 0xffff0000}, {0x9a096c, 0x8f}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x90}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x91}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x92}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x93}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x94}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x95}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x96}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x97}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x98}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x99}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x9a}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x9b}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x9c}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x9d}, {0x9a0904, 0xff00ff}, {0x9a096c, 0x9e}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0x9f}, {0x9a0904, 0x0}, {0x9a096c, 0xa0}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xa1}, {0x9a0904, 0x0}, {0x9a096c, 0xa2}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xa3}, {0x9a0904, 0x0}, {0x9a096c, 0xa4}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xa5}, {0x9a0904, 0x0}, {0x9a096c, 0xa6}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xa7}, {0x9a0904, 0x0}, {0x9a096c, 0xa8}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xa9}, {0x9a0904, 0x0}, {0x9a096c, 0xaa}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xab}, {0x9a0904, 0x0}, {0x9a096c, 0xac}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xad}, {0x9a0904, 0x0}, {0x9a096c, 0xae}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xaf}, {0x9a0904, 0x55555555}, {0x9a096c, 0xb0}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xb1}, {0x9a0904, 0x55555555}, {0x9a096c, 0xb2}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xb3}, {0x9a0904, 0x55555555}, {0x9a096c, 0xb4}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xb5}, {0x9a0904, 0x55555555}, {0x9a096c, 0xb6}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xb7}, {0x9a0904, 0x55555555}, {0x9a096c, 0xb8}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xb9}, {0x9a0904, 0x55555555}, {0x9a096c, 0xba}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xbb}, {0x9a0904, 0x55555555}, {0x9a096c, 0xbc}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xbd}, {0x9a0904, 0x55555555}, {0x9a096c, 0xbe}, {0x9a0904, 0x0}, {0x9a096c, 0xbf}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xc0}, {0x9a0904, 0x0}, {0x9a096c, 0xc1}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xc2}, {0x9a0904, 0x0}, {0x9a096c, 0xc3}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xc4}, {0x9a0904, 0x0}, {0x9a096c, 0xc5}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xc6}, {0x9a0904, 0x0}, {0x9a096c, 0xc7}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xc8}, {0x9a0904, 0x0}, {0x9a096c, 0xc9}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xca}, {0x9a0904, 0x0}, {0x9a096c, 0xcb}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xcc}, {0x9a0904, 0x0}, {0x9a096c, 0xcd}, {0x9a0904, 0xffffffff}, {0x9a096c, 0xce}, {0x9a0904, 0x55555555}, {0x9a096c, 0xcf}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xd0}, {0x9a0904, 0x55555555}, {0x9a096c, 0xd1}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xd2}, {0x9a0904, 0x55555555}, {0x9a096c, 0xd3}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xd4}, {0x9a0904, 0x55555555}, {0x9a096c, 0xd5}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xd6}, {0x9a0904, 0x55555555}, {0x9a096c, 0xd7}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xd8}, {0x9a0904, 0x55555555}, {0x9a096c, 0xd9}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xda}, {0x9a0904, 0x55555555}, {0x9a096c, 0xdb}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xdc}, {0x9a0904, 0x55555555}, {0x9a096c, 0xdd}, {0x9a0904, 0xaaaaaaaa}, {0x9a096c, 0xde}, {0x9a0904, 0xffff}, {0x9a096c, 0xdf}, {0x9a0904, 0xffff0000}, {0x9a096c, 0xe0}, {0x9a0904, 0xffff}, {0x9a096c, 0xe1}, {0x9a0904, 0xffff0000}, {0x9a096c, 0xe2}, {0x9a0904, 0xffff}, {0x9a096c, 0xe3}, {0x9a0904, 0xffff0000}, {0x9a096c, 0xe4}, {0x9a0904, 0xffff}, {0x9a096c, 0xe5}, {0x9a0904, 0xffff0000}, {0x9a096c, 0xe6}, {0x9a0904, 0xffff}, {0x9a096c, 0xe7}, {0x9a0904, 0xffff0000}, {0x9a096c, 0xe8}, {0x9a0904, 0xffff}, {0x9a096c, 0xe9}, {0x9a0904, 0xffff0000}, {0x9a096c, 0xea}, {0x9a0904, 0xffff}, {0x9a096c, 0xeb}, {0x9a0904, 0xffff0000}, {0x9a096c, 0xec}, {0x9a0904, 0xffff}, {0x9a096c, 0xed}, {0x9a0904, 0xffff0000}, {0x9a096c, 0xee}, {0x9a0904, 0xff00ff}, {0x9a096c, 0xef}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0xf0}, {0x9a0904, 0xff00ff}, {0x9a096c, 0xf1}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0xf2}, {0x9a0904, 0xff00ff}, {0x9a096c, 0xf3}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0xf4}, {0x9a0904, 0xff00ff}, {0x9a096c, 0xf5}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0xf6}, {0x9a0904, 0xff00ff}, {0x9a096c, 0xf7}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0xf8}, {0x9a0904, 0xff00ff}, {0x9a096c, 0xf9}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0xfa}, {0x9a0904, 0xff00ff}, {0x9a096c, 0xfb}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0xfc}, {0x9a0904, 0xff00ff}, {0x9a096c, 0xfd}, {0x9a0904, 0xff00ff00}, {0x9a096c, 0xfe}, {0x9a0904, 0x0}, {0x9a096c, 0xff}, {0x9a0904, 0xffffffff}, }; static u8 seq_script_gp106[] = { 0x0b, 0x00, 0x02, 0x00, 0x40, 0xc0, 0x62, 0x00, 0x22, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x02, 0x00, 0x40, 0x63, 0x61, 0x00, 0x22, 0x00, 0x02, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x20, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x07, 0x00, 0x30, 0x03, 0x9a, 0x00, 0x14, 0x00, 0x10, 0x00, 0x38, 0xd6, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x04, 0xd6, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x02, 0x00, 0x20, 0x4e, 0x00, 0x00, 0x21, 0x00, 0x09, 0x00, 0x00, 0x02, 0x9a, 0x00, 0x00, 0x90, 0x8f, 0x02, 0x10, 0x09, 0x9a, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x14, 0x09, 0x9a, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x10, 0x02, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x02, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x10, 0x03, 0x9a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x02, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x0d, 0x00, 0x48, 0x03, 0x9a, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x02, 0x9a, 0x00, 0x00, 0x90, 0x8f, 0x82, 0x14, 0x03, 0x9a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x9a, 0x00, 0x00, 0x90, 0x8f, 0x02, 0x90, 0x00, 0x9a, 0x00, 0x61, 0x00, 0x00, 0x00, 0x90, 0x00, 0x9a, 0x00, 0x7f, 0x00, 0x00, 0xc0, 0x2e, 0x00, 0x02, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x27, 0x00, 0x98, 0x06, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x06, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x9a, 0x00, 0xe7, 0x8f, 0x88, 0xf7, 0x40, 0x0d, 0x9a, 0x00, 0x20, 0xe0, 0x01, 0x00, 0x00, 0x02, 0x9a, 0x00, 0x00, 0x90, 0x8f, 0x1a, 0x00, 0x08, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x73, 0x13, 0x00, 0x03, 0x00, 0x00, 0x00, 0x30, 0x08, 0x9a, 0x00, 0x90, 0x90, 0x67, 0x00, 0xf4, 0x73, 0x13, 0x00, 0x11, 0x00, 0x01, 0x00, 0xf4, 0x73, 0x13, 0x00, 0x10, 0x00, 0x01, 0x00, 0xf4, 0x73, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x20, 0x13, 0x00, 0x00, 0x00, 0x03, 0x20, 0x20, 0x73, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x20, 0x13, 0x00, 0x04, 0x00, 0x00, 0x00, 0x34, 0x20, 0x13, 0x00, 0x00, 0x00, 0x8a, 0xf9, 0x24, 0x20, 0x13, 0x00, 0x01, 0x32, 0x05, 0x00, 0x2c, 0x20, 0x13, 0x00, 0x00, 0x01, 0x00, 0x00, 0x28, 0x20, 0x13, 0x00, 0x10, 0x00, 0x08, 0x10, 0x20, 0x20, 0x13, 0x00, 0x01, 0x00, 0x03, 0x20, 0x34, 0x00, 0x02, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x90, 0x73, 0x13, 0x00, 0x15, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x0d, 0x00, 0x2c, 0x20, 0x13, 0x00, 0x00, 0x03, 0x00, 0x00, 0x28, 0x20, 0x13, 0x00, 0x10, 0x00, 0x04, 0x10, 0xf4, 0x73, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x13, 0x00, 0x00, 0x00, 0x01, 0x98, 0x04, 0x20, 0x13, 0x00, 0x01, 0x0b, 0x01, 0x00, 0x00, 0x20, 0x13, 0x00, 0x01, 0x00, 0x01, 0x98, 0x34, 0x00, 0x02, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x90, 0x73, 0x13, 0x00, 0x15, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x21, 0x00, 0x1d, 0x00, 0xf4, 0x73, 0x13, 0x00, 0x00, 0x11, 0x00, 0x00, 0xf4, 0x73, 0x13, 0x00, 0x10, 0x11, 0x00, 0x00, 0xec, 0x73, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0xf0, 0x73, 0x13, 0x00, 0x02, 0x00, 0x00, 0x00, 0xf4, 0x73, 0x13, 0x00, 0x12, 0x11, 0x00, 0x00, 0xf4, 0x73, 0x13, 0x00, 0x12, 0x00, 0x00, 0x00, 0x08, 0x08, 0x9a, 0x00, 0x70, 0x00, 0x08, 0x48, 0x00, 0x02, 0x9a, 0x00, 0x00, 0x10, 0x8f, 0x1a, 0x24, 0x08, 0x9a, 0x00, 0xe5, 0x8f, 0x88, 0xf7, 0x08, 0x08, 0x9a, 0x00, 0x70, 0x00, 0xa8, 0x4a, 0x24, 0x08, 0x9a, 0x00, 0x85, 0x8f, 0x88, 0xf7, 0x38, 0x1f, 0x9a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x34, 0x1f, 0x9a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x34, 0x0d, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x21, 0x00, 0x09, 0x00, 0x5c, 0x06, 0x9a, 0x00, 0x22, 0x00, 0x00, 0x00, 0x0c, 0x06, 0x9a, 0x00, 0xd0, 0x20, 0x00, 0xfd, 0xd4, 0x0e, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x40, 0xd4, 0x0e, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x21, 0x00, 0x27, 0x00, 0x2c, 0x08, 0x9a, 0x00, 0x00, 0x00, 0x05, 0x00, 0x30, 0x08, 0x9a, 0x00, 0x90, 0xa0, 0x67, 0x00, 0x48, 0x02, 0x9a, 0x00, 0xa2, 0x44, 0x1e, 0x93, 0x90, 0x02, 0x9a, 0x00, 0x42, 0xa5, 0x5a, 0x15, 0x94, 0x02, 0x9a, 0x00, 0x95, 0xc2, 0xe5, 0x28, 0x98, 0x02, 0x9a, 0x00, 0x00, 0x08, 0x15, 0x88, 0x9c, 0x02, 0x9a, 0x00, 0xec, 0x30, 0x00, 0x22, 0xa0, 0x02, 0x9a, 0x00, 0x32, 0x00, 0x83, 0xd5, 0xa8, 0x02, 0x9a, 0x00, 0x0f, 0x86, 0x00, 0x02, 0xcc, 0x02, 0x9a, 0x00, 0x00, 0x39, 0x0f, 0x12, 0x14, 0x06, 0x9a, 0x00, 0x77, 0x4e, 0x04, 0x40, 0x10, 0x06, 0x9a, 0x00, 0x77, 0x4e, 0x04, 0x40, 0x78, 0x07, 0x10, 0x00, 0x44, 0x04, 0x00, 0x82, 0x4c, 0x02, 0x9a, 0x00, 0x85, 0x0c, 0x05, 0x13, 0xe0, 0x08, 0x9a, 0x00, 0x11, 0x00, 0x00, 0x00, 0x90, 0x03, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x03, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x9a, 0x00, 0x06, 0x22, 0x22, 0x22, 0x90, 0x00, 0x9a, 0x00, 0x7e, 0x00, 0x00, 0x40, 0x2e, 0x00, 0x02, 0x00, 0xd0, 0x07, 0x00, 0x00, 0x21, 0x00, 0x0f, 0x00, 0x14, 0x03, 0x9a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x03, 0x9a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x02, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x80, 0x90, 0x03, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x02, 0x9a, 0x00, 0x95, 0xc2, 0xe5, 0x24, 0x10, 0x09, 0x9a, 0x00, 0x00, 0x00, 0x01, 0xa4, 0x14, 0x09, 0x9a, 0x00, 0x00, 0x00, 0x01, 0xa4, 0x34, 0x00, 0x02, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x74, 0x09, 0x90, 0x00, 0x15, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x01, 0x00, 0x02, 0x00, 0x74, 0x49, 0x90, 0x00, 0x15, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x34, 0x00, 0x02, 0x00, 0x12, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x02, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x0b, 0x00, 0x94, 0x02, 0x9a, 0x00, 0x95, 0xc2, 0xe5, 0x28, 0x38, 0x03, 0x9a, 0x00, 0x03, 0x01, 0x30, 0x00, 0x3c, 0x03, 0x9a, 0x00, 0xff, 0x01, 0x40, 0x00, 0x00, 0x03, 0x9a, 0x00, 0x05, 0x01, 0x00, 0x00, 0x54, 0x03, 0x9a, 0x00, 0x03, 0x00, 0x80, 0x00, 0x2e, 0x00, 0x02, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x09, 0x00, 0x48, 0x03, 0x9a, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x02, 0x9a, 0x00, 0x00, 0x10, 0x8f, 0x9a, 0x18, 0x03, 0x9a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x9a, 0x00, 0x00, 0x10, 0x8f, 0x1a, 0x2e, 0x00, 0x02, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x07, 0x00, 0x78, 0x09, 0x9a, 0x00, 0x0f, 0x1e, 0x7e, 0x88, 0x10, 0x09, 0x9a, 0x00, 0x00, 0x00, 0x0e, 0xa4, 0x14, 0x09, 0x9a, 0x00, 0x00, 0x00, 0x0e, 0xa4, 0x34, 0x00, 0x02, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x74, 0x09, 0x90, 0x00, 0x15, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x01, 0x00, 0x02, 0x00, 0x74, 0x49, 0x90, 0x00, 0x15, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x34, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x02, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x21, 0x00, 0x07, 0x00, 0x00, 0x02, 0x9a, 0x00, 0x00, 0x10, 0x8f, 0x3a, 0x10, 0x09, 0x9a, 0x00, 0x00, 0x00, 0x0c, 0x25, 0x14, 0x09, 0x9a, 0x00, 0x00, 0x00, 0x0c, 0x25, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x02, 0x00, 0x15, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x62, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x16, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 }; static void mclk_memory_load_training_pattern(struct gk20a *g) { u32 reg_writes; u32 index; gk20a_dbg_info(""); reg_writes = ((sizeof(memory_pattern_reglist) / sizeof((memory_pattern_reglist)[0]))); for (index = 0; index < reg_writes; index++) { gk20a_writel(g, memory_pattern_reglist[index].regaddr, memory_pattern_reglist[index].writeval); } gk20a_dbg_fn("done"); } static void mclk_memory_load_shadow_regs(struct gk20a *g) { u32 reg_writes; u32 index; gk20a_dbg_info(""); reg_writes = ((sizeof(memory_shadow_reglist) / sizeof((memory_shadow_reglist)[0]))); for (index = 0; index < reg_writes; index++) { gk20a_writel(g, memory_shadow_reglist[index].regaddr, memory_shadow_reglist[index].writeval); } gk20a_dbg_fn("done"); } static void mclk_seq_pmucmdhandler(struct gk20a *g, struct pmu_msg *_msg, void *param, u32 handle, u32 status) { struct nv_pmu_seq_msg *msg = (struct nv_pmu_seq_msg *)_msg; struct nv_pmu_seq_msg_run_script *seq_msg; u32 msg_status = 0; gk20a_dbg_info(""); if (status != 0) { gk20a_err(dev_from_gk20a(g), "mclk seq_script cmd aborted"); msg_status = -ENOENT; goto status_update; } seq_msg = &msg->run_script; if (seq_msg->msg_type != NV_PMU_SEQ_MSG_ID_RUN_SCRIPT) { msg_status = -ENOENT; goto status_update; } if (seq_msg->error_code) { msg_status = -ENOENT; goto status_update; } status_update: *((u32 *)param) = msg_status; } int clk_mclkseq_build_prgm_gddr5(struct gk20a *g) { struct pmu_payload payload = { {0} }; void *vreg_buf = NULL; struct nv_pmu_seq_cmd cmd; struct nv_pmu_seq_cmd_run_script *pseq_cmd; u32 seqdesc; u32 status = 0; u32 seq_completion_status = ~0x0; gk20a_dbg_info(""); /* Load Shadow registers */ mclk_memory_load_shadow_regs(g); /* Load RAM pattern */ mclk_memory_load_training_pattern(g); /* Fill command header with SEQ ID & size */ memset(&cmd, 0, sizeof(cmd)); cmd.hdr.unit_id = PMU_UNIT_SEQ; cmd.hdr.size = sizeof(struct nv_pmu_seq_cmd_run_script) + sizeof(struct pmu_hdr); /* Fill RM_PMU_SEQ_CMD_RUN_SCRIPT struct */ pseq_cmd = &cmd.run_script; pseq_cmd->cmd_type = NV_PMU_SEQ_CMD_ID_RUN_SCRIPT; gk20a_writel(g, 0x132000, 0x98010000); udelay(0x5); gk20a_writel(g, 0x137300, 0x20000103); /* Read sequencer binary*/ payload.in.buf = seq_script_gp106; payload.in.size = sizeof(seq_script_gp106); payload.in.fb_size = PMU_CMD_SUBMIT_PAYLOAD_PARAMS_FB_SIZE_UNUSED; payload.in.offset = offsetof(struct nv_pmu_seq_cmd_run_script, script_alloc); vreg_buf = kzalloc((sizeof(u32) * VREG_COUNT), GFP_KERNEL); if (!vreg_buf) { status = -ENOMEM; gk20a_err(dev_from_gk20a(g), "unable to allocate memory for VREG"); goto exit_status; } payload.out.buf = vreg_buf; payload.out.size = (VREG_COUNT * sizeof(u32)); payload.out.fb_size = PMU_CMD_SUBMIT_PAYLOAD_PARAMS_FB_SIZE_UNUSED; payload.out.offset = offsetof(struct nv_pmu_seq_cmd_run_script, reg_alloc); /* Send command to PMU to execute sequencer script */ status = gk20a_pmu_cmd_post(g, (struct pmu_cmd *)&cmd, NULL, &payload, PMU_COMMAND_QUEUE_LPQ, mclk_seq_pmucmdhandler, &seq_completion_status, &seqdesc, ~0); if (status) { gk20a_err(dev_from_gk20a(g), "unable to post seq script exec cmd for unit %x ", cmd.hdr.unit_id); goto exit_status; } /* wait till sequencer script complete */ pmu_wait_message_cond(&g->pmu, (gk20a_get_gr_idle_timeout(g)), &seq_completion_status, 0); if (seq_completion_status != 0) { gk20a_err(dev_from_gk20a(g), "seq_scrip update failed"); status = -EBUSY; goto exit_status; } exit_status: kfree(vreg_buf); return status; }