gpu: nvgpu: unit: add tests for common.fifo.tsg

Added pre-populated register spaces for gv11b:
- NV_PFIFO 0x00003FFF:0x00002000
- NV_PTOP 0x000227FF:0x00022400

Registers values were captured on DDPX with reg_dump,
after disabling railgating and ELPG.

This allows running nvgpu_fifo_init_support, using
gv11b HALs.

Added the following tests:
- test_fifo_init_support
- test_tsg_open
- test_tsg_release
- test_fifo_remove_support

Jira NVGPU-3476

Change-Id: Ia717d9a9d431248635d51d0c265c16c2b6806a95
Signed-off-by: Thomas Fleury <tfleury@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2120564
GVS: Gerrit_Virtual_Submit
Reviewed-by: Nicolas Benech <nbenech@nvidia.com>
Reviewed-by: Alex Waterman <alexw@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Thomas Fleury
2019-05-15 17:46:41 -07:00
committed by mobile promotions
parent b528bb5ae4
commit e140d72ff8
7 changed files with 959 additions and 0 deletions

View File

@@ -63,5 +63,6 @@ UNITS := \
$(UNIT_SRC)/mm/nvgpu_mem \ $(UNIT_SRC)/mm/nvgpu_mem \
$(UNIT_SRC)/mm/vm \ $(UNIT_SRC)/mm/vm \
$(UNIT_SRC)/fifo/runlist \ $(UNIT_SRC)/fifo/runlist \
$(UNIT_SRC)/fifo/tsg \
$(UNIT_SRC)/list \ $(UNIT_SRC)/list \
$(UNIT_SRC)/enabled $(UNIT_SRC)/enabled

View File

@@ -0,0 +1,26 @@
# Copyright (c) 2018, NVIDIA CORPORATION. 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 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 AUTHORS OR COPYRIGHT HOLDERS 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.
.SUFFIXES:
OBJS = nvgpu-tsg.o nvgpu-fifo-gv11b.o
MODULE = nvgpu-tsg
include ../../Makefile.units

View File

@@ -0,0 +1,35 @@
################################### tell Emacs this is a -*- makefile-gmake -*-
#
# Copyright (c) 2018-2019, NVIDIA CORPORATION. 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 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 AUTHORS OR COPYRIGHT HOLDERS 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.
#
# tmake for SW Mobile component makefile
#
###############################################################################
NVGPU_UNIT_NAME=nvgpu-tsg
include $(NV_COMPONENT_DIR)/../../Makefile.units.common.interface.tmk
# Local Variables:
# indent-tabs-mode: t
# tab-width: 8
# End:
# vi: set tabstop=8 noexpandtab:

View File

@@ -0,0 +1,35 @@
################################### tell Emacs this is a -*- makefile-gmake -*-
#
# Copyright (c) 2018-2019, NVIDIA CORPORATION. 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 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 AUTHORS OR COPYRIGHT HOLDERS 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.
#
# tmake for SW Mobile component makefile
#
###############################################################################
NVGPU_UNIT_NAME=nvgpu-tsg
include $(NV_COMPONENT_DIR)/../../Makefile.units.common.tmk
# Local Variables:
# indent-tabs-mode: t
# tab-width: 8
# End:
# vi: set tabstop=8 noexpandtab:

View File

@@ -0,0 +1,688 @@
/*
* Copyright (c) 2018-2019, NVIDIA CORPORATION. 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 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 AUTHORS OR COPYRIGHT HOLDERS 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 <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <unit/io.h>
#include <unit/unit.h>
#include <nvgpu/posix/io.h>
#include <nvgpu/gk20a.h>
#include "nvgpu-fifo-gv11b.h"
u32 gv11b_top_regs[] = {
/* 0x17022400 */ 0x00010000, 0x00000000, 0x00000000, 0x00000000,
/* 0x17022410 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0x00000081,
/* 0x17022420 */ 0x04444924, 0x00000010, 0xbadf5040, 0xbadf5040,
/* 0x17022430 */ 0x00000001, 0x00000004, 0x00000001, 0x00000001,
/* 0x17022440 */ 0x00000004, 0x00000003, 0x00000000, 0x00000003,
/* 0x17022450 */ 0x00000002, 0x00000002, 0x00000001, 0x00000002,
/* 0x17022460 */ 0x00000002, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022470 */ 0x00000000, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022480 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022490 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170224a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170224b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170224c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170224d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170224e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170224f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022500 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022510 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022520 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022530 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022540 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022550 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022560 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022570 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022580 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022590 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170225a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170225b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170225c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170225d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170225e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170225f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022600 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022610 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022620 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022630 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022640 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022650 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022660 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022670 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022680 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022690 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170226a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170226b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170226c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170226d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170226e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170226f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17022700 */ 0x8006183e, 0x80000003, 0x00400205, 0x88028c3e,
/* 0x17022710 */ 0x8000004f, 0x0010407d, 0x8c030e3e, 0x8000004f,
/* 0x17022720 */ 0x04104085, 0x8423aa3e, 0x8000004f, 0x0810408d,
/* 0x17022730 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
/* 0x17022740 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
/* 0x17022750 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
/* 0x17022760 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
/* 0x17022770 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
/* 0x17022780 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
/* 0x17022790 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
/* 0x170227a0 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
/* 0x170227b0 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
/* 0x170227c0 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
/* 0x170227d0 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
/* 0x170227e0 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
/* 0x170227f0 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
};
struct nvgpu_posix_io_reg_space gv11b_top_reg_space = {
.base = 0x22400,
.size = sizeof(gv11b_top_regs),
.data = gv11b_top_regs,
};
u32 gv11b_fifo_regs[] = {
/* 0x17002000 */ 0x00000000, 0x00200003, 0x00000200, 0x0000c36f,
/* 0x17002010 */ 0x0000000f, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002020 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002030 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002040 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002050 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002060 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002070 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002080 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002090 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170020a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170020b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170020c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170020d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170020e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170020f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002100 */ 0x00000000, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002110 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002120 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002130 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002140 */ 0x21810103, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002150 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002160 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002170 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002180 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002190 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170021a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170021b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170021c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170021d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170021e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170021f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002200 */ 0x00000000, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002210 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002220 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002230 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002240 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002250 */ 0x00000008, 0x00000000, 0x00000050, 0x00000064,
/* 0x17002260 */ 0x00000000, 0x00000000, 0xbadf5040, 0xbadf5040,
/* 0x17002270 */ 0x300fb900, 0x00000000, 0xbadf5040, 0xbadf5040,
/* 0x17002280 */ 0x300fb900, 0x00000000, 0x00000000, 0x00000000,
/* 0x17002290 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170022a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170022b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170022c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170022d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170022e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170022f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002300 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002310 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002320 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002330 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002340 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002350 */ 0x10000010, 0x10000010, 0xbadf5040, 0xbadf5040,
/* 0x17002360 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002370 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002380 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002390 */ 0x00000001, 0x00000001, 0x00000002, 0xbadf5040,
/* 0x170023a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170023b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170023c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170023d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170023e0 */ 0x0e000000, 0x88000000, 0x0e000000, 0x88000000,
/* 0x170023f0 */ 0x01000000, 0x07000000, 0xbadf5040, 0xbadf5040,
/* 0x17002400 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002410 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002420 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002430 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002440 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002450 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002460 */ 0x00000000, 0x00000000, 0x1f000000, 0x1f000000,
/* 0x17002470 */ 0x1f000000, 0x1f000000, 0xbadf5040, 0xbadf5040,
/* 0x17002480 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002490 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170024a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170024b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170024c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170024d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170024e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170024f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002500 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002510 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002520 */ 0xbadf5040, 0xbadf5040, 0x80000000, 0x00000000,
/* 0x17002530 */ 0x01810101, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002540 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0x00000000,
/* 0x17002550 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002560 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0x00000000,
/* 0x17002570 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002580 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0x00000000,
/* 0x17002590 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170025a0 */ 0x00000000, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170025b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170025c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170025d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170025e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170025f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002600 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002610 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002620 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002630 */ 0x00000000, 0x01000000, 0x00000000, 0x00000000,
/* 0x17002640 */ 0x10001000, 0x00000000, 0x100010c0, 0x00000000,
/* 0x17002650 */ 0x10001100, 0x00000000, 0x11001020, 0x00000000,
/* 0x17002660 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002670 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002680 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002690 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170026a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170026b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170026c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170026d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0x00000000,
/* 0x170026e0 */ 0x00004044, 0xbadf5040, 0xbadf5040, 0x00000000,
/* 0x170026f0 */ 0x00000011, 0x00000000, 0x00000000, 0x00010000,
/* 0x17002700 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002710 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002720 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002730 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002740 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002750 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002760 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002770 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002780 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002790 */ 0x3083a102, 0x00c00001, 0x00c01c02, 0xbadf5040,
/* 0x170027a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170027b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170027c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170027d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170027e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170027f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002800 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002810 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002820 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002830 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002840 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002850 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002860 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002870 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002880 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002890 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170028a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170028b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170028c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170028d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170028e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170028f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002900 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002910 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002920 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002930 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002940 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002950 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002960 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002970 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002980 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002990 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170029a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170029b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170029c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170029d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170029e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170029f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002a00 */ 0x00000000, 0x80003c00, 0xbadf5040, 0x800186a0,
/* 0x17002a10 */ 0xbadf5040, 0x800003ff, 0xbadf5040, 0xbadf5040,
/* 0x17002a20 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0x80000004,
/* 0x17002a30 */ 0x00000000, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002a40 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002a50 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002a60 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002a70 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002a80 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002a90 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002aa0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002ab0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002ac0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002ad0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002ae0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002af0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002b00 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002b10 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002b20 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002b30 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002b40 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002b50 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002b60 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002b70 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002b80 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002b90 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002ba0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002bb0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002bc0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002bd0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002be0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002bf0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002c00 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002c10 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002c20 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002c30 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002c40 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002c50 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002c60 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002c70 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002c80 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002c90 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002ca0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002cb0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002cc0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002cd0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002ce0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002cf0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002d00 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002d10 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002d20 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002d30 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002d40 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002d50 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002d60 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002d70 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002d80 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002d90 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002da0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002db0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002dc0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002dd0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002de0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002df0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002e00 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002e10 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002e20 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002e30 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002e40 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002e50 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002e60 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002e70 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002e80 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002e90 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002ea0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002eb0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002ec0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002ed0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002ee0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002ef0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002f00 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002f10 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002f20 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002f30 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002f40 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002f50 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002f60 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002f70 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002f80 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002f90 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002fa0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002fb0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002fc0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002fd0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002fe0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17002ff0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003000 */ 0x3083a102, 0x10000000, 0x00100844, 0x10200c08,
/* 0x17003010 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003020 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003030 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003040 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003050 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003060 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003070 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003080 */ 0x10001000, 0x10801038, 0x10221000, 0xbadf5040,
/* 0x17003090 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170030a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170030b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170030c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170030d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170030e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170030f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003100 */ 0x3083a102, 0x00820800, 0x00000104, 0x044008c0,
/* 0x17003110 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003120 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003130 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003140 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003150 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003160 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003170 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003180 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003190 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170031a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170031b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170031c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170031d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170031e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170031f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003200 */ 0x00004000, 0x00004000, 0x00004000, 0x00004000,
/* 0x17003210 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003220 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003230 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003240 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003250 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003260 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003270 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003280 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003290 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170032a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170032b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170032c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170032d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170032e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170032f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003300 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003310 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003320 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003330 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003340 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003350 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003360 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003370 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003380 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003390 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170033a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170033b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170033c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170033d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170033e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170033f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003400 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003410 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003420 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003430 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003440 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003450 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003460 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003470 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003480 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003490 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170034a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170034b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170034c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170034d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170034e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170034f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003500 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003510 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003520 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003530 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003540 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003550 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003560 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003570 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003580 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003590 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170035a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170035b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170035c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170035d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170035e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170035f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003600 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003610 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003620 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003630 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003640 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003650 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003660 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003670 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003680 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003690 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170036a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170036b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170036c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170036d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170036e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170036f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003700 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003710 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003720 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003730 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003740 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003750 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003760 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003770 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003780 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003790 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170037a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170037b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170037c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170037d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170037e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170037f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003800 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003810 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003820 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003830 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003840 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003850 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003860 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003870 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003880 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003890 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170038a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170038b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170038c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170038d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170038e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170038f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003900 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003910 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003920 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003930 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003940 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003950 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003960 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003970 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003980 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003990 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170039a0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170039b0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170039c0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170039d0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170039e0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x170039f0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003a00 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003a10 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003a20 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003a30 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003a40 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003a50 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003a60 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003a70 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003a80 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003a90 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003aa0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003ab0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003ac0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003ad0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003ae0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003af0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003b00 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003b10 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003b20 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003b30 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003b40 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003b50 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003b60 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003b70 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003b80 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003b90 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003ba0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003bb0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003bc0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003bd0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003be0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003bf0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003c00 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003c10 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003c20 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003c30 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003c40 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003c50 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003c60 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003c70 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003c80 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003c90 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003ca0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003cb0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003cc0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003cd0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003ce0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003cf0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003d00 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003d10 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003d20 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003d30 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003d40 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003d50 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003d60 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003d70 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003d80 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003d90 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003da0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003db0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003dc0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003dd0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003de0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003df0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003e00 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003e10 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003e20 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003e30 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003e40 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003e50 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003e60 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003e70 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003e80 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003e90 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003ea0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003eb0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003ec0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003ed0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003ee0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003ef0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003f00 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003f10 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003f20 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003f30 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003f40 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003f50 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003f60 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003f70 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003f80 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003f90 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003fa0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003fb0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003fc0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003fd0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003fe0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
/* 0x17003ff0 */ 0xbadf5040, 0xbadf5040, 0xbadf5040, 0xbadf5040,
};
struct nvgpu_posix_io_reg_space gv11b_fifo_reg_space = {
.base = 0x2000,
.size = sizeof(gv11b_fifo_regs),
.data = gv11b_fifo_regs,
};
/*
* Mock I/O
*/
/*
* Write callback. Forward the write access to the mock IO framework.
*/
static void writel_access_reg_fn(struct gk20a *g,
struct nvgpu_reg_access *access)
{
nvgpu_posix_io_writel_reg_space(g, access->addr, access->value);
}
/*
* Read callback. Get the register value from the mock IO framework.
*/
static void readl_access_reg_fn(struct gk20a *g,
struct nvgpu_reg_access *access)
{
access->value = nvgpu_posix_io_readl_reg_space(g, access->addr);
}
static struct nvgpu_posix_io_callbacks test_reg_callbacks = {
/* Write APIs all can use the same accessor. */
.writel = writel_access_reg_fn,
.writel_check = writel_access_reg_fn,
.bar1_writel = writel_access_reg_fn,
.usermode_writel = writel_access_reg_fn,
/* Likewise for the read APIs. */
.__readl = readl_access_reg_fn,
.readl = readl_access_reg_fn,
.bar1_readl = readl_access_reg_fn,
};
int test_fifo_setup_gv11b_reg_space(struct unit_module *m, struct gk20a *g)
{
/* Create register space */
nvgpu_posix_io_init_reg_space(g);
if (nvgpu_posix_io_register_reg_space(g, &gv11b_top_reg_space) != 0) {
unit_err(m, "%s: failed to create top register space\n",
__func__);
return UNIT_FAIL;
}
if (nvgpu_posix_io_register_reg_space(g, &gv11b_fifo_reg_space) != 0) {
unit_err(m, "%s: failed to create fifo register space\n",
__func__);
return UNIT_FAIL;
}
(void)nvgpu_posix_register_io(g, &test_reg_callbacks);
return 0;
}
void test_fifo_cleanup_gv11b_reg_space(struct unit_module *m, struct gk20a *g)
{
nvgpu_posix_io_unregister_reg_space(g, &gv11b_fifo_reg_space);
}

View File

@@ -0,0 +1,29 @@
/*
* Copyright (c) 2019, NVIDIA CORPORATION. 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 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 AUTHORS OR COPYRIGHT HOLDERS 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.
*/
#ifndef UNIT_NVGPU_FIFO_GV11B_H
#define UNIT_NVGPU_FIFO_GV11b_H
int test_fifo_setup_gv11b_reg_space(struct unit_module *m, struct gk20a *g);
void test_fifo_cleanup_gv11b_reg_space(struct unit_module *m, struct gk20a *g);
#endif /* UNIT_NVGPU_FIFO_GV11B_H */

View File

@@ -0,0 +1,145 @@
/*
* Copyright (c) 2018-2019, NVIDIA CORPORATION. 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 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 AUTHORS OR COPYRIGHT HOLDERS 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 <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <unit/io.h>
#include <unit/unit.h>
#include <nvgpu/channel.h>
#include <nvgpu/tsg.h>
#include <nvgpu/gk20a.h>
#include "hal/fifo/tsg_gk20a.h"
#include "hal/init/hal_gv11b.h"
#include "nvgpu-fifo-gv11b.h"
struct test_tsg_args {
bool init_done;
struct nvgpu_tsg *tsg;
};
struct test_tsg_args test_args = {
.init_done = false,
};
/* test implementations of some hals */
static u32 test_gv11b_gr_init_get_no_of_sm(struct gk20a *g)
{
return 8;
}
static int test_fifo_init_support(struct unit_module *m,
struct gk20a *g, void *args)
{
struct test_tsg_args *t = args;
int err;
if (t->init_done) {
unit_return_fail(m, "init already done");
}
err = test_fifo_setup_gv11b_reg_space(m, g);
if (err != 0) {
goto fail;
}
/*
* set IS_FMODEL to avoid reading fuses
* TODO: add fuses reg space to avoid this
*/
nvgpu_set_enabled(g, NVGPU_IS_FMODEL, true);
gv11b_init_hal(g);
g->ops.fifo.init_fifo_setup_hw = NULL;
nvgpu_set_enabled(g, NVGPU_IS_FMODEL, false);
err = nvgpu_fifo_init_support(g);
if (err != 0) {
test_fifo_cleanup_gv11b_reg_space(m, g);
goto fail;
}
t->init_done = true;
return UNIT_SUCCESS;
fail:
return UNIT_FAIL;
}
static int test_tsg_open(struct unit_module *m,
struct gk20a *g, void *args)
{
struct test_tsg_args *t = args;
g->ops.gr.init.get_no_of_sm = test_gv11b_gr_init_get_no_of_sm;
g->ops.tsg.init_eng_method_buffers = NULL;
t->tsg = nvgpu_tsg_open(g, getpid());
if (!t->tsg) {
unit_return_fail(m, "nvgpu_tsg_open failed");
}
return UNIT_SUCCESS;
}
static int test_tsg_release(struct unit_module *m,
struct gk20a *g, void *args)
{
struct test_tsg_args *t = args;
if (t->tsg == NULL) {
unit_return_fail(m, "tsg in NULL");
}
nvgpu_ref_put(&t->tsg->refcount, nvgpu_tsg_release);
return UNIT_SUCCESS;
}
static int test_fifo_remove_support(struct unit_module *m,
struct gk20a *g, void *args)
{
struct test_tsg_args *t = args;
if (!t->init_done) {
unit_return_fail(m, "missing init support");
}
if (g->fifo.remove_support) {
g->fifo.remove_support(&g->fifo);
}
return UNIT_SUCCESS;
}
struct unit_module_test nvgpu_tsg_tests[] = {
UNIT_TEST(init_support, test_fifo_init_support, &test_args, 0),
UNIT_TEST(open, test_tsg_open, &test_args, 0),
UNIT_TEST(release, test_tsg_release, &test_args, 0),
UNIT_TEST(remove_support, test_fifo_remove_support, &test_args, 0),
};
UNIT_MODULE(nvgpu_tsg, nvgpu_tsg_tests, UNIT_PRIO_NVGPU_TEST);